Android 调试工具 Stetho 使用学习

原文地址:http://tech.luffyjet.com/2015/04/08/facebook-stetho-okhttp-study/


今年年初,facebook开源了一个Android开发调试工具,叫stetho,应该是单词stethoscope的一部分吧,意为诊断器。

代码托管地址: https://github.com/facebook/stetho

在项目中添加相应代码,通过Chrome DevTools连接设备后具备以下功能:

  1. 可以在Chrome里进行网络访问检测,可以查看请求链接,请求头,JSON数据等
  2. 不root的情况下查看Sqlite数据库,并且可以使用sql语句去操作
  3. 最近又升级了,API 15 以上能查看View hierarchy了
  4. dumpapp 工具提供强大的命令行接口来访问应用内部

更新比较频繁,前几天更新到1.1.0了,使用AndroidStudio可以很方便的添加到项目中。当然也可以从github页面下载最新Jar包。

使用Chrome DevTools 需要科学上网(fanqiang),否则点 inspect 会出一直是一块白板。(或者寻求其他方法解决)

要在项目中启动Stetho很方便,按照官方的说明:

  1. 添加初始化的代码到Application内,完成这一步就具备查看数据库,查看View层级结构,使用默认dumpapp工具的能力了

       public class MyApplication extends Application {
          public void onCreate() {
            super.onCreate();
            Stetho.initialize(Stetho.newInitializerBuilder(this)
                .enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
                  .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this)).build();
         }
    }
    
  1. 开启网络检测,有两种方式

    • 使用HttpURLConnection有些麻烦,可以参考我提供的DEMO的代码(在正文最底下),需要用到另一个依赖 stetho-urlconnection
    • 如果用的目前超流行的 OkHttp 则非常方便,给OkHttpClient 设置一个StethoInterceptor 即可,需要另一个依赖 stetho-okhttp

      OkHttpClient client = new OkHttpClient();
      client.networkInterceptors().add(new StethoInterceptor());
      
    • 如果用了Retrofit这个开源项目,也可以很方便的进行设置,同样需要另一个依赖 stetho-okhttp

      OkHttpClient client = new OkHttpClient();
      client.networkInterceptors().add(new StethoInterceptor());
      RestAdapter adapter = new RestAdapter.Builder().setClient(new OkClient(client)).setEndpoint(BASE_URL).buid();
      
  1. 自定义 dumpapp 可以参考我提供的DEMO的代码,值得注意的是 该工具只能运行在 类Unix环境下,比如Linux和Mac。

效果截图(点击可查看大图)

  1. 网络请求监测
    网络检测效果1

  2. 查看与操作sqlite操作效果
    sqlite操作效果

  3. 查看与操作sharedpreference
    sharedpref操作效果

  4. 在Chrome上查看View的层级
    view层级查看

  5. 在上图显示的层级中我选中Actionbar后,手机上也会显示被选中的位置
    手机界面效果

  6. http请求头查看
    http请求头查看

  7. json数据查看
    json数据查看

最后附上我的 DEMO

APK

Source Code


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值