Stetho的使用和debug配置

首先是https://github.com/facebook/stetho地址

1.gradle配置

implementation 'com.facebook.stetho:stetho:1.5.1'

2.如果调试网络需要借助拦截器,一般现在用okhttp3

implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'

3.application初始化的时候注册,记得清单修改app

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

4.后续把APP跑起来,chrome浏览器打开(chrome://inspect/#devices)
5.如果404,使用TI 子缓存一次就可以了
6.可以看到本地数据库,不用下载查看了,很爽

只在debug模式使用,免手动代码切换

如果不想在release模式也包含进去,就要在debug下添加,release不包含
好像if (BuildConfig.DEBUG)
Stetho.initializeWithDefaults(this)
就搞定了? 并不是,import com.facebook.stetho.Stetho在release报错了,你可以选择手动,或者自动
1.修改debugImplementation

debugImplementation rootProject.ext.dependencies["stetho"]
debugImplementation rootProject.ext.dependencies["stetho-okhttp3"]

2.新建debug文件夹,在main同级,新建app\src\debug\AndroidManifest.xml,替换application
···
tools:replace="android:name"
android:name=".debugApplication"
tools:ignore="GoogleAppIndexingWarning"/>
···
3.在app\src\debug\java\com***\下新建debugApplication

class debugApplication : FeedApp() {

    override fun onCreate() {
        super.onCreate()
        if (BuildConfig.DEBUG)
            Stetho.initializeWithDefaults(this)
    }
}

这样的情况下,debug模式会替换debugApplication作为app,但是先初始化FeedApp,FeedApp的单例可以存储下application的引用,不管是debug和release还是可以通过FeedApp来获得application,只有在debug下,后续初始化Stetho。

你可能感兴趣的:(Stetho的使用和debug配置)