首先是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
···
<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。