在 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 上,还可以用于那些你希望仅仅在调试模式中添加的类库或者工具。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论