一、背景
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上总是莫名其妙出问题),使用起来非常方便,大家能够尝试一下。
转载请注明出处:http://blog.csdn.net/ys743276112
二、配置流程
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
。
PS:okhttp
2.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
不知道是不是兼容的问题,大家在使用的时候请注意。
转载请注明出处:http://blog.csdn.net/ys743276112