モバイル開発

ADBコマンド端末に渡す前に引数を確認

操作を選び、必要な値を入力して、命令とその影響を確認します。

ADBコマンド

操作の引数

コマンドのプレビュー

adb devices -l

macOS、Linux、WSLのPOSIX sh向けです。パスは文字どおりに扱い、変数や~を展開しません。

入力はブラウザー内で処理します。端末への接続やコマンドの実行は行いません。

オプション

端末一覧では対象指定を無視します。他の操作は-d、-e、-sを使い、既定ではADBに選択を任せます。

プレビューは最新です。

ADBコマンドを毎回手入力すると、複数端末の選択やパスの引用で間違えやすくなります。このページでは操作に必要な欄だけを表示し、端末のシリアル番号と各引数を分けて指定できます。

表示されるのは端末へ渡すためのテキストです。APKのインストールやファイル転送が完了したという意味ではありません。実機の状態やアクセス権限は、実際の端末環境で確認してください。

ADBコマンドを組み立てる理由

二つのシェルでパスを保護

ADBコマンドのローカル引数と、端末のシェルが読む引数を別々に引用します。ファイル名の空白や単一引用符が、別の引数や命令の区切りに変わるのを防ぎます。

パスの断片が二重の引用境界を通って一つの命令になる図。

構文と操作の影響を分けて確認

ログからデータ消去へ切り替えると、警告もすぐに切り替わります。インストール、ファイルの上書き、再起動の影響を個別に表示するため、有効な構文を安全性の保証と取り違えずに確認できます。

ログを読むカードと削除するカードに異なる読み取り記号と警告を表示した図。

コピー前の三つの確認

01

一覧は特定端末に限定されない

端末一覧はサーバー全体が対象です。他の操作では既定、USB、エミュレーター、シリアル番号を選べます。複数台がある場合は番号を指定し、サンプルの番号が実在するとは考えないでください。

02

保存先の所属を区別する

APKはパソコンのパスです。スクリーンショットはまず端末の.pngへ保存し、それからローカルへ取得します。入力欄にはパス自体を記入し、独自のシェル引用符は付けないでください。

03

編集後は新しい結果を使う

自動作成は350ミリ秒待って更新します。オフにするとCtrl/Cmd+Enterでも作成できます。サンプルとクリアは変更項目を先に表示し、適用後は入力と結果を一度だけ戻せます。

操作ごとの入力と出力

アプリを追加・削除する

インストールにはAPKのローカルパスを指定し、必要に応じて-rや-tを選びます。アンインストールにはAPK名ではなくアプリIDを使います。-kはデータを残す指定で、アプリ本体は削除されます。

タグと優先度でログを絞る

logcatのフィルタは一つのタグと最低優先度を組み合わせます。タグを指定すると*:Sで他のタグを抑制します。既定は蓄積済みログを読んで終了し、継続出力は明示的に選びます。

画面保存とファイル転送

screencapとpullを&&でつなぎ、画面の保存が成功した場合だけ取得します。pullとpushを単独で作成する場合も、転送元と転送先の順序を固定して表示します。

保守操作の対象を明示

データ消去ではAndroidユーザーを指定します。再起動は通常モードだけです。コピーと保存には現在の命令だけが含まれ、非表示の入力履歴や架空の端末応答は含まれません。

対応する構文と制限

接続と実行は範囲外
WebUSB、Wi-Fiペアリング、ネットワーク要求、命令の実行は行いません。接続、認証、成功の確認は実際のターミナルで行います。
POSIX shに限定
macOS、Linux、WSLの対応シェル向けです。Windows CMDやPowerShell用の構文ではありません。shellを使う操作ではホストと端末の二段階で引数を引用します。
パスは文字どおり
上限は4096 UTF-16単位です。制御文字と双方向制御文字を拒否し、端末パスは絶対パスに限定します。先頭がハイフンのローカル名には./を付けます。変数やチルダの展開はありません。
キャッシュだけは消せない
pm clearは一つのアプリとユーザーの全データを消去します。一括削除、root、初期化、書き換え、権限回避、端末で実行済み操作の取り消しは用意していません。
ファイルの中身は検査しない
APKのアップロード、分割APK、署名検査、存在確認、上書き検知には対応しません。端末に保存したPNGは残ります。実際の権限やAndroidのバージョンで失敗する場合があります。
自由な命令や録画は対象外
任意のshell、追加フラグ、パイプ、ポート転送、録画、パッケージやPIDの自動検索はできません。ログタグはASCIIの限定された文字を使い、ログバッファの消去も対象外です。

ADBコマンドのよくある質問

接続した複数の端末のうち、1台にだけAPKをインストールするには?

adb devices -lで番号を確認し、対象をシリアル番号にして入力します。-sでその端末を指定できます。-dと-eはそれぞれUSB端末とエミュレーター向けですが、候補が複数なら曖昧さは残ります。

ADBで画面をキャプチャするには?

画面保存と取得を選び、端末の絶対.pngパスとローカル保存先を指定します。screencapが成功した後にpullが動く構文です。両方の保存先に同名ファイルがあれば上書きされる可能性があります。

adb shellでは2つのシェルを通るのでしょうか?

はい。最初にホストのシェル、次に端末のシェルが解析します。最初の引用符はAndroidへ届く前に外れるため、ここではそれぞれの境界に必要な引用を付けています。

logcatの出力をタグ名で絞り込むには?

完全なタグ名と最低優先度を指定します。例えばTag:Iと*:Sで、そのタグの情報以上だけを残します。タグを空欄にすると*:Iです。実際に読める内容は端末の権限やバッファにも左右されます。

ADBでキャッシュだけを消去できますか?

このツールのpm clearはキャッシュだけでなく、設定やセッションを含むアプリデータを消去します。必要なデータを残したい場合には使用しないでください。ユーザーも明示して対象を確認します。

空白を含むディレクトリからadb pullで取得するには?

空白を含めたパスをそのまま入力し、追加の引用符は付けません。pullのパスはホスト引数として保護します。画面保存ではさらに端末側の引用を使いますが、アクセスできるかどうかは検査できません。

端末の仕様と異なる結果ですか?

次の操作を確認する

ADBコマンドの対象、パス、操作の影響を一緒に確認しましょう。最新のプレビューをコピーし、対応するシェル環境で内容をもう一度確かめてください。