Android 调试工具 Stetho 使用学习

来源:互联网 发布:简单的数据库系统 编辑:程序博客网 时间:2024/05/22 07:07

原文地址: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
原创粉丝点击