ブラウザの対応を確認中…
ワイヤレスデバッグ(Wi-Fi 経由の adb)
端末の ADB デーモンを TCP ポート 5555 に切り替え、デスクトップのターミナル用の接続コマンドを表示します。両方の機器が同じネットワークにいる必要があり、この切り替えは端末を再起動すると失われます。
adb tcpip 5555このセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
スクリーンショット
端末自身の screencap で PNG を撮り、フル解像度のままケーブル越しに取り出します。DRM 保護されたコンテンツは黒くなります。コンポジタがそのフレームを誰にも渡さないためです。
screencap -pこのセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
文字入力とキー送信
端末でフォーカスがある場所に、adb と同じ input text で入力します。長いパスワード、URL、指で打ちたくないテスト用データに便利です。
input text 'hello world'
input keyevent 3このセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
ディープリンクのテスト
URL に対して VIEW インテントを投げ、受け取るアプリがあったか、どのアクティビティが起動したか、起動にかかった時間を読み取ります。クエリ文字列はそのまま届きます。& はシェルではなく端末に渡ります。
am start -W -a android.intent.action.VIEW -d 'myapp://open/item/42'このセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
画面サイズと密度の偽装(wm size)
端末に別の画面のふりをさせます。実機でレイアウトを別のブレークポイントで見る最も安い方法です。ブレークポイントが反応するのは dp(ピクセル × 160 ÷ dpi)なので、各プリセットは両方を設定します。
wm size 1080x2340
wm density 420
wm size reset
wm density resetこのセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
開発者向けスイッチ
端末の開発者オプションにあるスイッチを、6 つのメニューをたどらずに: アニメーション速度、タップ表示、ポインタ座標、アクティビティを保持しない、右から左のレイアウトの強制。
settings put global window_animation_scale 0.0
settings put system show_touches 1このセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
端末プロキシ(mitmproxy、Charles、Fiddler)
端末の HTTP スタックをあなたのマシン上のプロキシに向けます。通信キャプチャの手順書が必ず最初に説明する配線を 1 行にしたものです。解除はワンプレスで、この節の最初のボタンにしてあるのには理由があります。
settings put global http_proxy 10.0.0.5:8080
settings put global http_proxy :0このセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
システムプロパティ(getprop)
プロパティ表の全体(多くの端末で 1000 件超)を検索できます。この端末は何かに答える 15 件は上に固定表示。ここに入力した文字は端末に届きません。検索はこのタブ内で行われます。
getpropこのセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
デバッグ可能なアプリのデータベース
デバッグビルドのプライベートデータ領域にある SQLite ファイルを一覧し、root なしで取り出します。run-as の有用な半分です。shell はアプリのデータを読めませんが、アプリ自身の uid なら読めて、run-as は 1 コマンド分だけその uid を貸してくれます。
run-as com.example.app ls -l databases
run-as com.example.app cat 'databases/app.db'このセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
最近のクラッシュと ANR
うまくいかなかったことをためておくプラットフォーム自身のリングバッファ、DropBoxManager を読みます。アプリのクラッシュ、ANR、ネイティブクラッシュ、Log.wtf、カーネルの tombstone が時刻付きで入っています。
dumpsys dropbox
dumpsys dropbox --print data_app_crashこのセクションを使うには端末を接続してください。上のコマンドはどのシェルでも使えます。
画面録画
録画はここではなくミラーリングと同じページにあります。どちらも画面についての機能であり、screenrecord の実装は 2 つより 1 つのほうが安全だからです。プロセスはあらゆる経路で止めなければ、誰も見ていないままエンコードを続けます。
screenrecord --time-limit 180 --bit-rate 20000000 /sdcard/out.mp4ブラウザが ADB でできないこと
実装待ちの機能一覧ではありません。プラットフォームかブラウザのサンドボックスが不可能にしていることで、回避策を探し始める前に理由を知る価値があります。
- adb forward / adb reverse
ポート転送には TCP のリスナーが必要で、ウェブページはそれになれません。どのブラウザでもタブにサーバソケットはなく、これは設計上の話です。つまりあなたのマシンの localhost:8080 が向く先がありません。ここはデスクトップの adb の担当です。
- adb backup / adb restore
adb backup は Android 12 で非推奨になり、それより前から多くのアプリが allowBackup=false で対象外にしていました。現代の端末で作られるのはほぼ空のアーカイブです。本当に欲しいファイルを取り出すのはファイルブラウザの仕事です。
- fastboot
fastboot は別の USB インターフェース上の別のプロトコルで、Android ではなくブートローダーが話します。WebUSB で実装は可能ですが ADB のコードは何も流用できないため、ここのチェックボックスではなく独立したツールの領分です。
- input text (non-ASCII)
input text が出せるのは仮想キーボードのキーマップにある文字、つまり印字可能な ASCII だけです。これはプラットフォームのコマンドの制約で、デスクトップの adb でも日本語は打てません。
- adb root / su
adb root は eng または userdebug ビルドでしか動かず、su は root 化された端末にしかありません。このページのすべてはどちらも不要な前提で作られており、だからこそ一部は丁寧に拒否します。
ここにあるそれ以外はすべて、市販の端末で USB デバッグを有効にしただけの状態で、通常の ADB シェル越しに動きます。インストールするものはありません。