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

编程知识 更新时间:2023-04-17 17:53:15
   在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才能有效,但是挂载命令对于手机来说要非常小心,一不小心就有可能把机器弄瘫痪了,我之前就差点出事,

这边有些说的省略,其实重新挂载后 ,还没有system/xbin的权限  这时候需要chmod 777 system ,chmod 777 system/xbin 赋权,接着就可以退出adb shell模式 在cmd中 adb push D:/sqlite3 /system/xbin 或者在DDMS中直接用拖拽方式,很简单吧?我可是找了很多个资料的。这个sqlite3我的下载资料里有,是从模拟机上拷贝出来的,

这样之后终于让sqlite3回到它该去的地方了,然后我们通过cmd,进入shell模式,cd到目录下,通过sqlite3 文件名,就可以打开这个文件,并进入sqlite的命令行模式,可以用sql语句来查询数据。如图2.png,

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

   而其中乱码问题应该是数据源是utf-8,而cmd里编码是GBK的缘故。

更多推荐

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

本文发布于:2023-04-14 02:30:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/bc0f0deaebfb1d46027f1adf8955e157.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:如何用   应用程序   数据库文件   机中   来访问

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 74311文章数
  • 14阅读数
  • 0评论数