如何将带数据的SQLite数据与apk程序一起发布

如何将带数据的SQLite数据与apk程序一起发布,第1张

任何文件(包括SQLite数据库文件)与apk程序一起发布都必须将该文件嵌入到apk文件中。对于SQLite数据库来说,安卓的程序不能打开和 *** 作嵌入在apk程序中的数据库文件。因此,需要想办法在程序第一次启动时就将SQLite数据库复制到手机内存或者SD卡上,然后才能再来 *** 作SQLite数据库。

这里我把数据库文件复制到应用程序的assets或res/raw目录中,因为只有这两个目中中的资源文件才不会被编译,在应用程序第一次启动时应该使用下面的代码将数据库复制到手机内存或sd卡上,然后在 *** 作数据库。下面是代码:

[java] view plain copy

String databaseFileName = "/sdcard/test.db"

//当test.db不存在时,将res/raw目录中的数据库文件赋值到SD卡的目录中

if (!(new File(databaseFileName).exists())) {

//在res/raw目录中存在test.db文件

InputStream is = getResources().openRawResource(R.raw.test)

FileOutputStream fos = new FileOutputStream(databaseFileName)

byte[] buffer = new byte[4096]

int count = 0

while ((count = is.read(buffer))>0 ) {

fos.write(buffer,0,count)

}

fos.close()

is.close()

}

//打开数据库

SQLiteDatabase database = SQLiteDatabase.openOrCreateDatabase(databaseFileName, null)

//获取到数据库之后,下面就可以进行数据库的 *** 作了

...

只要将SQLite数据库和APK一起打包成一个压缩文件,就可以一起发布了,不过SQLite数据库需要安装服务器软件,添加数据库才能使用,一般的客户端并不会去安装的。手机上也不能安装SQL服务。

可以将dictionary.db文件复制到Eclipse Android工程中的res aw目录中。所有在res aw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。可以将dictionary.db文件复制到res aw目录中


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6677147.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存