Skip to content
プロジェクト

kiruto/debug-bottle has 844 GitHub stars and 87 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 13:35 UTC. Last push 2018-03-15.

この数値の測り方

できること

  • Simple OkHttp Sniffer
  • 3D preview an Activity with Scalpel
  • Simple shared preferences editor
  • Open strict mode any time

計測したスター増加

24時間
0
7日間
履歴を収集中
15日間
履歴を収集中
1か月
履歴を収集中

期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。

概要

🍼Debug Bottle is an Android runtime debug / develop tools written using kotlin language.

開発ツール

README-JP.md

オリジナル
build:created version:maven-central

🇨🇳 中文 / 🇯🇵日本語 / 🇬🇧 English

🍼デバッグボットル

アンドロイド Java / Kotlin 開発者ツール

DEMOは今Google Playでダウンロードできます:

Get it on Google Play

実装されている機能

アプリのネットワークトラフィックを記録

この機能は、デバッグボットルがHTTPリクエストとリスポンスをログファイルに書き込む。記録されたログファイルはいつでも見えます。

アクティビティを3D化する

View のデバッグ用途として、画面をグリグリすると 3DCG みたいに View のヒエラルキーを見ることができるようになるツールです。

SharedPreferencesを編集する

アプリが使ってるすべてのSharedPreferencesをランタイム時に編集する。

Strictモードで開発

StrictModeはアプリケーションの動作をもっさりさせる原因となる、 ディスクやネットワークへのアクセスを検知するための仕組みです。使う方とかをオフィシャルサイトで見えます。

クラッシュログ

アプリがクラッシュするとログが保存され、デバッグボトルからログを取得して解析することができます。

Leak Canaryを使用する

Squareのメモリリークを検出するライブラリ Leak Canary を通じて、メモリリークを調査できます。デバッグボトルはすでにLeak Canaryを含んでいるから、その機能は使えます。もっと詳しくはこちらで。

UIフリーズを排除する

一旦UIフリーズが発生となると、デバッグボトルはノティファイで通知して、同じ時にログファイルを作成します。開発者はログファイルで、フリーズの原因を知り、排除するのは可能となります。

アクティビティをいつでも起動する

デバッグボトルはシンプルなエントリーを提供し、アクティビティやRunnableはそのエントリーを通じて起動できます。エントリーは3つあります:

  • すべてのアクティビティエントリー
  • カストマイズインテントエントリー
  • カストマイズRunnableエントリー

構築するには

1. Gradleプロジェクトファイルを構成する

まずはスナップショットリポジトリを配置します。

allprojects {
    repositories {
        ...
        mavenCentral()
    }
}

アプリのプライマリモジュールによるGradleファイルに依頼環境を導入します。

dependencies {
    debugCompile 'com.exyui.android:debug-bottle-runtime:1.1.1'

    // Javaの場合はこうして構築します
    releaseCompile 'com.exyui.android:debug-bottle-noop-java:1.1.1'
    testCompile 'com.exyui.android:debug-bottle-noop-java:1.1.1'

    // Kotlinの場合はこうして構築します
    releaseCompile 'com.exyui.android:debug-bottle-noop-kotlin:1.1.1'
    testCompile 'com.exyui.android:debug-bottle-noop-kotlin:1.1.1'

    compile 'com.android.support:appcompat-v7:23.2.0+'
}

Specially, Debug Bottle not only support API 23+, but also 22. To support API 22, please add dependencies like this:

dependencies {
    debugCompile 'com.exyui.android:debug-bottle-runtime:1.0.6-support22'

    // Javaの場合はこうして構築します
    releaseCompile 'com.exyui.android:debug-bottle-noop-java:1.0.6-support22'
    testCompile 'com.exyui.android:debug-bottle-noop-java:1.0.6-support22'

    // Kotlinの場合はこうして構築します
    releaseCompile 'com.exyui.android:debug-bottle-noop-kotlin:1.0.6-support22'
    testCompile 'com.exyui.android:debug-bottle-noop-kotlin:1.0.6-support22'

    compile 'com.android.support:appcompat-v7:22+'
}

To support API 23, add dependencies like this:

dependencies {
    debugCompile 'com.exyui.android:debug-bottle-runtime:1.0.6-support23'

    // Javaの場合はこうして構築します
    releaseCompile 'com.exyui.android:debug-bottle-noop-java:1.0.6-support23'
    testCompile 'com.exyui.android:debug-bottle-noop-java:1.0.6-support23'

    // Kotlinの場合はこうして構築します
    releaseCompile 'com.exyui.android:debug-bottle-noop-kotlin:1.0.6-support23'
    testCompile 'com.exyui.android:debug-bottle-noop-kotlin:1.0.6-support23'

    compile 'com.android.support:appcompat-v7:23+'
}

2. Manifestに加入

Manifestにデバッグボトルのプライマリアクティビティを加入します。

<activity
    android:name="com.exyui.android.debugbottle.components.DTDrawerActivity"
    android:theme="@style/Theme.AppCompat.Light"
    android:label="ほげほげツール"/>

「ほげほげツール」はこのツールの名前、欲しいネームを付けてよろしい、ただし空きでは行けません。

3. Applicationにデバッグボトルを注入

まずは「BlockCanaryContext」を実装します。

public class AppBlockCanaryContext extends BlockCanaryContext {...}

そしてデバッグボトルをApplicationに注入します。

public class MyApplication extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        DTInstaller.install(this)
            .setBlockCanary(new AppBlockCanaryContext(this))
            .setOkHttpClient(httpClient)
            .setInjector("your.package.injector.ContentInjector")
            .setPackageName("your.package")
            .enable()
            .run();
    }
}

Kotlinを使ってる場合は、以下の方法で注入します。

class MyApplication: Application() {
    override fun onCreate() {
        super.onCreate()
        DTInstaller.install(this)
            .setBlockCanary(AppBlockCanaryContext(this))
            .setOkHttpClient(httpClient)
            .setInjector("your.package.injector.ContentInjector")
            .setPackageName("your.package")
            .enable()
            .run()
    }
}

リンク先

License

Debug Bottle

Copyright 2016 Yuriel (http://exyui.com).

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Debug Bottle required features are based on or derives from projects below: