🇨🇳 中文 / 🇯🇵日本語 / 🇬🇧 English
アンドロイド Java / Kotlin 開発者ツール
DEMOは今Google Playでダウンロードできます:
- 便利なHTTPスニファ
- 実装されるアクティビティはいつでも3D化できます
- SharedPreferencesをランタイム時に簡単的に編集できます
- ランタイム時にStrictモードをオン・オブにするのを可能とさせてます
- アプリがクラッシュするとログが保存されます
- 早くメモリリークを発見できて、そして回避できます
- UIスレッドのフリーズを起こすコードを見つけます
- いずれのアクティビティを簡単にアクセスできます
この機能は、デバッグボットルがHTTPリクエストとリスポンスをログファイルに書き込む。記録されたログファイルはいつでも見えます。
View のデバッグ用途として、画面をグリグリすると 3DCG みたいに View のヒエラルキーを見ることができるようになるツールです。
アプリが使ってるすべてのSharedPreferencesをランタイム時に編集する。
StrictModeはアプリケーションの動作をもっさりさせる原因となる、 ディスクやネットワークへのアクセスを検知するための仕組みです。使う方とかをオフィシャルサイトで見えます。
アプリがクラッシュするとログが保存され、デバッグボトルからログを取得して解析することができます。
Squareのメモリリークを検出するライブラリ Leak Canary を通じて、メモリリークを調査できます。デバッグボトルはすでにLeak Canaryを含んでいるから、その機能は使えます。もっと詳しくはこちらで。
一旦UIフリーズが発生となると、デバッグボトルはノティファイで通知して、同じ時にログファイルを作成します。開発者はログファイルで、フリーズの原因を知り、排除するのは可能となります。
デバッグボトルはシンプルなエントリーを提供し、アクティビティやRunnableはそのエントリーを通じて起動できます。エントリーは3つあります:
- すべてのアクティビティエントリー
- カストマイズインテントエントリー
- カストマイズRunnableエントリー
まずはスナップショットリポジトリを配置します。
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+'
}
Manifestにデバッグボトルのプライマリアクティビティを加入します。
<activity
android:name="com.exyui.android.debugbottle.components.DTDrawerActivity"
android:theme="@style/Theme.AppCompat.Light"
android:label="ほげほげツール"/>
「ほげほげツール」はこのツールの名前、欲しいネームを付けてよろしい、ただし空きでは行けません。
まずは「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()
}
}
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:
- Apache License 2.0