软件调试器android,【译】一款强大的Android调试工具:Stetho

一个专门给Android应用使用的调试桥工具

Stetho是一个给Android应用使用的高级调试桥工具。当启用后,开发者可以使用Chrome桌面浏览器的Chrome开发者工具特性。开发者也可以选择启用可选的dumpapp工具,它提供了一个强大的触及应用程序内部的命令行界面。

下载

或者你也可以通过Gradle或者Maven,从Maven中心仓库中下载Stetho到你的项目中。

// Gradle

dependencies {

compile 'com.facebook.stetho:stetho:1.3.1'

}

com.facebook.stetho

stetho

1.3.1

只有stetho核心是必须的,你也可以同时包含进网络库,如:

dependencies {

compile 'com.facebook.stetho:stetho-okhttp3:1.3.1'

}

或者

dependencies {

compile 'com.facebook.stetho:stetho-okhttp:1.3.1'

}

或者

dependencies {

compile 'com.facebook.stetho:stetho-urlconnection:1.3.1'

}

特性

Chrome开发者工具

64c10f79d8fe

inspector-discovery

Stetho软件通过使用客户端/服务器协议实现了在Chrome开发者工具前端的集成。一旦你的应用集成了Stetho,只要在地址栏上输入chrome://inspect并点击Inspect就可以开始玩了。

网络监视

64c10f79d8fe

inspector-network

可以使用Chrome开发者工具的全套功能来进行网络监视,包括图片预览、JSON响应协助,甚至是输出HAR格式的追踪信息。

数据库监视

64c10f79d8fe

inspector-sqlite

SQLite数据库可以被可视化和交互式地浏览,并且具备完全的读写能力。

视图层级

64c10f79d8fe

inspector-elements

视图层级功能支持ICS(API 15)以及更高版本的Android系统。有很多很棒的功能,比如说View实例被可视化地放置在视图层级中、视图高亮和点击view就可以跳到它在层级中的位置。

Dumpapp

64c10f79d8fe

dumpapp-prefs

Dumpapp扩展超出了Chrome开发者工具所能显示的,它给应用组件提供了一个更具扩展性的命令行界面。它提供了一套默认的插件集,但是dumpapp真正强大之处是你可以创建你自己的插件。

JavaScript控制台

64c10f79d8fe

inspector-js

JavaScript控制台允许你执行JavaScript代码,来跟应用甚至是Android SDK交互。

集成

设置

集成Stetho对现在的大多数Android应用来说,是无缝和直接的。下面的例子展示了在你的Application中初始化Stetho。

//自定义Application并在清单文件的的name属性中配置

public class MyApplication extends Application {

public void onCreate() {

super.onCreate();

//使用默认配置初始化Stetho

Stetho.initializeWithDefaults(this);

}

}

这样子会启用许多默认的设置,但是没有启用一些额外的钩子功能(hook)(特别是网络监视)。

接着看下面如何在自己的子系统中指定详细的设置。

启用网络监视

如果你使用流行的2.2.x+或者3.x发布版的OkHttp库,你可以使用监视器系统来自动hook进已存在的栈。目前启用网络监视最简单的最直接的方法是:

OkHttpClient client = new OkHttpClient();

client.networkInterceptors().add(new StethoInterceptor());

或者

new OkHttpClient.Builder()

.addNetworkInterceptor(new StethoInterceptor())

.build();

如果你使用HttpURLConnection,那么你可以使用StethoURLConnectionManager来帮助你进行网络监视,虽然用这个方法时要留意下一些警告信息。值得一提的是,你必须显示添加Accept-Encoding: gzip到请求头中,并手动处理压缩后的响应,以便Stetho报告压缩载荷大小。

定制dumpapp插件

定制插件是一个继承dumpapp系统的绝好方法,它还可以在配置中很方便的。简单地替换下你的配置,如:

Stetho.initialize(Stetho.newInitializerBuilder(context)

.enableDumpapp(new DumperPluginsProvider() {

@Override

public Iterable get() {

return new Stetho.DefaultDumperPluginsBuilder(context)

.provide(new MyDumperPlugin())

.finish();

}

})

.enableWebKitInspector(Stetho.defaultInspectorModulesProvider(context))

.build());

64c10f79d8fe

PS:倒骑驴的农民公众号开通啦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值