博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android把数据库伪装成so文件
阅读量:6698 次
发布时间:2019-06-25

本文共 1086 字,大约阅读时间需要 3 分钟。

经常我们需要使用一些事先做好内容的数据库,比如字典等, 这就要加载已有的数据库文件,通常把它们放在assets 或者raw中,在程序运行时copy到程序内部空间,

但是这样有个缺点,当文件较大时会占用较长的时间,用户难免会有点小着急。

我们可以这样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);

----------------------------------------------------

// 注意路径    private String DATABASE_PATH = "/data/data/" + "com.cjoan.www.xiaohua" + "/lib/";    private SQLiteDatabase stuDb;// 数据库加载        stuDb = SQLiteDatabase.openDatabase(DATABASE_PATH + "libxiaohua.db.so", null,                SQLiteDatabase.OPEN_READONLY | SQLiteDatabase.NO_LOCALIZED_COLLATORS);        Cursor rawQuery = stuDb.rawQuery("select * from article where id=?", new String[] { "1" });        System.out.println(rawQuery.moveToFirst());        if (rawQuery.moveToFirst())            String title = rawQuery.getString(1);

 

转载于:https://www.cnblogs.com/spadd/p/4435786.html

你可能感兴趣的文章
【Java学习】JDBC可以再深一点理解
查看>>
阿里云上Kubernetes集群联邦
查看>>
react 项目总结
查看>>
Go编程技巧--io.Reader/Writer
查看>>
WordPress插件开发-创建、停用、删除插件
查看>>
从MapReduce的执行来看如何优化MaxCompute(原ODPS) SQL
查看>>
超级丑数
查看>>
【前端】这可能是你看过最全的css居中解决方案了~
查看>>
简单计算器 (关于栈的一种应用)
查看>>
js异步解决方案 --- 回调函数 vs promise vs generater/yield vs async/await
查看>>
DEX加密效果分析
查看>>
Spring核心接口之Ordered
查看>>
简单解释什么是 依赖注入 和 控制反转
查看>>
CentOS7种搭建FTP服务器
查看>>
从北京回来的年轻人,我该告诉你点什么?
查看>>
一起学并发编程 - 优雅关闭
查看>>
Linux基础
查看>>
JavaScript中错误正确处理方式,你用对了吗?
查看>>
使用iconv-lite解决node当中不支持GBK编码的问题
查看>>
Linux : shell基础(慕课网Linux达人养成计划课程笔记)
查看>>