概述
Stetho 是 Facebook 开源的一个 Android 调试工具。是一个 Chrome Developer Tools 的扩展,可用来检测应用的网络、数据库、WebKit 、SharePreference等方面的功能。开发者也可通过它的 dumpapp 工具提供强大的命令行接口来访问应用内部。推荐它的原因是不需要root,就可以实现上面的功能。配置好之后,在Chrome地址栏输入chrome://inspect 既可。
查看网络请求(类似于fiddler或者charles):
查看数据库等
使用主要分为4部:
1. 项目添加依赖 compile ‘com.facebook.stetho:stetho:1.3.1‘
2. 初始化 Stetho
public class MyApplication extends Application {
public void onCreate() {
super.onCreate();
Stetho.initializeWithDefaults(this);
}
}
3. 修改网络请求(可自行修改app的请求方式)
对于请求的方式,可以根据自己项目实际网络的使用情况来选择,这里比如我使用的okHttp。
new OkHttpClient.Builder() .
addNetworkInterceptor(new StethoInterceptor()) .build()
运行项目
在chrome中访问 chrome://inspect。然后找到你的项目 点击 inspect就可以开始调试了。
自定义dumpapp 插件定义插件是扩展dumpapp系统的首选方式,可以轻松地添加在配置。其使用也是非常的简单,如
Stetho.initialize(Stetho.newInitializerBuilder(context)
.enableDumpapp(new MyDumperPluginsProvider(context))
.build())
private static class MyDumperPluginsProvider
implements DumperPluginsProvider {
public Iterable get() {
ArrayList plugins = new ArrayList();
for (DumperPlugin defaultPlugin :
Stetho.defaultDumperPluginsProvider(mContext).get()) {
plugins.add(defaultPlugin);
}
plugins.add(new MyDumperPlugin());
return plugins;
}
}
至于MyDumperPlugin的编写,可以参考官方的写法,插件的使用是与dumpapp工具结合的,而上文中的dumpapp只是截了一张图,却没有解释如何使用,其实该插件位于官方项目的scripts目录下,可以自行研究其原理。
附; facebook/stetho 教程涉及源码