经常我们需要使用一些事先做好内容的数据库,比如字典等, 这就要加载已有的数据库文件,通常把它们放在assets 或者raw中,在程序运行时copy到程序内部空间:/data/data/package/my_app/databases, 详细的做法看这里。
但是这样有个缺点,当文件较大时会占用较长的时间,用户难免会有点小着急。
我们可以这样HACK来把copy的环节省去:
1 把数据库文件(如MYDB.db) 放到PROJECT/libs/armeabi/ 改名为libMYDB.db.so(注意前面必需加”lib")。
2 用这样的方式打开:
DATABASE_PATH = "/data/data/" + packageName + "/lib/";
SQLiteDatabase db = SQLiteDatabase.openDatabase(DATABASE_PATH + libMYDB.db.so, null, SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS);
这样等程序一安装完就可以使用数据库了,其原理是把数据库文件伪装成lib库文件,程序在安装时会自动copy到/data/data/package/lib/,省去了我们自己的copy过程。
目前我测试了读操作,写操作还有待测试。
分享到:
相关推荐
Android 将assets中的数据库导入到项目中databases https://blog.csdn.net/qq_31939617/article/details/80929543
方舟游戏框架,一个 2D 游戏框架。 文件 Ark-Game-Framework-master.zip 包含以下条目。 .gitignore//from ww w. jav a2 s ....Android Sample/.classpath Android Sample/.project...Android Sample/assets/images/inte
在工程目录assets下的文件,将目录下的文件复制到手机内存或者SD卡内存中。
这是一个android下对assets文件夹的使用,实现了对外部导入数据库文件的操作,查询和删除功能
在main文件夹下新建assets文件,然后再assets文件中新建namelist.json文件夹,将json数据复制到test.json文件中。 2、访问json文件 try { AssetManager assetManager = getAssets(); // 获得assets资源管理器...
android 从assets获取图片
Android assets 和 res/raw 区别。读取本地网页,读取文本字体样式,读取视频。
实现从Android项目下的assets中获取ini文件的指定内容的功能
Android 加载assets文件夹的文本文件 图片
android应用,将外部的sqlite数据库导入到应用的私有空间中,源db文件置于assets目录下,如果源文件大小超过1M,使用Filesplit分割为不超过1M的小文件,那么就将所有分小文件置于assets目录下,本工程里已带...
Unity Android StreamingAssets读图片和读文本事例
主要介绍了Android操作存放在assets文件夹下SQLite数据库的方法,实例分析了Android操作SQLite数据库的相关技巧,需要的朋友可以参考下
今天用到了提示音,读取 android 文件夹 assets 下的音频,写了个demo,可以直接拿去用;文件夹下音频大小好像不能超过1M,否则可能不能读取;
Android 中获取Assets目录下的文件和子目录下的文件,获取raw文件夹下的文件
android编程实现: 1、在res目录下建立raw...2、在您的手机相册目录下(即:DCIM目录)新建两文本文件,分别命名为a1.txt和a2.txt,并将raw目录下的a1.txt和assets目录下a2.txt文件的文本内容复制到新建的同名文件中。
Android读取assets下面文件的代码例子。用于演示读取assets目录下文本文件和图片文件,以及加载html网页的功能。
在Android项目文件夹里面,主要的资源文件是放在res文件夹里面的。assets文件夹是存放不进行编译加工的原生文件,即该文件夹里面的文件不会像xml,java文件被预编译,可以存放一些图片,html,js, css等文件。 介绍...
Android 使用MediaPlayer播放assets或者raw目录的音频文件 https://blog.csdn.net/qq_31939617/article/details/80491552