私は以前からChromeに弱いところがありましたが、高速であることに加えて、Chromeは開発者にとってよりフレンドリーです。強力な開発者ツールが組み込まれているため、Web開発ではそれを止めることはできないと思います。また、Chrome Storeにはさまざまなプラグインが用意されており、使用することはできません。現在、Chromeは基本的にすべてを行うことができます。Chromeを使用してAndroidアプリをデバッグできると便利だと思うことがあります。FacebookがツールStethoをオープンソース化しただけで、ChromeのAndroidデバッグはもはや夢ではありません。
デバッグツール
Android開発のいくつかの公式のデバッグツールに加えて、私が必要だと思う2つのツールがあります。
- パケットキャプチャツール
Windowsプラットフォームに最適なのはFiddleで、Macに最適なのはCharlesです。これは、AndroidであろうとiOSであろうと、アプリ開発には必須です。
- Sqliteビュー
このツールはもっと便利です。組み込みのsqlite3ツールに加えて、より便利なGUIツールがまだいくつかあります。それらを1つずつリストすることはしません。好きなツールを検索して見つけることができます。いくつかのブラウザープラグインやさまざまなプラットフォームの一部のクライアント。アプリでsqliteファイルを表示するには、rootが必要であることを知っておく必要があります。
ステト
パケットキャプチャツールは使いやすいですが、毎回電話にプロキシを設定するのは面倒であり、ルートとしてsqliteファイルを表示するのはさらに面倒です。しかし、stethoでは、これらのツールはすべて組み込みで使いやすく、ルートは必要ありません。公式デモの使用方法を見てみましょう。
- まず、Gradleは
dependencies {
compile 'com.facebook.stetho:stetho:1.0.1'
}
- 次に、アプリのApplicationクラスで構成します
public class MyApplication extends Application {
public void onCreate() {
super.onCreate();
Stetho.initialize(
Stetho.newInitializerBuilder(this)
.enableDumpapp(
Stetho.defaultDumperPluginsProvider(this))
.enableWebKitInspector(
Stetho.defaultInspectorModulesProvider(this))
.build());
}
}
その後、デバッグのためにアプリを実行できます。これは基本的にデバッグのニーズを満たすことができます。
- Chromeデバッグ
打开Chrome,输入 chrome://inspect 然后就可以在列表里看到有你的app可以用stetho进行调试的app,facebook官方也提供了一个基本的sample,以下是它的sample提供的调试截图
基本功能使用
- 检测网络状态
- 查看App本地数据库并且可以直接执行SQL
- 查看App本地的SharedPreference文件并可以直接编辑
注意事项
值得注意的是如果你只是简单的进行配置下,检测网络状态的是没法查看,有两种方式:
- 使用OkHttp
这是最简单的一种方式,要求OkHttp的版本在2.2.x+,只需要添加如下代码, 这也是目前最简单的方法
OkHttpClient client = new OkHttpClient();
client.networkInterceptors().add(new StethoInterceptor());
- 使用HttpURLConnection
如果你使用的自己写的或者其他http library底层是用HttpURLConnection实现的,你需要使用StethoURLConnectionManager来进行集成。然后必须声明Accept-Encoding: gzip的请求headers。具体用法见facebook stetho源码的sample。
其中你可能会依赖如下network helpers.
dependencies {
compile 'com.facebook.stetho:stetho-okhttp:1.0.1'
}
或者
dependencies {
compile 'com.facebook.stetho:stetho-urlconnection:1.0.1'
}
最后,提供一个facebook stetho demo的一个下载。