我正在参加「启航计划」

一、布景

Stetho是 Facebook 出品的一个强大的 Android 调试东西,运用该东西你能够在 Chrome Developer Tools检查APP的布局, 网络恳求(仅限运用Volle, okhttp的网络恳求库), Sqlite, Preference, 一切都是可视化的操作,无须自己在去运用adb, 也不需要root你的设备

自己运用自己的Nubia Z9 Mini作为调试机,由于牵涉到Sqlite数据库,所以测验了许多方法把它Root了,然而Root之后就无法正常晋级体系。
今日得知一调试神器Stetho,无需Root就能检查数据库以及APP的布局(这一点没有Android Device Monitor运用便利,但是Android Device Monitor在Mac上总是莫名其妙出问题),运用起来很便利,我们能够测验一下。

二、装备流程

1.引进主库

运用Gradle方法:

// Gradle dependency on Stetho 
  dependencies { 
    compile 'com.facebook.stetho:stetho:1.3.1' 
  } 

此外还支持Maven方法,这儿不做介绍。

2.引进网络恳求库

如果需要调试网络且你运用的网络恳求库是Volle或许Okhttp,那么你才需要装备,否则越过此步。
以下依据自己运用的网络恳求库情况来导入相应的库:
1.运用okhttp 2.X

 dependencies {
    compile 'com.facebook.stetho:stetho-okhttp:1.3.1' 
  } 

2.运用okhttp 3.X

dependencies {
    compile 'com.facebook.stetho:stetho-okhttp3:1.3.1' 
  } 

3.运用HttpURLConnection

dependencies {
    compile 'com.facebook.stetho:stetho-urlconnection:1.3.1' 
  }

3.装备代码

装备Application

public class XXX extends Application {
  public void onCreate() {
    super.onCreate();
    Stetho.initializeWithDefaults(this);
  }
}

装备网络恳求库:
OkHttp 2.2.x+ 或 3.x

//计划一
OkHttpClient client = new OkHttpClient();
client.networkInterceptors().add(new StethoInterceptor());
//计划二
new OkHttpClient.Builder()
    .addNetworkInterceptor(new StethoInterceptor())
    .build();

如果运用的是HttpURLConnection,请查阅相关文档。

4.运用

运行重新编译后的APP程序,保持手机与电脑的连接,然后打开Chrome浏览器,在地址栏里输入:chrome://inspect然后选择自己的设备下运行的APP进程名下的Inspect链接 即可进行调试。

三、遇到的问题

1.okhttp版别问题:

或许你还在运用okhttp 2.x的版别,在引进网络库的时分,你需要去检查一下Stetho当前版别运用的okhttp版别,避免在项目中运用多个不同版别的okhttp

PSokhttp2.x和3.x的引进方法略有不同,不能够直接修改版别号来导入:

//2.x
compile 'com.squareup.okhttp:okhttp:2.x.x'
//3.x
compile 'com.squareup.okhttp3:okhttp:3.x.x'

2.装备okhttp代码计划一报错:

//计划一
OkHttpClient client = new OkHttpClient();
client.networkInterceptors().add(new StethoInterceptor());
//计划二
OkHttpClient client = new OkHttpClient.Builder()
    .addNetworkInterceptor(new StethoInterceptor())
    .build();

我在运用计划一进行装备okhttp的时分,会报错:

 Caused by: java.lang.UnsupportedOperationException

不知道是不是兼容的问题,我们在运用的时分请注意。

Stetho官网


转载请注明出处,如果有什么建议或许问题能够随时联系我,共同探讨学习:

  • Github: likfe
  • CSDN:他叫自己Mr.张
  • :cafeting
  • 微博:cafeting