android开发 apk文件,android开发中,将数据库文件与APK一起发布?

2015-11-11 回答

可以将xx.db文件复制到eclipse android工程中的res\raw目录中。所有在res\raw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。

使用opendatabase方法来打开数据库文件,如果该文件不存在,系统会自动创建/sdcard/dictionary目录,并将res\raw目录中的 xx.db文件复制到/sdcard/dictionary目录中。opendatabase方法的实现代码如下:这里以dictionary.db为例

[java] view plaincopyprint?

01.private sqlitedatabase opendatabase()

02. {

03. try

04. {

05. // 获得dictionary.db文件的绝对路径

06. string databasefilename = database_path + "/" + database_filename;

07. file dir = new file(database_path);

08. // 如果/sdcard/dictionary目录中存在,创建这个目录

09. if (!dir.exists())

10. dir.mkdir();

11. // 如果在/sdcard/dictionary目录中不存在

12. // dictionary.db文件,则从res\raw目录中复制这个文件到

13. // sd卡的目录(/sdcard/dictionary)

1... 可以将xx.db文件复制到eclipse android工程中的res\raw目录中。所有在res\raw目录中的文件不会被压缩,这样可以直接提取该目录中的文件。

使用opendatabase方法来打开数据库文件,如果该文件不存在,系统会自动创建/sdcard/dictionary目录,并将res\raw目录中的 xx.db文件复制到/sdcard/dictionary目录中。opendatabase方法的实现代码如下:这里以dictionary.db为例

[java] view plaincopyprint?

01.private sqlitedatabase opendatabase()

02. {

03. try

04. {

05. // 获得dictionary.db文件的绝对路径

06. string databasefilename = database_path + "/" + database_filename;

07. file dir = new file(database_path);

08. // 如果/sdcard/dictionary目录中存在,创建这个目录

09. if (!dir.exists())

10. dir.mkdir();

11. // 如果在/sdcard/dictionary目录中不存在

12. // dictionary.db文件,则从res\raw目录中复制这个文件到

13. // sd卡的目录(/sdcard/dictionary)

14. if (!(new file(databasefilename)).exists())

15. {

16. // 获得封装dictionary.db文件的inputstream对象

17. inputstream is = getresources().openrawresource(r.raw.dictionary);

18. fileoutputstream fos = new fileoutputstream(databasefilename);

19. byte[] buffer = new byte[8192];

20. int count = 0;

21. // 开始复制dictionary.db文件

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

23. {

24. fos.write(buffer, 0, count);

25. }

26.

27. fos.close();

28. is.close();

29. }

30. // 打开/sdcard/dictionary目录中的dictionary.db文件

31. sqlitedatabase database = sqlitedatabase.openorcreatedatabase(

32. databasefilename, null);

33. return database;

34. }

35. catch (exception e)

36. {

37. }

38. return null;

39. }

private sqlitedatabase opendatabase()

{

try

{

// 获得dictionary.db文件的绝对路径

string databasefilename = database_path + "/" + database_filename;

file dir = new file(database_path);

// 如果/sdcard/dictionary目录中存在,创建这个目录

if (!dir.exists())

dir.mkdir();

// 如果在/sdcard/dictionary目录中不存在

// dictionary.db文件,则从res\raw目录中复制这个文件到

// sd卡的目录(/sdcard/dictionary)

if (!(new file(databasefilename)).exists())

{

// 获得封装dictionary.db文件的inputstream对象

inputstream is = getresources().openrawresource(r.raw.dictionary);

fileoutputstream fos = new fileoutputstream(databasefilename);

byte[] buffer = new byte[8192];

int count = 0;

// 开始复制dictionary.db文件

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

{

fos.write(buffer, 0, count);

}

fos.close();

is.close();

}

// 打开/sdcard/dictionary目录中的dictionary.db文件

sqlitedatabase database = sqlitedatabase.openorcreatedatabase(

databasefilename, null);

return database;

}

catch (exception e)

{

}

return null;

}

在opendatabase方法中使用了几个常量,这些常量是在程序的主类(main)中定义的,代码如下:

[java] view plaincopyprint?

01.public class main extends activity implements onclicklistener, textwatcher

02.{

03. private final string database_path = android.os.environment

04. .getexternalstoragedirectory().getabsolutepath()

05. + "/dictionary";

06. private final string database_filename = "dictionary.db";

07.}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336734.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jpa 关联实体的关联实体_JPA实体锁定模式的差异

jpa 关联实体的关联实体JPA本质上提供了两种锁定机制,以帮助同步对实体的访问。 两种机制都可以防止以下情况:两个事务在不知道的情况下相互覆盖数据。 通过实体锁定,我们通常希望通过2个并行事务来防止以下情况: 亚当的事务读取…

华为p6电信版 android 4.5,华为P6电信版系统应用apk补全教程 完整EMUI

现在要说的是华为P6电信版的系统应用apk补全教程,给你一个非阉割版的完整EMUI系统。大家应该都知道,电信定制版由于华为系统服务与电信的定制APP功能重叠,语音助手、云同步、云端备份、手机找回等系统应用apk全被“阉割”掉了,这几…

黑马ee在职进阶视频_进阶– Java EE 7前端5强

黑马ee在职进阶视频系列继续。 在初步概述和Arjan关于最重要的后端功能的文章之后 ,我现在非常高兴让Ed Burns( edburns )使用他最喜欢的Java EE 7前端功能完成本系列。 感谢Markus Eisele让我有机会在他非常受欢迎的博客上发表帖子。 我和M…

如何构建股票ChatGPT查询全球股票市场以及常用Prompt

Blog:4 ways to use ChatGPT Stock Chatbot for stock analysis of Global Stock Markets NASDAQ NYSE LSE HKEX TSE NSE HANGHAI SHENZHEN 地址:http://deepnlp.org/blog/chatgpt-stock-global-market 全球股票市场:NASDAQ 纳斯达克, NYSE…

web.xml.jsf_看一下即将发布的JSF 2.3 Push支持

web.xml.jsf如前几篇文章所述,下一版本的JavaServer Faces(Mojarra)已添加了许多增强功能。 JSF 2.3计划于2017年与Java EE 8一起发布,但是您现在可以通过从源代码构建或运行里程碑版本来获得JSF的一些增强功能和更新以用于测试目…

android视频教程那个讲的最好,最全的android视频教程推荐 android视频教程怎么学习效果好...

很多同学对android学习很感兴趣,都对此有这样的疑问:“最全的android视频教程推荐,android视频教程怎么学习效果好?”那这里android培训专家就给我们来具体讲解下。Android开发学习主要是学习Android平台下开发的基础知识以及项目编程的实用…

android size_t在哪个头文件,size_t

size_t 类型定义在cstddef头文件中,该文件是C标准库的头文件stddef.h的C版。它是一个与机器相关的unsigned类型,其大小足以保证存储内存中对象的大小。例如:bitset的size操作返回bitset对象中二进制位中1的个数,返回值类型是size_…

jqgrid mvc_将JQGrid与Spring MVC和Gson集成

jqgrid mvc我在一个单页面应用程序上工作,我想在使用Spring MVC的应用程序的一部分中使用网格功能。 自从我上次使用JQGrid以来已经有一段时间了,找到让我起床所需的信息有点困难。 在这篇文章中,我想整理所有信息并将其放入教程中&#xff0…

javadocs_不会吸引人的JavaDocs源样本

javadocsJavaDoc源代码嵌入很烂! 我喜欢JavaDoc,但年龄不理想。 当您使用其他工具(例如,在Microsoft世界中)时,嵌入式示例突然变得惊人,并且内置了“搜索”功能! 我们为什么不能拥…

html语义化有哪些优点,语义化的HTML结构到底有什么好处?

相信大家都知道html和css,知道html结构和css表现分离,知道html语义化,这些都是这几年的热门关键字。语义化的html在国内也是一两年前才开始被追捧的,看看现在群里谈论的html结构,关于html结构的面试题,语义…

vert.x 分布式锁_使用Vert.x进行响应式开发

vert.x 分布式锁最近,似乎我们正在听到有关Java的最新和最好的框架的消息。 Ninja , SparkJava和Play等工具; 但是每个人都固执己见,使您感到需要重新设计整个应用程序以利用它们的出色功能。 这就是为什么当我发现Vert.x时令我感到宽慰的原因…

c语言 char c1,c2; for (c1='0',C语言-5循环结构(PPT)复习课程.ppt

C语言-5循环结构(PPT)复习课程.ppt第五章 循环结构程序设计;课程引入;第五章 循环结构程序设计;5.1 while 语句;例1:求;1. do-while循环语句的形式 do 循环体 while(条件表达式); ;表达式0?;【例5.3】while和do-while循环的比较。;一般格式&a…

jvm高并发_JVM上的高并发HTTP客户端

jvm高并发HTTP可能是最流行的应用程序级别协议,并且有许多库在网络I / O之上实现它,这是常规I / O的一种特殊(面向流)情况。 由于所有I / O都有很多共同点1 ,所以让我们开始对其进行一些讨论。 我将集中讨论具有大量并…

html双击变成可编辑,jquery 实现双击编辑并保存

jquery 实现双击编辑并保存Jesse2013-12-11 19:47:001153最近在做一个数据修改的例子,一个个点开修改很麻烦,于是就想到ecshop后台里的 只需单击就以编辑了,在网上查阅资料,就想到双击修改,失去鼠标焦点后post执行HTML…

jmeter 采样器作用_实施自定义JMeter采样器

jmeter 采样器作用随着我们采用不同的体系结构和实现方式,对通用压力测试工具的需求不断增长。 关于负载测试, Apache Jmeter是最知名的工具之一。 它支持许多协议,例如ftp http tcp,并且可以轻松地用于分布式测试。 Jmeter还为…

html 闪烁文本,HTML最简单的文字闪烁代码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼Titlekeyframes blink{0%{opacity: 1;}50%{opacity: 1;}50.01%{opacity: 0;}100%{opacity: 0;}}-webkit-keyframes blink {0% { opacity: 1; }50% { opacity: 1; }50.01% { opacity: 0; }100% { opacity: 0; }}-moz-keyframes blin…

xp系统 javafx_使用JavaFX构建React系统

xp系统 javafxJavaFX是用于在Java中构建图形应用程序的新标准库,但是许多程序员仍然对Swing甚至(高音)AWT感到困惑。 在Java诞生20年来,发生了很多事情。 两年前,当我开始研究Speedment UI的JavaFX库时,我发…

html手机端图片点击放大缩小快捷键,PS放大缩小图片的快捷键是什么?PS放大缩小图片的操作技巧...

PS放大缩小图片的快捷键是什么?PS怎么放大缩小图片?使用PS处理图片可是个精细的活儿,为了让图片处理得更加完美,我们经常需要将图片放大来处理,修改好之后又要缩小图片看下整体效果,这样来回切换其实挺麻烦…

webstorm html代码提示设置,Webstorm设置代码提示

下载路径: https://github.com/virtoolswebplayer/ReactNative-LiveTemplate本插件可以配合Webstorm设置代码提示。Mac下安装Webstorm2016.1为例安装路径在终端:$ cd ~/Library/Preferences/$ ls找到Webstorm版本$ open WebStorm2016.1先将ReactNative.x…

滑动拼图验证码操作步骤:_拼图项目:一个不完整的难题

滑动拼图验证码操作步骤:马克雷因霍尔德(Mark Reinhold)最近提议延迟Java 9,以花更多的时间完成项目Jigsaw,这是即将发布的版本的主要功能。 虽然这个决定肯定会使Java的厄运论者重回舞台,但我个人感到很轻…