LoginSignup
2
1

More than 3 years have passed since last update.

Stetho導入

Posted at

はじめに

AndroidStudioでProfilerがあり、そこでNetworkの通信内容を見ることが可能ですが、業務でAirWatchに対応した際に実機でProfiling出来なくなってしまったので如何に通信内容を調べようかと思案していた。
パケットキャプチャ出来ればいいんですが、社内のソフト管理が厳しく申請通すのがひどくめんどくさく時間を要するので何かいいのがないかなーと調べていたところ、Stethoを見つけて使ってみたのでその時の記録を残すものである。

環境

Mac Catalina

Stethoとは

一時期仮想通貨でニュースを賑わせていたFacebookが公開しているオープンソースなライブラリ。
ライセンスはBSDなので厳しくない。
パースしている内容はChromeで見る。
今回はNetworkだけをターゲットにしているけどRealmとかViewのヒエラルキーとか色々見ることが可能。
同じようなライブラリでFlipperなるものもあるけどFlipperのアプリをPCに入れる必要がある。
ちなみにFlipperは昔Sonarって名前だったみたいです。(DAWと被ってややこしいから名前変わったのかな)
Stethoリンク
Flipperリンク

導入

まずはapp/build.gradleのdependenciesに追記するところから。

  dependencies { 
    implementation 'com.facebook.stetho:stetho:1.5.1'
    implementation 'com.facebook.stetho:stetho-okhttp3:1.5.1'
  } 

これで一回gradleビルドしておく。
成功したらApplicationクラスを継承したクラス(ここではAppクラスとしておく)のonCreate()でStethoの初期化を行う。

class App: Application {
  override onCreate() {
    super.onCreate()
    Stetho.initializeWithDefaults(this)
  }
}

あとは通信時にOkHttp3のClientのInterceptorにStethoのInterceptorを追加してあげれば準備OK。

OkHttpClient.Builder()
    .addNetworkInterceptor(StethoInterceptor())
    .build()

通信内容を見たい時はあらかじめChromeのDev Toolを起動しておいて対象端末のアプリのパッケージ名の下に表示されているInspectをクリックしてあげればOK。

おわりに

AndroidStudioのProfilerが使えれば便利なんですけどね。
そうもいかない時にはこういうライブラリを使うしかないですね。
もしAirWatch対応してても実機でAndroidStudioのProfilerが使える方法があれば教えてほしい。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1