1. 程式人生 > >Android—App—必備開發元件—除錯工具篇—Stetho[配合OkHttp框架使用]

Android—App—必備開發元件—除錯工具篇—Stetho[配合OkHttp框架使用]

一、First and Foremost :

    測試同學,在測試Android—App時,所需要的其中一個重要的技能即判斷頁面資料錯誤後,能迅速定位是伺服器介面問題,還是APP邏輯問題。此時就需要知道伺服器介面返回給APP的原始資料是什麼樣子滴。
    牛逼的測試同學,一般會在電腦使用抓包工具(如Fiddler、Wireshark、Charles等)進行一大堆配置完畢後,手機配置代理後,獲取抓包。
    為簡化上述測試同學的工作量。本文引入一個牛逼的除錯工具—Stetho

二、No picture,You say a JB:

[必須在Chrome瀏覽器,才能使用呢]





三、Show Me Code:

使用開源框架stetho[該框架為Facebook開源,配合OkHttp使用]

(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同學發掘其他工具了,實在沒有,只能抓包工具了。