Android-调试工具篇:Stetho

一、First and Foremost :

    测试同学,在测试Android—App时,所需要的其中一个重要的技能即判断页面数据错误后,能迅速定位是服务器接口问题,还是APP逻辑问题。此时就需要知道服务器接口返回给APP的原始数据是什么样子滴。
    牛逼的测试同学,一般会在电脑使用抓包工具(如Fiddler、Wireshark、Charles等)进行一大堆配置完毕后,手机配置代理后,获取抓包。
    为简化上述测试同学的工作量。本文引入一个牛逼的调试工具—Stetho

二、在浏览器中调试打开,第一次需要翻墙

[必须在Chrome浏览器,才能使用呢]

三、Show Me Code:

使用开源框架stetho[该框架为Facebook开源,配合OkHttp使用]

项目地址:https://github.com/facebook/stetho

(1)在build.gradle中引入

implementation 'com.facebook.stetho:stetho:1.5.0'
implementation 'com.facebook.stetho:stetho-okhttp3:1.5.0'

(2)在BaseApplication的onCreate()方法中添加初始化代码:

            注意既然是调试工具,上线版本就不需要了,不然看上面的图片好多信息容易泄漏。
            所以需要判断 isDebug模式下

 // 初始化调试工具
    private void initDebugTool() {
        if (BuildConfig.DEBUG) {// 开发模式下
            Stetho.initializeWithDefaults(this);
        }
    }

(3)在OkHttp生成client的地方,加入拦截器

  1. new OkHttpClient.Builder()

  2. .addNetworkInterceptor(new StethoInterceptor())

  3. .build()

四、Ok,Anyway:

(1)优点:

① 简洁,不需要测试同学额外安装软件+配置代理网络,仅仅一个Chrome浏览器,一根USB/Type-C线,即用即走~
② 无需Root,即可查看手机APP中的缓存数据
③ 方便其他非测试同学,也能随时查看Http请求/响应数据。

(2)缺点:

① 目前只能配合OkHttp使用
② 必须配合Chrome浏览器使用,谁让Android、Chrome是一家呢
③ 此种方式仅适用Android手机,iOS的话,由iOS同学发掘其他工具了,实在没有,只能抓包工具了。

五、功能

1、查看Android数据库

说到查看Android数据库肯定有好多人想的是先把手机root了,然后通过这个Android Device Monitor找到/data/data/com.xxx.xxx/databases里面的db文件,然后导出到PC上,最后用PC上的数据库工具打开来查看。这种方式还会遇到data文件夹死活打不开的情况(权限问题),说多了都是泪。我们还是直接开口Stetho怎么方便快捷查看DB吧。 
这里写图片描述 
如上图,在Chrome的控制台中选择Resources,这里保存了手机上的数据,Web SQL下面就是数据库了,点击就可以看到数据库中有多少张表,每张表里有多少数据。Local Storage中保存了本地缓存数据也就是sharedpreference中的数据,点击对应的应用也可以清楚看到存储的数据。

另外,如果想要修改的话,可以点击数据库文件名就进入cmd模式了,可以通过sql命令来增删改查啦。如下图: 
这里写图片描述

2、调试网络接口

有时候想看看请求的接口和返回的数据,我们常用的做法是把请求地址放在浏览器中查看或者使用Post man来查看,这种方法我们都需要手动添加接口的参数,header等信息,非常麻烦。现在通过Stetho只要程序跑起来我们就能随时看到程序的接口数据了。如下图: 
这里写图片描述

这里写图片描述

小贴士:用Chrome开发者工具抓包的时候,会发现如果页面跳转了,那么上一个页面的请求信息就没有了。这个只要勾选上Preserve log就不会了。

3、查看UI页面结构

界面UI树状结构也能抓的到,点击Elements下查看。普通text信息还可以直接修改并在手机上预览效果。~(≧▽≦)/~上图: 
这里写图片描述

猜你喜欢

转载自blog.csdn.net/zhizhuodewo6/article/details/81099136
今日推荐