美文网首页
非root手机查看应用或系统数据库的方法

非root手机查看应用或系统数据库的方法

作者: zizi192 | 来源:发表于2017-11-18 13:44 被阅读0次

    查看应用的数据库和SharePreference

    在此隆重推荐开源库Android-Debug-Database,该库可以通过浏览器查看数据库,甚至还可以执行sql语句。

    特色
    可以查看你的应用中所有的数据库。
    可以查看你的应用中所有的shared preferences(额外福利)。
    对你指定的数据库执行SQL语句。
    对你指定的数据库中的数据进行可视化的编辑。
    将数据库直接下载下来。

    使用方法

    在app的build.gradle的dependencies中添加如下语句:

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

    debugCompile的保证只在debug编译时可进行数据库的调试查看。

    启动程序,获取浏览器的调试网址。注意,在部分华为手机上不能打印debug级别日志,则不会出现DebugDB的输出。可直接通过打印DebugDB.getAddressLog()获取ip地址。

    • D/DebugDB: Open http://XXX.XXX.X.XXX:8080 in your browser

    • You can also always get the debug address url from your code by calling the method DebugDB.getAddressLog();

    更重要的是:

    • 1.你的手机要和电脑在同一个局域网下
    • 2.If you are using it over usb, run adb forward tcp:8080 tcp:8080

    实际使用中发现,http://XXX.XXX.X.XXX:8080中,只需将xxx的地址改成你的手机的IP地址即可查看数据库调试。

    我曾多次尝试使用stetho库调试,但是gradle引入时可能因为墙的存在无法获取到该库;aar文件引入后运行时又出现classNotFoundException。遂放弃。

    命令行查看应用数据库

    通过执行shell命令行“run-as 包名”,进入了/data/data/包名目录。后续可通过cp命令将需要访问的应用database和sharepreference文件拷贝到sdcard。后续即可将文件拷贝到电脑中通过工具查看。

    adb shell
    shell@nikel:/ $ run-as com.example.myapplication
    shell@nikel:/data/data/com.example.myapplication $ ls
    cache
    code_cache
    program_cache
    
    

    查看和修改Settings数据库

    可通过命令行查看和修改Settings数据中具体字段的值。读取时如果字段不存在则输出null

    //命令行adb shell 表名 get/put 数据库名 字段名 [字段值]
    adb shell settings get global captive_portal_server
    adb shell settings put global captive_portal_server 0
    

    参考文章:
    Settings.db在android6.0上的变化
    调试手机中数据库的福音:Android-Debug-Database
    无需root查看手机中数据库和SharedPreferences 中的数据
    未root的安卓真机使用sqlite3查看data目录下的数据库

    相关文章

      网友评论

          本文标题:非root手机查看应用或系统数据库的方法

          本文链接:https://www.haomeiwen.com/subject/wpkevxtx.html