Android—App—必备开发组件—调试工具篇—Stetho[配合OkHttp框架使用]

一、First and Foremost :

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

二、No picture,You say a JB:

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

Android—App—必备开发组件—调试工具篇—Stetho[配合OkHttp框架使用]_第1张图片

Android—App—必备开发组件—调试工具篇—Stetho[配合OkHttp框架使用]_第2张图片

Android—App—必备开发组件—调试工具篇—Stetho[配合OkHttp框架使用]_第3张图片

Android—App—必备开发组件—调试工具篇—Stetho[配合OkHttp框架使用]_第4张图片

Android—App—必备开发组件—调试工具篇—Stetho[配合OkHttp框架使用]_第5张图片

三、Show Me Code:

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

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

(1)在build.gradle中引入

compile 'com.facebook.stetho:stetho:1.4.2'
compile 'com.facebook.stetho:stetho-okhttp3:1.4.2’

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

            注意既然是调试工具,上线版本就不需要了,不然看上面的图片好多信息容易泄漏。
            所以需要判断 isDebug模式下
public class BaseApplication extends Application {
  public void onCreate() {
    super.onCreate();
    initDebugTool();// 初始化调试工具
  }
}
// 初始化调试工具
private void initDebugTool() {
    if (ReleaseConstant.ISDEBUG) {// 开发模式下
        Stetho.initializeWithDefaults(this);
    }
}

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

new OkHttpClient.Builder()
    .addNetworkInterceptor(new StethoInterceptor())
    .build()

四、Ok,Anyway:

(1)优点:

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

(2)缺点:

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



你可能感兴趣的:(Android—App—必备开发组件—调试工具篇—Stetho[配合OkHttp框架使用])