[Andriod]不root,debug APP Database的方法

引入

数据的持久化存储是在APP开发中不可或缺的手段,APP的一些配置信息以及另外的一些稍大规模的数据存储可能需要使用到SharedPreferencesdatabase;这两种方式产生的数据正常都是存在在Android的Internal Storage中的(/data/data/<package name>/ )。

数据存储在这个区域中,与存放在External Storage相比,有一些麻烦;如果手机没有root权限的话,是无法使用文件浏览工具(ES文件浏览器,adb下cd到对应目录)来直观的进行文件浏览的。

为了验证存储数据的正确性,一般有两种方法:

  1. 在APP中用配套的read方法把数据读取出来进行验证;如果出现错误,比较麻烦的是刚开始不容易定位到是save出错,还是load出错;
  2. 在APP中,用API把此文件copy到External Storage进行debug;这种方式debug的时候需要频繁copy文件,且稍显繁琐。

Debug Database的工具

除了上述比较原始的方法外,借助第三方工具,有更好的对databaseSharedPreferences进行debug的手段:

  • SQLScout

    这是Android Studio的一个插件,安装方式:

    Setting -> Plugins -> Browse Repositories

    搜索SQLScout即可安装

    只是这是一个收费插件。。。

  • Android-Debug-Database

    这个是一个open source的debugdatabaseSharedPreferences的工具,原理是通过在手机端建立一个server,在浏览器中对server的数据发起访问请求,从而规避了root权限的问题。

    限制: 由于是采用BS的结构,手机端是建立服务器,PC端浏览器访问,需要手机和PC在同一局域网中。

Android-Debug-Database使用

环境准备 - 工程中添加依赖

在app的build.gradle中添加依赖

debugCompile 'com.amitshekhar.android:debug-db:1.0.3'
  1. debugCompile的作用是只在你debug编译时起作用,不影响release
  2. 如果是在Android 3.0及以上的版本(gradle wrapper 3.+, gradle 4.+), 应该使用debugImplementation(官方推荐),如果是Android Studio 2.x的版本,不认识这个关键字,改用debuCompile;

只用添加上面一行就行了,稍后就是等APP在你的手机运行起来后,在PC的浏览器中中用logcat中看到的server address进行访问就好了

浏览器访问

当APP运行起来后,在logcat中搜索如下一行:

D/DebugDB: Open http://xxx.xx.xx.xx:8080

把此服务器地址copy到浏览器中进行访问,就可以看到如下的UI了;如下是我在APP中新建了一个BookStore.db的数据库,在此数据库中有bookcategory两张表,下图展示的是book这张表中的数据。

[图片上传失败...(image-2f6e0e-1521192578494)]

上述数据库是使用LitePal创建出来的,这是一个比Android自带SQLite好用太多的开源Android数据库框架,采用了对象关系映射,稍后再来整理LitePal的用法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,907评论 25 708
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,931评论 2 45
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,941评论 19 139
  • 2017年11月29日 星期三 睛 今天下午放学,在路上儿子跟我讲班里几个同学感冒了,发烧咳嗽,真心为...
    泰硕麻麻阅读 585评论 0 0
  • 好的习惯影响人的一生,体现到为人处世当中。习惯的养成在于重复坚持的去做,所以好的习惯会使人生有益,不好的的习惯会阻...
    Fine靖靖阅读 148评论 0 1

友情链接更多精彩内容