Stetho for Android debug builds only

1801次阅读  |  发布于5年以前

Stetho for Android debug builds only

在Android调试模式中使用Stetho


最近FaceBook发布了一个叫做Stetho的工具.这个工具是一个谷歌浏览器的开发者工具扩展 ,它可以用来检测你的应用。我发现这东西挺好用的,因为它还提供了访问应用中SQLite数据库的接口。很明显,这种类型的工具只应该在应用的调试模式中使用。接下来我们来看看怎么用这个工具。

添加依赖

为了保证只在调试模式中使用Stetho,你可以添加一个调试编译依赖,而不是平时常用的普通依赖类型。

depencencies {
// your other dependencies here...
debugCompile 'com.facebook.stetho:stetho:1.0.0'
}

在调试模式中初始化Stetho

现在我们在调试中使用Stetho。你会怎么做?当然使用牛逼闪闪的Android Gradle构建系统啦。创建一个源文件夹,目录结构为 src/debug/java。这个目录中的代码仅仅是用于调试模式。这个目录结构和src/main/java很像,因为构建模式就是用于应用程序的调试的。(这句话再想想)。然后添加一个Stetho主页上描述的 Application

import com.facebook.stetho.Stetho;

public class MyDebugApplication extends MyApplication {
    @Override
    public void onCreate() {
        super.onCreate();
        Stetho.initialize(
                Stetho.newInitializerBuilder(this)
                        .enableDumpapp(Stetho.defaultDumperPluginsProvider(this))
                        .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this))
                        .build());
    }
}

看清楚这个类是怎样继承一个已经有的MyApplication.类的。这样写的确很方便,因为你的应用里可能已经有一个application来进行其他的初始化了。如果你还没有一个application。你从android.app.Application.继承一个就行了。

激活我的调试应用

最后一步,我们要做的工具是确保当前的应用的调试版本使用的是MyDebugApplication类。在这里我们用Gradle来验证。在src/debug文件夹中添加一个AndroidManifest.xml

<manifest
    package="com.mycompany"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">

    <application
        tools:replace="android:name"
        android:name=".MyDebugApplication"/>

</manifest>

这个AndroidManifest.xml会合并到src/main中的主AndroidManifest.xml文件里,并且会替换标签中的android:name属性。这是因为我们特别添加上了tools:replace="android:name"属性。真屌。

现在当你启动程序的调试模式,Stetho就会被激活。如果你切换到发布版本,Stetho绝对不会被激活,也看不到它的任何痕迹。如果想要不丢人,程序员要保证软件没有BUG。

总结

用Android Gradle构建系统,可以很容易的给你的应用添加更多的调试功能。这门手艺不仅可以用在Stetho上,还可以用于那些你希望仅仅在调试模式中添加的类库或者工具。

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8