利用sqlite3 调试 Android 数据库

大致过程和中间遇到的一些问题 记录如下

利用Android studio开发

1.打开cmd,输入adb.exe shell 

如果提示 adb无法识别,说明环境变量未配置,需要输入adb.exe的完整目录,或者配置环境变量。

执行成功 应该是 这行 [email protected]**********:/$ 

adb.exe 的路径查看(在sdk下面的platform-tools下面)

利用sqlite3 调试 Android 数据库

利用sqlite3 调试 Android 数据库

2 查看文件时,提示opendir failed, Permission denied

说明需要管理员权限,输入su 如果提示 not found,说明手机没有root用户,去下载一个一键root的工具,在手机上安装执行完就可以了(我下的是kingroot)

执行完毕 输入su  $变成#了

3.到了具体的数据目录下,输入sqlite3 + 数据库名称。

如果提示 sqlite3 not found  说明手机没有带sqlite3 工具(正常的在 /system/xbin/能找到这个文件的)

4 安装sqlite3(如果3 通过,跳过这步)

首先 从网上下载一个 对应安卓版本的sqlite3.(或者从模拟器里面相关目录下找到这个文件,但我不知道这个目录在哪...)

把这个文件放到 手机的目录下

然后下载一个 RE文件管理的app 将system 挂载为可读写,然后将sqlite3 放到 system/xbin/下面

 授权:chmod 777 /system/xbin/sqlite3

5.输入sqlite3 + 数据库名称

看到 sqlite> 说明 已经进入到sqlite命令模式

接下来输入要执行的命令就可以了。

但是我遇到一个问题,输入的命令不会反显在屏幕上,查了一些资料,说是su导致的。

最后的解决方案 将数据库的那一个目录全都授权777(chmod)在l利用普通管理员权限操作 就可以看到命令了...

退出sqlite 是 .quit 

退出su 是exit

 

$ adb shell

如果遇到这个报错,需要手机重新授权一下就好了
error: device unauthorized.
This adb server's $ADB_VENDOR_KEYS is not set
Try 'adb kill-server' if that seems wrong.
Otherwise check for a confirmation dialog on your device.
 

 

另外 我看网上有种方法

是利用第三方插件,来查看数据库

debugCompile 'com.amitshekhar.android:debug-db:1.0.0'

但是 我利用这种方式,在浏览器数据网址后,网页是空白的(换了端口也不好使) 不知道怎么回事。。。