|
| 1 | +#Stetho for Android debug builds only |
| 2 | +# 在Android调试模式中使用Stetho |
| 3 | +------ |
| 4 | + |
| 5 | + - 原文链接:[在Android调试模式中使用Stetho][11] |
| 6 | + - 译者:BillionWang |
| 7 | + - 校对者 |
| 8 | + - 状态:完成 |
| 9 | + |
| 10 | +最近FaceBook发布了一个叫做[Stetho][2]的工具.这个工具是一个谷歌浏览器的开发者工具扩展 ,它可以用来检测你的应用。我发现这东西挺好用的,因为它还提供了访问应用中SQLite数据库的接口。很明显,这种类型的工具只应该在应用的调试模式中使用。接下来我们来看看怎么用这个工具。 |
| 11 | + |
| 12 | + |
| 13 | +#添加依赖 |
| 14 | +为了保证只在调试模式中使用Stetho,你可以添加一个调试编译依赖,而不是平时常用的普通依赖类型。 |
| 15 | + |
| 16 | + depencencies { |
| 17 | + // your other dependencies here... |
| 18 | + debugCompile 'com.facebook.stetho:stetho:1.0.0' |
| 19 | + } |
| 20 | + |
| 21 | +#在调试模式中初始化Stetho |
| 22 | + |
| 23 | +现在我们在调试中使用Stetho。你会怎么做?当然使用牛逼闪闪的Android Gradle构建系统啦。创建一个源文件夹,目录结构为 <font color="red">src/debug/java</font>。这个目录中的代码仅仅是用于调试模式。这个目录结构和<font color="red">src/main/java</font>很像,因为构建模式就是用于应用程序的调试的。(这句话再想想)。然后添加一个[Stetho][5]主页上描述的 [Application][6]。 |
| 24 | + |
| 25 | + import com.facebook.stetho.Stetho; |
| 26 | + |
| 27 | + public class MyDebugApplication extends MyApplication { |
| 28 | + @Override |
| 29 | + public void onCreate() { |
| 30 | + super.onCreate(); |
| 31 | + Stetho.initialize( |
| 32 | + Stetho.newInitializerBuilder(this) |
| 33 | + .enableDumpapp(Stetho.defaultDumperPluginsProvider(this)) |
| 34 | + .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(this)) |
| 35 | + .build()); |
| 36 | + } |
| 37 | + } |
| 38 | +看清楚这个类是怎样继承一个已经有的<font color="red">MyApplication.</font>类的。这样写的确很方便,因为你的应用里可能已经有一个application来进行其他的初始化了。如果你还没有一个application。你从<font color="red">android.app.Application.</font>继承一个就行了。 |
| 39 | + |
| 40 | +#激活我的调试应用 |
| 41 | + |
| 42 | + |
| 43 | +最后一步,我们要做的工具是确保当前的应用的调试版本使用的是MyDebugApplication类。在这里我们用Gradle来验证。在<font color="red">src/debug</font>文件夹中添加一个<font color="red">AndroidManifest.xml</font> |
| 44 | + |
| 45 | + |
| 46 | + <manifest |
| 47 | + package="com.mycompany" |
| 48 | + xmlns:android="http://schemas.android.com/apk/res/android" |
| 49 | + xmlns:tools="http://schemas.android.com/tools"> |
| 50 | + |
| 51 | + <application |
| 52 | + tools:replace="android:name" |
| 53 | + android:name=".MyDebugApplication"/> |
| 54 | + |
| 55 | + </manifest> |
| 56 | + |
| 57 | +这个<font color="red">AndroidManifest.xml</font>会合并到<font color="red">src/main</font>中的主AndroidManifest.xml文件里,并且会替换标签中的<font color="red">android:name</font>属性。这是因为我们特别添加上了tools:replace="android:name"属性。真屌。 |
| 58 | + |
| 59 | + |
| 60 | +现在当你启动程序的调试模式,[Stetho][8]就会被激活。如果你切换到发布版本,Stetho绝对不会被激活,也看不到它的任何痕迹。如果想要不丢人,程序员要保证软件没有BUG。 |
| 61 | + |
| 62 | + |
| 63 | +#总结 |
| 64 | +用Android Gradle构建系统,可以很容易的给你的应用添加更多的调试功能。这门手艺不仅可以用在[Stetho][10]上,还可以用于那些你希望仅仅在调试模式中添加的类库或者工具。 |
| 65 | + |
| 66 | + |
| 67 | + [1]: https://github.com/facebook/stetho |
| 68 | + [2]: https://github.com/facebook/stetho |
| 69 | + [3]: http://developer.android.com/reference/android/app/Application.html |
| 70 | + [4]: https://github.com/facebook/stetho |
| 71 | + [5]: https://github.com/facebook/stetho |
| 72 | + [6]: http://developer.android.com/reference/android/app/Application.html |
| 73 | + [7]: https://github.com/facebook/stetho |
| 74 | + [8]: https://github.com/facebook/stetho |
| 75 | + [9]: https://github.com/facebook/stetho |
| 76 | + [10]: https://github.com/facebook/stetho |
| 77 | + [11]:http://littlerobots.nl/blog/stetho-for-android-debug-builds-only/ |
0 commit comments