Android Sqlite相关应用实践
2016-08-27 20:12
218 查看
Android开发sqlite踩坑记录
开发应用需要用到SQlite数据库存储,基础的使用没有出现问题,但是由于习惯了真机测试,在ADB下想使用sqlite3查看创建的数据库及相关表的时候出现了问题,我的踩坑之旅也从这里开始:进入adb shell后想查看/data/data下项目的数据库权限不够
原因是因为真机没有获取到root权限,下载kingroot获取到root权限,然后执行啊 adb shell
如果shell提示输入符号为$,则执行su,使其变为#,若一开始就是#则不必执行
使用sqlite3命令打开数据库结果显示sqlite3 not found
原因是我的测试机的rom没有带sqlite3这个可执行脚本程序,解决方法是本地下载sqlite3相关文件,然后再将其装入测试机中
下载链接:sqlite3&libcurses.so
我本来采取的装入方法是网上一种方法:
1.开始—cmd—adb shell—mkdir /mnt/sdcard/tmp,然后退出到cmd下
2.adb push D:/temp/sqlite3 /mnt/sdcard/tmp
3.cp /mnt/sdcard/tmp/sqlite3 /system/xbin/sqlite3 此时报出错误
read-only file system,说明/system是只读的,此时需要重新挂载,改为可读写,然后继续拷贝
4.mount命令为:mount -o remount,rw -t 文件系统 设备名 /system 执行完成后再次执行步骤3,则成功
5.修改权限:chmod 4755 /system/xbin/sqlite3,依赖库和sqlite操作是一样的
教程连接在这里:sqlit3 not found 解决方式
如果到这里,你的问题已解决那真是运气超级好~
但是我执行了第四步后执行第三步还是没有效果 ,一直反复的报 read-only file system的错误
于是继续百度,发现也有人和我出现了一样的问题,于是他采取了另外一种将sqlite3和其依赖文件放入测试机系统的方法
1.先利用adb push命令将sqlite3文件导入手机sdcard中随便一个文件中
2.先将/system处于挂载状态,允许读写 mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
3.cat /mnt/sdcard/sqlite3 > /system/xbin/sqlite3 将文件复制到/system分区中
4.添加权限 chmod 4755 sqlite3
5.对libncurses.so库文件按照同样的原理执行 1 2 3 4步骤,只不过将复制导入的文件夹换成/system/lib文件夹下
cat /mnt/sdcard/libncurses.so > /system/lib/libncurses.so
教程地址:Android真机安装sqlite3
本来以为这么辛苦好歹能用了,没想到又报错了,信息是这样->error: only position independent executables (PIE) are supported
我查了一下资料,找到了原因,PIE这个安全机制从4.1引入,但是Android L之前的系统版本并不会去检验可执行文件是否基于PIE编译出的。因此不会报错。但是Android L已经开启验证,如果调用的可执行文件不是基于PIE方式编译的,则无法运行。
解决方法是在Android.mk中加入flag,但是我不太熟悉NDK开发,所以最后还是没能成功在真机上执行sqlite3
教程地址:NDK编译可执行文件在Android L中运行显示error: only position independent executables (PIE) are supported.失败问题解决办法
还好虚拟机执行没什么问题,最后的最后,我还是屈服了用了虚拟机啊哈哈哈
相关文章推荐
- Android SQLite相关应用-SQLiteOpenHelper无法新建实例
- Android实践 -- 根据应用的包名获得应用相关信息
- Android Intent应用实践经验总结
- DotNET企业架构应用实践-系统架构与性能-理论依据及相关技术
- Android应用开发从入门到实践
- android 短信通知和SQLITE 应用,并在 listview中删除Item,或是清除整个listivew信息
- android 短信通知和SQLITE 应用
- Android数据存储--SQLite 存储方式应用(日记管理系统)
- 24、Android应用-找一个朋友 (整合SQLite/Content Provider/Google Maps)
- Android 应用共用的HttpClient实例实践
- 大三小学期《Imail - 我邮》Android安全传输应用软件工程实践总结
- Android开发:SQLite应用
- DotNET企业架构应用实践-系统架构与性能-理论依据及相关技术
- Android电源管理相关应用技巧分享
- Android电源管理相关应用技巧分享
- 9月26号 Android SQLiteDatabase 的相关学习记录
- 介绍Android中与JSON相关的应用(转载)
- android SQLite数据库应用
- android 短信通知和SQLITE 应用
- android sqlite3 日期查询相关