如何用sqlite3来访问android真机中应用程序的数据库文件

前端之家收集整理的这篇文章主要介绍了如何用sqlite3来访问android真机中应用程序的数据库文件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在android中所有涉及到数据库的地方,都是有关于sqlite3的,而所有的存到数据库中的数据都是通过**.db文件存储,用sqlite3来打开查看,之前的项目为了检测数据是否插入正确采用的在客户端直接用程序getAllData的方法获取到所有的数据,在数据存贮排错方面带来了很大问题,不知道是插入数据库的数据源出错还是程序代码本身的问题。网上有方法可以通过这种sqlite3工具来查看数据源文件,但那时候由于项目时间紧张,而且配置起来繁琐,所以放弃了。如今花了一些时间,终于算是弄出来了,不过还是有些瑕疵。
首先手机应用程序内的数据基本存储在/data/data的文件夹中,要想进去必须:
1.获取手机root权限,
2.到/data/data/对应的应用程序文件夹,到里面的databases,查看所有***.db文件,用sqlite3工具打开数据库文件
3.通过sqlite3的语法来查看数据。

在第二步出现了很多问题,到这个文件夹中执行shell指令,因为android底层是linux,所以一般用shell指令来操作文件,指令错误提示没有sqlite3工具,而有些手机在root之后是自带这个工具的,很不幸,这个Note3没有,所以去找资料发现这个sqlite3是放在/system/xbin下的,但是进入这个文件下时发现还是没有sqlite3,所以又去百度,发现有两种方法:在ADT中启动android的虚拟机(开发工具自带的用于测试手机应用的模拟机器),下载sqlite3源文件,这个上面花了很多时间,第二种方法网上下载的基本都是.exe形式,不能在手机上用,第一种方法配置以及开机等测试花费了不少时间,光这模拟机器开下机就花了我20分钟,总算看到了它的庐山真面目。如1.png,

而做这个虚拟机器的目的在于从它的机器中拷贝出此机器中的sqlite3出来。这步总算完成,但是怎么把sqlite3拷贝到真机的手机中又是个问题,期间有权限问题,我用chmod命令发现没用,后来通过mount -o remount,rw -t yaffs2 /system命令重新挂载下,然后用chmod才能有效,但是挂载命令对于手机来说要非常小心,一不小心就有可能把机器弄瘫痪了,我之前就差点出事,这样之后终于让sqlite3回到它该去的地方了,然后我们通过cmd,进入shell模式,cd到目录下,通过sqlite3 文件名,就可以打开这个文件,并进入sqlite的命令行模式,可以用sql语句来查询数据。如图2.png,

至此,算是能看到数据源了,但表应该不至于就这一张,但这个文件夹下只有这一种有很多条数据的表,根据数据看,这是聊天信息表,但其他的表就不知去哪儿去了。

而其中乱码问题应该是数据源是utf-8,而cmd里编码是GBK的缘故。 原文链接:https://www.f2er.com/sqlite/200228.html

猜你在找的Sqlite相关文章