• Android必知必会-Stetho调试工具


    一、背景

    Stetho是 Facebook 出品的一个强大的 Android 调试工具,使用该工具你能够在 Chrome Developer Tools查看APP的布局, 网络请求(仅限使用Volle, okhttp的网络请求库), Sqlite, Preference, 一切都是可视化的操作,无须自己在去使用adb, 也不须要root你的设备

    本人使用自己的Nubia Z9 Mini作为调试机。因为牵涉到Sqlite数据库。所以尝试了非常多办法把它Root了,然而Root之后就无法正常升级系统。
    今天得知一调试神器Stetho,无需Root就能查看数据库以及APP的布局(这一点没有Android Device Monitor使用方便,可是Android Device Monitor在Mac上总是莫名其妙出问题),使用起来非常方便,大家能够尝试一下。

    转载请注明出处:http://blog.csdn.net/ys743276112

    二、配置流程

    1.引入主库

    使用Gradle方式:

    // Gradle dependency on Stetho 
      dependencies { 
        compile 'com.facebook.stetho:stetho:1.3.1' 
      } 

    此外还支持Maven方式,这里不做介绍。

    2.引入网络请求库

    假设须要调试网络且你使用的网络请求库是Volle或者Okhttp,那么你才须要配置,否则跳过此步。
    下面依据自己使用的网络请求库情况来导入对应的库:
    1.使用okhttp 2.X

     dependencies { 
        compile 'com.facebook.stetho:stetho-okhttp:1.3.1' 
      } 

    2.使用okhttp 3.X

    dependencies { 
        compile 'com.facebook.stetho:stetho-okhttp3:1.3.1' 
      } 

    3.使用HttpURLConnection

    dependencies { 
        compile 'com.facebook.stetho:stetho-urlconnection:1.3.1' 
      }

    3.配置代码

    配置Application

    public class XXX extends Application {
      public void onCreate() {
        super.onCreate();
        Stetho.initializeWithDefaults(this);
      }
    }

    配置网络请求库:
    OkHttp 2.2.x+ 或 3.x

    //方案一
    OkHttpClient client = new OkHttpClient();
    client.networkInterceptors().add(new StethoInterceptor());
    
    //方案二
    new OkHttpClient.Builder()
        .addNetworkInterceptor(new StethoInterceptor())
        .build();

    假设使用的是HttpURLConnection,请查阅相关资料。

    4.使用

    执行又一次编译后的APP程序。保持手机与电脑的连接,然后打开Chrome浏览器。在地址栏里输入:chrome://inspect然后选择自己的设备下执行的APP进程名下的Inspect链接 就可以进行调试。

    三、遇到的问题

    1.okhttp版本号问题:

    可能你还在使用okhttp 2.x的版本号。在引入网络库的时候,你须要去查看一下Stetho当前版本号使用的okhttp版本号,避免在项目中使用多个不同版本号的okhttp

    PSokhttp2.x和3.x的引入方式略有不同,不能够直接改动版本号号来导入:

    //2.x
    compile 'com.squareup.okhttp:okhttp:2.x.x'
    //3.x
    compile 'com.squareup.okhttp3:okhttp:3.x.x'

    2.配置okhttp代码方案一报错:

    //方案一
    OkHttpClient client = new OkHttpClient();
    client.networkInterceptors().add(new StethoInterceptor());
    
    //方案二
    OkHttpClient client = new OkHttpClient.Builder()
        .addNetworkInterceptor(new StethoInterceptor())
        .build();

    我在使用方案一进行配置okhttp的时候,会报错:

     Caused by: java.lang.UnsupportedOperationException

    不知道是不是兼容的问题,大家在使用的时候请注意。

    Stetho官网


    转载请注明出处:http://blog.csdn.net/ys743276112

  • 相关阅读:
    SWPUCTF2019 | 神奇的二维码
    CG-CTF | Hello,RE!
    CG-CTF | I wanna play CTF
    CG-CTF | MD5
    CG-CTF | 综合题2
    CG-CTF | 密码重置2
    CG-CTF | 综合题
    修改input输入框placeholder文字默认颜色
    解决前端浏览器字体小于12px办法
    box-shadow四个边框设置阴影样式
  • 原文地址:https://www.cnblogs.com/yjbjingcha/p/7238285.html
Copyright © 2020-2023  润新知