en realidad es muy simple
Colocamos el archivo de base de datos preparado en el directorio de activos del proyecto, que es la ruta que se puede empaquetar, y luego copiamos el archivo de base de datos en activos a datos/datos/nombre del paquete/bases de datos/. El siguiente es el código principal:
private static final String DB_NAME = "abc.db"; // 数据库名
private static final String DATA_BASE_PATH = "/data/data/com.abc/databases/";
private static final int BUFFER_SIZE = 9000; // 根据数据库文件大小扩大
private void copyfile() {
File dir = new File(DATA_BASE_PATH);
if (!dir.exists()) {
dir.mkdirs();
}
File file = new File(DATA_BASE_PATH + DB_NAME);
if (!file.exists()) {
InputStream inputStream = null;
OutputStream outputStream = null;
try {
inputStream = mContext.getAssets().open(DB_NAME);
outputStream = new FileOutputStream(file);
byte[] buffer = new byte[BUFFER_SIZE];
int length;
while ((length = inputStream.read(buffer, 0, buffer.length)) > 0) {
outputStream.write(buffer, 0, length);
}
outputStream.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (outputStream != null) {
try {
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}