之前使用adb连接android手机的sqlite3遇到了许多问题,今天总结一下。如果看本文章来操作的话,最好能全部看完再进行。如果一边操作,一边看,可能要重复几次才能成功
正常流程
如果说手机一切正常,只需要使用adb shell就可以连接到手机上了,然后在/data/data/包名/databases里找到对应的数据库文件,直接用sqlite3 数据库文件名就可以直接运行了。剩下想查看数据表,使用sql语句都随你了。http://www.runoob.com/sqlite/sqlite-commands.html(这个是sqlite命令的网站可以查看,sqlite和mysql有些语句不一样)
非正常情况
1.确认手机是否root
但是往往都不能直接顺利完成上面的流程。在完成上面的流程之前,首先需要手机是root之后的,没有root的手机自己去root,这里就不提供教程了,网上大片大片的,一搜就有。
2.sqlite3命令找不到
root之后的手机,可以先用adb shell连接上,然后运行sqlite3,如果找不到这个命令。先看一下/system/xbin下有没有sqlite3这个文件,一般情况下是没有的。这就需要我们从其他地方拷贝一份到这个文件夹下。在电脑上新建一Android个模拟器,使用adb pull /system/xbin/sqlite3 从模拟器上下载下来sqlite3这个文件。这个文件存在执行这个命名的文件夹下。接下来使用adb push sqlite3 /system/xbin 命令把sqlite3拷贝到手机的/system/xbin文件夹下
3.permisson deny
如果在执行adb push命令的时候,提示没有权限,可以尝试使用su命令,获取管理员权限,然后使用chmod 777 /system/xbin 把/system/xbin这个文件夹变成可读写的,再次尝试,如果还是不行的话,直接在手机上下载一个root exploer手机软件,考到对应文件夹下就好了
4.can not open 文件或者文件break
如果是这样情况,先确定下你的文件从生成到现在就没有删除过。如果没有删除之类的操作,就要看一下开始的adb pull的模拟器是x86架构的还是arm架构的,需要跟手机的架构匹配。
5.PIE错误
如果出现这个错误的话,可能是模拟器的api版本和手机api的版本不一致造成的。也只能从新选择一个模拟器的api版本,从新下载一遍。
这些是我遇到的全部问题,如果有其他的问题可以留言,大家一起讨论