Facebook开源的一款Android调试工具

概述

Stetho是Facebook开源的一个Android调试工具,git地址:facebook/stetho
通过Stetho,开发者可以使用chrome的inspect功能,对Android应用进行调试和查看。

功能概述

Stetho提供的功能主要有:

Network Inspection:网络抓包,如果你使用的是当前流行的OkHttp或者Android自带的 HttpURLConnection等,你可以轻松地在chrome inspect窗口的network一栏抓到所有的网络请求和回包。
Database Inspection:数据库查看,可以直接看到当前应用的sqlite数据库。
View Hierarchy:布局层级查看,免去使用查看布局边界的花花绿绿带来的痛苦和卡顿,并且能看到每个view和layout的各类属性。
Dump App:命令行拓展,构造了一个命令行与Android App的交互通道,在命令行输入一行命令,App可以收到并且在命令行上进行反馈输出。
Javascript Console:Javascript控制台,在inspect的console窗口,输入Javascript可以直接进行Java调用。使用这个功能,得先引入facebook/stethostetho-js-rhino和mozilla/rhino。
到这里大概了解了它的用处,感兴趣的同学可以去看看源码,本文这里只介绍其用法。

1、项目集成

1、集成项目依赖

    implementation 'com.facebook.stetho:stetho:1.5.0'
    implementation 'com.facebook.stetho:stetho-okhttp3:1.5.0'

gradle3.0之前版本添加依赖方式,这里就不做多介绍了,可自行搜。。。

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

2、初始化

private fun initStetho() {
        Stetho.initializeWithDefaults(this);
    }

3、配置拦截器
Java:

 builder.addNetworkInterceptor(new StethoInterceptor())

Kotlin:

 builder.addNetworkInterceptor(StethoInterceptor())

2、查看相关数据

打开Chrome浏览器,输入

chrome://inspect/#devices

看到如下界面(需要翻墙):

inspect

然后可以看到如下界面:

View

请求网络我们可以看到如下:

network

是不是很方便,我们可以看到Status等栏目都会变化,展示httpcode,请求耗时、回包数据类型等信息。

network

databases

官方对dump app的api说明实在太少,有需要大家可以去研究研究,即首先需要在App内,通过enableDumpapp方法注册自己的插件:

.enableDumpapp(new DumperPluginsProvider() {  @Override
  public Iterable<DumperPlugin> get() {    return new Stetho.DefaultDumperPluginsBuilder(context)
        .provide(new MyDumperPlugin())
        .finish();
  }
})
.enableWebKitInspector(Stetho.defaultInspectorModulesProvider(context))
.build())

对于Console,大家也可以试试,复制下面代码:

importPackage(android.widget);
importPackage(android.os);var handler = new Handler(Looper.getMainLooper());
handler.post(function() { Toast.makeText(context, "Hello from JavaScript", Toast.LENGTH_LONG).show() });

总结

总的来说这块开发工具还是不错的,虽然可以日志输出,但是查看比较麻烦。有时间可以去看看源码,学习学习,这里就不叙述了。

大家在使用的时候切记仅debug模式开放哈~
大家在使用的时候切记仅debug模式开放哈~
大家在使用的时候切记仅debug模式开放哈~

最后,大家动动小手关注一波吧~

长按(或扫码)识别二维码,关注~

陈不二
博客地址:
http://www.chenbu2.com
简书地址:
https://www.jianshu.com/u/f4874eb81c5b
GitHub地址:
https://github.com/ChenBu2
爱学啊合作讲师:
http://www.ixuea.com/
公众号:
陈不2
技术交流QQ群:
858499698

欢迎一块交流学习~

喜欢的朋友记得点赞转发分享哦!

作者: chenbu2

陈不二,喜欢技术,欢迎一块交流学习~ 大家可以关注我的个人博客: www.chenbu2.com 简书地址: https://www.jianshu.com/u/f4874eb81c5b 公众号: 陈不二 技术交流QQ群: 858499698

发表评论

电子邮件地址不会被公开。 必填项已用*标注