92 lines
2.7 KiB
Java
92 lines
2.7 KiB
Java
/*
|
|
* Copyright (C) 2015 Baidu, Inc. All Rights Reserved.
|
|
*/
|
|
package com.gh.common.util;
|
|
|
|
import android.content.Context;
|
|
|
|
import java.io.BufferedInputStream;
|
|
import java.io.BufferedOutputStream;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.FileOutputStream;
|
|
import java.io.IOException;
|
|
import java.io.OutputStream;
|
|
|
|
/**
|
|
* Created by sunpengfei on 15/11/4.
|
|
*/
|
|
public class DexUtils {
|
|
|
|
private static final int BUF_SIZE = 2048;
|
|
|
|
public static boolean prepareAssetsDex(Context context, File dexInternalStoragePath, String dex_file) {
|
|
BufferedInputStream bis = null;
|
|
OutputStream dexWriter = null;
|
|
|
|
try {
|
|
bis = new BufferedInputStream(context.getAssets().open(dex_file));
|
|
dexWriter = new BufferedOutputStream(new FileOutputStream(dexInternalStoragePath));
|
|
byte[] buf = new byte[BUF_SIZE];
|
|
int len;
|
|
while ((len = bis.read(buf, 0, BUF_SIZE)) > 0) {
|
|
dexWriter.write(buf, 0, len);
|
|
}
|
|
dexWriter.close();
|
|
bis.close();
|
|
return true;
|
|
} catch (IOException e) {
|
|
if (dexWriter != null) {
|
|
try {
|
|
dexWriter.close();
|
|
} catch (IOException ioe) {
|
|
ioe.printStackTrace();
|
|
}
|
|
}
|
|
if (bis != null) {
|
|
try {
|
|
bis.close();
|
|
} catch (IOException ioe) {
|
|
ioe.printStackTrace();
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public static boolean prepareDex(File dexInternalStoragePath, File dex_file) {
|
|
BufferedInputStream bis = null;
|
|
OutputStream dexWriter = null;
|
|
|
|
try {
|
|
bis = new BufferedInputStream(new FileInputStream(dex_file));
|
|
dexWriter = new BufferedOutputStream(new FileOutputStream(dexInternalStoragePath));
|
|
byte[] buf = new byte[BUF_SIZE];
|
|
int len;
|
|
while ((len = bis.read(buf, 0, BUF_SIZE)) > 0) {
|
|
dexWriter.write(buf, 0, len);
|
|
}
|
|
dexWriter.close();
|
|
bis.close();
|
|
return true;
|
|
} catch (IOException e) {
|
|
if (dexWriter != null) {
|
|
try {
|
|
dexWriter.close();
|
|
} catch (IOException ioe) {
|
|
ioe.printStackTrace();
|
|
}
|
|
}
|
|
if (bis != null) {
|
|
try {
|
|
bis.close();
|
|
} catch (IOException ioe) {
|
|
ioe.printStackTrace();
|
|
}
|
|
}
|
|
return false;
|
|
}
|
|
}
|
|
|
|
}
|