我正在使用文本文件生成SQLite数据库。我的文件很大,所以转换需要花费很多时间。我在想是否可以使用预建数据库。
从TEXT文件生成的数据库保存在内部存储器的/data/data/com.my.project/database
文件夹中。
有什么办法,我把apk上的预建数据库绕过TEXT> SQLite转换&在安装过程中直接将现有数据库复制到/data/data/com.my.project/database
文件夹 ? [N.B#我的SQlite大小为30 MB]
答案 0 :(得分:2)
是的,你可以。 您可以将数据库(.db文件)作为资产保存在项目文件中,然后在运行时检查数据库是否存在,如果不存在,则从资产中复制它。
我使用的一些代码(您需要根据需要进行修改):
public static String getDBPath(Context c)
{
return Environment.getDataDirectory() +
File.separator + "data" +
File.separator + c.getPackageName() +
File.separator + "databases";
}
public static String getDBFileName(Context c)
{
return Environment.getDataDirectory() +
File.separator + "data" +
File.separator + c.getPackageName() +
File.separator + "databases" +
File.separator + "mydatabase.db;
}
public static void createCopyOfDatabaseIfNeeded(Context c) throws FileNotFoundException, IOException
{
String preloadedDatabase = "preloaded/mydatabase.db";
File dbdir = new File(myDB.getDBPath(c));
if (!dbdir.exists())
dbdir.mkdirs();
File db = new File(myDB.getDBFileName(c));
if (!db.exists())
{
// copy file from preloadedDatabase to db;
}
}