那些有意思的Android开发工具系列三(stetho)

96
Zach_C
2017.02.25 22:54* 字数 531

stetho

github地址

Stetho is a debug bridge for Android applications, enabling the powerful Chrome Developer Tools and much more.
  • stetho是Facebook开发的Android调试工具。它可以通过chrome的开发者工具来辅助安卓开发。
  • 可以查看应用的网络情况,监测应用中SQLite、SharedPreferences数据,查看Activity的布局结构,修改布局中的文字等,可以实时生效,也可以借助JS执行一些命令,查看当前应用中的数据。
  • 有了stetho我们就可以省去Fiddle(一款Windows常用的抓包工具)、Charles(Mac上常用的抓包工具)设置端口什么的麻烦了,更不用root就可以查看sqlite数据了。接下来分享一下简单的使用

简单使用

  1. 添加库,方式有几种,具体可以查看github,这里我来最简单粗暴的
    <code>compile 'com.facebook.stetho:stetho:1.4.2'</code>
  2. 然后我们在我们的Application中初始化就行
public class MyApplication extends Application {
    public void onCreate() {
            super.onCreate();
            Stetho.initializeWithDefaults(this);
    }
}
  1. 现在我们就可以在Chrome中使用stetho调试我们的应用了,在Chrome的地址栏中输入 chrome://inspect 就可以看到app
    devices.png

** 什么?没有找到自己的app?有没有在AndroidManifest文件中的application的name属性指定为自己的Application呢?**

  • 查看app具体信息


    open.png
  • 本地数据库


    本地数据库.png
  • 执行sql语句


    本地数据库,并且可以执行sql语句.png
  • SharedPreferences文件


    查看sp文件并编辑.png
  • 检测网络


    网络.png

什么?你的app检测不到网络状态?

我们只是简单的设置了一下,所以是看不到网络状态的,提供了两种方式:

  1. Okhttp
compile 'com.facebook.stetho:stetho-okhttp3:1.4.2'

当然很多时候我们都是引用okhttp官方的库,所以我们就需要下面代码来拦截了,这是目前最简单粗暴的

new OkHttpClient.Builder()
    .addNetworkInterceptor(new StethoInterceptor())
    .build()
  1. HttpURLConnection
compile 'com.facebook.stetho:stetho-urlconnection:1.4.2'

** 具体代码可以查看Facebook的demo- stetho-sample **

什么?要启用JavaScript控制台?

For more details on how to customize the JavaScript runtime see stetho-js-rhino.

compile 'com.facebook.stetho:stetho-js-rhino:1.4.2'

JavaScript控制台具体请查看github

参考文章:帅张的使用CHROME来调试你的ANDROID APP

Android开发工具系列