Android进阶之路 - Android Debug Database 本地数据库调试工具

话说有段时间没有做本地缓存方面的需求了,索性近期正好接到了类似需求,最终采用了GreenDao数据库缓存数据,为方便查询数据库,故采用了一款 三方框架 - Android-Debug-Database ,提升了不少工作效率 ~

在此之前我查询本地数据库的时候,一般采用 DDMSStetho 俩款工具,不过没有当前这款工具便捷,特此记录一波 ~

话说,如果你的As已经升级到4.1的话,完全可以用4.1提供的工具,更方便快捷,关于此工具,我后续也会记录一波 ~

基础知识

Android-Debug-Database 是一款挺早的三方数据库查询工具,主要被广泛使用的原因是功能完善、集成简单,使用方便;

关于其内部的实现的原理,则是在项目集成框架Android-Debug-Database后,为当前应用程序开启了一个线程,此线程不断的处理浏览器发过来的Socket请求,根据Socket发过来的内容进行判断,然后根据不同的请求进行处理,最后返回不同的结果;

而游览器的数据来源则是Android-Debug-Database将具有交互性的html发送给了浏览器 ~

优缺点

优点

  • 集成简单,操作方便
  • 支持查看应用内所有的数据库、表
  • 支持对数据库、表的增、删、改、查
  • 支持使用SQL语句操作数据库
  • 支持下载db数据库文件
  • 支持查看应用内所有SP存储的内容
  • 支持对SP的增、删、改、查

缺点

  • 不支持relase模式下的调试
   release {
    
    
   			//可尝试加入该属性在release环境下进行调试
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
  • 不支持手机移动网络IP的调试

实践演练

  • 在 bulid.gradle(Model)加入依赖,然后直接启动项目
  debugImplementation 'com.amitshekhar.android:debug-db:1.0.6'
  • 如启动项目后,在Logcat中有类似信息则表明已完成集成
    在这里插入图片描述
  • 一般正常情况下,均可通过上方提示的链接查看当前项目的数据库、sp 内容

注1:如通过PC使用该工具查看设备数据库,需保持俩端(PC端、设备端)同处同一局域网内(一般表现为连接同一wifi网络)
注2:查看数据库时请打开手机APP,否则游览器检测不到
注3:这里我用的locahost主要采用的另一种连接USB的方式去查看的数据库内容,并不影响展示效果~
在这里插入图片描述


常见问题

端口冲突:默认8080端口被占用,如何改变当前项目的端口号?

项目集成后一般端口号都默认为8080,但因8080比较容易被占用,所以可自行在build.gradle(Model)中的buildTypes标签内设置端口号,具体如下

android {
    
    
    compileSdkVersion 28
    defaultConfig {
    
    
        applicationId "nkwl.com.greendaodemo"
        minSdkVersion 15
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    //Here ~
    buildTypes {
    
    
        release {
    
    
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
    
    
            //通过此处进行设置
            resValue("string", "PORT_NUMBER", "8081")
        }
    }
}
框架提供连接访问无效,是否还有其他方式查询数据库?

有,必须有,我们还可以使用USB连接,查看数据库 > <

原理:主机特定端口上的请求将被转发到设备的特定端口

如adb命令显示无法找到,可能是你还没有进行配置,具体的配置方法,自行百度一下吧 ~

  1. As 的 Terminal 内执行以下adb命令
 //两端的通信的tcp层的地址,第一个端口是主机,第二个端口是设备端口(如果有给设备设置过端口,则使用对应的端口号)
 adb forward tcp:8080 tcp:8080
  1. PC的浏览器中输入以下网址
 //此处端口号为上方设置的第一个端口号
 http://localhost:8080
如何获取设备Wifi IP 和 移动网络 IP ?

图例为我的测试oppo手机 ~

  • 已连接wifi

wifi列表 - 对应wifi的右侧详细信息
在这里插入图片描述
wifi详情 - IP地址
在这里插入图片描述

  • 移动网络

设置 - 关于手机
在这里插入图片描述
关于手机 - 状态信息
在这里插入图片描述
状态信息 - IP地址
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_20451879/article/details/113179194