LoginSignup
5
5

More than 5 years have passed since last update.

きっかけ

もともとAndroid端末内のSQLiteの中身を覗きたかった。
あなたとAndroid 今すぐダウンロード!? Android開発で変わる SIerのJava技術事情について
で、TelnetSqlite と RdbAssistantを知ったけど、面倒で手を付けて無かった。

そんなときに、Stethoを知った。
StethoでAndroidのNetwork Performanceを見る - Qiita 読んで、使ってみようと思った。

ハマった

Chrome DevToolsってどうやって起動するんだ?

アドレス欄に chrome://inspect/#devices を入力したらいけました。
ドキュメントはちゃんと読みましょう。。

inspectってリンクが表示されない

Chrome DevToolsは起動したけど、パッケージ名だけでinspectってリンクが表示されてない。

ネットワークアクセスをほとんどしないアプリを作っていて、enableWebKitInspectorは要らないと思ってた。
enableWebKitInspectorつけて、再度インストールしたら表示された。
とりあえずつけとくべきっぽい。

releaseビルドに含まれないようにする

実際の差分はこちら

debugにのみユーティリティクラスを作る

至って普通。

StethoUtil.java
package hm.orz.chaos114.android.carnavimodoki.util;

import android.content.Context;

import com.facebook.stetho.Stetho;

public class StethoUtil {

    public static void initStetho(Context applicationContext) {
        Stetho.initialize(
                Stetho.newInitializerBuilder(applicationContext)
                        .enableDumpapp(Stetho.defaultDumperPluginsProvider(applicationContext))
                        .enableWebKitInspector(Stetho.defaultInspectorModulesProvider(applicationContext))
                        .build());
    }
}

Applicationクラスの修正

下記、抜粋したコードです。
リフレクションによりStethoUtilのメソッドを呼び出すことで、import文にも現れず、
クラスが存在する場合のみ実行されます。

App.java
public class App extends android.app.Application {
    @Override
    public void onCreate() {
        super.onCreate();

        initStetho();
    }

    private void initStetho() {
        try {
            // debugビルドの場合のみ成功
            Class<?> clazz = Class.forName("hm.orz.chaos114.android.carnavimodoki.util.StethoUtil");
            clazz.getMethod("initStetho", Context.class).invoke(null, this);
        } catch (Exception e) {
            // ignore
        }
    }
}

こんなんでいいのかなぁ。。
proguardは設定が必要ですね。

雑感

思ってた以上に、導入は簡単でした。
releaseに影響しないようにも出来たと思うし。
SQLiteの中身も、簡単に覗けたし。

ネットワーク使うようなものであれば、OkHttpClientのFactoryクラス作る感じでしょうか?
使うことがあれば、またやってみようと思います。

5
5
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
5
5