您的位置:首页 > 移动开发 > Android开发

关于Android项目中打包资源文件到apk的总结

2016-08-25 10:32 429 查看

关于Android项目中打包资源文件到apk的总结

在开发中遇到了数据库方面的资源文件,想在打包的时候能够自动的装进apk中,并在运行的时候进行自动的复制文件到指定目录中,经过学习,现在总结如下,以便自己今后使用:

可分为两个方法

检测数据库文件是否存在

进行复制数据库操作

对数据库资源文件进行检查

public boolean checkDataBase() {
String dbName = strings[i];
SQLiteDatabase checkDB = null;
try {
String databaseFilename = DATABASE_PATH + dbName;
checkDB = SQLiteDatabase.openDatabase(databaseFilename, null,
SQLiteDatabase.OPEN_READONLY);
} catch (SQLiteException e) {
//此处抛出相关异常
}
if (checkDB != null) {
checkDB.close();
}
return checkDB != null ? true : false;
}


在这段代码中获取指定的文件目录下,资源是否可读,若不能读取则返回null,随后对其值进行相关判断,以便是否进行相关资源的复制


对数据库资源文件进行复制到指定目录

代码如下


private void copyDataBase() {
private static String DATABASE_PATH = "/data/data/"apk包名"/databases/";//数据库在手机里的路径
String[] strings = {dbFloor, dbDirection, dbSpecial};
for (int i = 0; i < strings.length; i++) {
//数据库名称集合
String databaseFilenames = DATABASE_PATH + strings[i];
File dir = new File(DATABASE_PATH);
if (!dir.exists())//判断文件夹是否存在,不存在就新建一个
dir.mkdir();
FileOutputStream os = null;
InputStream is = null;
try {
os = new FileOutputStream(databaseFilenames);//得到数据库文件的写入流
//得到数据库文件的数据流
is = getAssets().open(strings[i]);
byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
os.write(buffer, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
os.close();
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
此处主要是Io流相关的操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: