观看介绍视频
下载
或者,您可以从Maven Central通过Gradle或Maven包含Stetho。
// Gradle dependency on Stetho
dependencies {
compile 'com.facebook.stetho:stetho:1.5.1'
}
<dependency>
<groupid>com.facebook.stetho</groupid>
<artifactid>stetho</artifactid>
<version>1.5.1</version>
</dependency>
只需要主要的 stetho
依赖,但您可能还希望使用其中一个网络助手
dependencies {
compile 'com.facebook.stetho:stetho-okhttp3:1.5.1'
}
或
dependencies {
compile 'com.facebook.stetho:stetho-okhttp:1.5.1'
}
或
dependencies {
compile 'com.facebook.stetho:stetho-urlconnection:1.5.1'
}
特性

Chrome开发者工具
与Chrome开发者工具前端的集成是使用客户端/服务器协议实现的,Stetho软件为您的应用程序提供了该协议。 集成应用程序后,只需导航到 chrome://inspect
并单击“检查”即可开始!

网络检查
通过Chrome开发者工具的全套功能可以进行网络检查,包括图像预览、JSON响应助手,甚至可以将跟踪导出为HAR格式。

数据库检查
可以使用完整的读/写功能对SQLite数据库进行可视化和交互式浏览。

视图层级
支持ICS(API 15)及更高版本的视图层级! 很多好东西,例如

dumpapp
Dumpapp超越了上面显示的开发者工具UI功能,为应用程序组件提供了一个更具扩展性的命令行界面。 提供了一组默认插件,但dumpapp的真正强大之处在于能够轻松创建自己的插件!

Javascript控制台
Javascript控制台允许执行可以与应用程序甚至Android SDK交互的javascript代码。
集成
设置
对于大多数现有的Android应用程序来说,与 Stetho 集成应该是无缝且直接的。 在您的 Application
类中有一个简单的初始化步骤
public class MyApplication extends Application {
public void onCreate() {
super.onCreate();
Stetho.initializeWithDefaults(this);
}
}
这会启动大多数默认配置,但不启用一些其他钩子(最显著的是网络检查)。 有关各个子系统的具体细节,请参见下文。
启用网络检查
如果您正在使用流行的OkHttp库的2.2.x+或3.x版本,则可以使用拦截器系统自动挂接到现有的堆栈中。 这是目前启用网络检查的最简单和最直接的方法。
对于 OkHttp 2.x
OkHttpClient client = new OkHttpClient();
client.networkInterceptors().add(new StethoInterceptor());
对于 OkHttp 3.x
new OkHttpClient.Builder()
.addNetworkInterceptor(new StethoInterceptor())
.build();
由于拦截器可以修改请求和响应,因此在所有其他拦截器之后添加 Stetho 拦截器,以获得网络流量的准确视图。
如果您使用的是 HttpURLConnection
,则可以使用 StethoURLConnectionManager
来协助集成,但您应该意识到此方法存在一些注意事项。 特别是,您必须显式地将 Accept-Encoding: gzip
添加到请求标头,并手动处理压缩响应,Stetho 才能报告压缩的有效负载大小。
有关更多详细信息,请参见 stetho-sample 项目。
自定义 dumpapp 插件
自定义插件是扩展 dumpapp 系统的首选方式,可以在配置期间轻松添加。 只需替换您的配置步骤,如下所示
Stetho.initialize(Stetho.newInitializerBuilder(context)
.enableDumpapp(new DumperPluginsProvider() {
@Override
public Iterable<DumperPlugin> get() {
return new Stetho.DefaultDumperPluginsBuilder(context)
.provide(new MyDumperPlugin())
.finish();
}
})
.enableWebKitInspector(Stetho.defaultInspectorModulesProvider(context))
.build());
有关更多详细信息,请参见 stetho-sample 项目。
贡献
使用 GitHub issues 提交请求。 我们积极欢迎pull请求; 了解如何 贡献。
###更新日志 更改以 GitHub 版本 的形式跟踪。
###许可证