加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Sqlite数据库和apk应用同时发布

发布时间:2020-12-12 20:22:31 所属栏目:百科 来源:网络整理
导读:农民伯伯 写的挺好的,大家可以阅读一下:http://www.cnblogs.com/over140/archive/2010/08/11/1792482.html 前言 如何将Sqlite数据库与apk一同发布?刚开始用时有朋友告诉我直接用adb命令手工发布,或者写sql语句动态创建,感觉不太理想。得益于银河使者的

农民伯伯 写的挺好的,大家可以阅读一下:http://www.cnblogs.com/over140/archive/2010/08/11/1792482.html


前言

  如何将Sqlite数据库与apk一同发布?刚开始用时有朋友告诉我直接用adb命令手工发布,或者写sql语句动态创建,感觉不太理想。得益于银河使者的实现基于Android的英文电子词典这篇文章,再经过文章2的补充以及实践得以完成,感谢大家的分享!

文章

  1.  实现基于Android的英文电子词典

  2.  Using your own SQLite database in Android applications

  3.  Android Asset,res/raw限制文件大小UNCOMPRESS为1MB

声明

  欢迎转载,但请保留文章原始出处:)

    博客园:http://www.cnblogs.com

    农民伯伯: http://www.cnblogs.com/over140/

正文

  一、准备

    1.1  准备目录

      在Android项目工程res下新建raw文件夹,在这个文件夹里面的文件不会被编译压缩。

    1.2  准备数据库

      新建或拷贝一个数据库,然后打开,依次执行以下两条SQL语句:

CREATE TABLE "android_metadata"("locale" TEXT DEFAULT ' zh_CN ' ) INSERT INTO "android_metadata" VALUES ( )

      这个表用途不太清楚,但是如果用Android sqlite API创建一个数据库的话,会默认带上这个表,而且少了还不行,会报错。

  二、实现代码

/**
*是否完成初始化
*/
private static boolean isInit = false ;



*初始化数据库
*
@param context
synchronized public void init(Contextcontext)
{
if (isInit)
return ;
// 输出路径 StringoutFileName DATABASE_PATH + DATABASE_NAME;

检测是否已经创建 Filedir new File(outFileName);
(dir.exists())
;

检测/创建数据库的文件夹 dir File(DATABASE_PATH);

( ! dir.exists())
dir.mkdir();

InputStreaminput
null ;
OutputStreamoutput
从资源中读取数据库流 input context.getResources().openRawResource(R.raw.db);

try {
output
FileOutputStream(outFileName);

拷贝到输出流 byte []buffer [ 2048 ];
int length;
while ((length input.read(buffer)) > 0 ){
output.write(buffer,
,length);
}
}
catch (FileNotFoundExceptione){
e.printStackTrace();
}
(IOExceptione){
e.printStackTrace();
}
finally {
关闭输出流 {
output.flush();
output.close();
}
(IOExceptione){
}
关闭输入流 {
input.close();
}
(IOExceptione){
}
}
isInit
true ;
}

    代码说明:

      a).  在主窗口(Activity)中调用一次即可,随后直接用SQLiteDatabase.openDatabase操作使用即可。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读