原文地址: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. 网络请求监测

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

  3. 查看与操作sharedpreference

  4. 在Chrome上查看View的层级

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

  6. http请求头查看

  7. json数据查看

最后附上我的 DEMO

APK

Source Code

#debug


更多相关文章

  1. 没有一行代码,「2020 新冠肺炎记忆」这个项目却登上了 GitHub 中
  2. 坑爹的minSdkVersion配置
  3. Android代码实现状态选择器
  4. android 内存溢出oom错误的一些小见解
  5. 在ubuntu下编译android和linux版webrtc的步骤
  6. android相关知识简介
  7. android 中间件开发
  8. Android培训班(19)
  9. Android(安卓)Studio项目混淆后输出的文件所在位置

随机推荐

  1. Android布局属性全面剖析
  2. scrollView嵌套recyclerView 显示不全
  3. Android sqlite
  4. EditText设置键盘操作
  5. ~/.dirlst 文件
  6. Android——蓝牙通信
  7. Android中使用ViewPage进行广告轮播测试
  8. Android Building System 分析
  9. android MotionEvent中getX()和getRawX()
  10. android设置不显示标题