专栏首页Android必知必会Android必知必会-Stetho调试工具

Android必知必会-Stetho调试工具

版权声明:本文为[他叫自己Mr.张]的原创文章,转载请注明出处,否则禁止转载。 https://micro.blog.csdn.net/article/details/50728411

一、背景

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android 中arm64-v8a、armeabi-v7a、armeabi、x86简介~

    LZ是一名96年Android小生,从14年9月培训出来到现在,差不多俩年多的时间,由于一些原因,没能好好把技术提升一下,实乃不该啊。

    HLQ_Struggle
  • IEEE终于“认错”,在学术界群起抗议下,决定解除对华为员工的限制

    6月3日,IEEE发表声明称,已向美国商务部要求就出口管制条例在IEEE出版活动的适用性做出说明,根据最新收到的说明,华为及其子公司的员工可以参加IEEE出版过...

    镁客网
  • 源码分析Dubbo事件派发机制

    从官网我们得知,Dubbo协议是使用单一长连接来进行网络传输,也就是说服务调用方持久与服务提供者建立一条连接,所有的服务调用调用信息通过。 一条TCP连接进行传...

    丁威
  • 极光推送使用心得以及记录

    最近项目遇到推送,与后台贱人于一合计,果断采用了极光推送。在使用过程中,有爽有不爽,特意再次记录下。

    HLQ_Struggle
  • Apk 反编译前期了解

    LZ-Says:学习之路,似乎枯燥乏味,唯有耐着性子,独自前行,当光明笼罩的那一刻,一切,也仿佛明亮了许多。

    HLQ_Struggle
  • Android Study 之 findViewById 变迁之路

    现在,一到周六,想想还要继续上班,瞬间千万个不爽席卷而来,XXOO此处省略n字。。。 休息一天的好处在于,让你感觉一天休息时间格外珍贵,而坏处在于,劳资TMD还...

    HLQ_Struggle
  • Android Studio2.3打包apk

    话说从Eclipse转化到Android Studio后,一直都没打个包,发个版本,今天想提交测试打个版本,丫的一看,和Eclipse不一样了。在此记录下,顺便...

    HLQ_Struggle
  • 五个特性,让你升级React

    本系列文章主要将总结React从15.x升级到v16.x所需要注意的内容,本文则主要总结为什么要升级到v16.x,v16.x的一些新特性,主要内容包括:

    前端林子
  • ViewPager+ Fragment结合的setUserVisibleHint()调用时机

    最近的项目使用到了ViewPager + Fragment的模式,要求在每次Fragment获取显示的时候来刷新数据,该项目下ViewPager有5个子frag...

    Android技术干货分享
  • Android Study 玩转百度ocr身份证识别不是梦~

    LZ-Says:最近好哥儿们因公来廊坊,在家里可谓夜夜笙歌,喝酒喝的俩眼发懵,最近状态欠佳,导致学习计划一直在滞留,今天通过简短的小例子,重新拾起学习之路,滚蛋...

    HLQ_Struggle

扫码关注云+社区

领取腾讯云代金券