サーチ…


前書き

adb shellはターゲットデバイスまたはエミュレータでLinux adb shell開きます。これは、 adb経由でAndroidデバイスを制御する最も強力で多才な方法です。

このトピックはADB(Android Debug Bridge)から分割されていました。例の限界に達し、その多くにadb shellコマンドが含まれていました。

構文

  • adbシェル[-eエスケープ] [-n] [-Tt] [-x] [コマンド]

パラメーター

パラメータ詳細
-e エスケープ文字、または「なし」を選択します。デフォルト '〜'
-n スタンダードから読まない
-T PTY割り当てを無効にする
-t 強制PTY割り当て
-バツリモート終了コードとstdout / stderr分離を無効にする

ADBを介してテキスト、キー押下、タッチイベントをAndroidデバイスに送信

フォーカスがあるビューにテキストを挿入するには、次のコマンドを実行します(テキスト入力をサポートしている場合)

6.0

SDK 23でテキストを送信する+

adb shell "input keyboard text 'Paste text on Android Device'"

既にadb経由でデバイスに接続されている場合:

input text 'Paste text on Android Device'
6.0

SDK 23の前にテキストを送信する

adb shell "input keyboard text 'Paste%stext%son%sAndroid%sDevice'"

スペースは入力として受け入れられません。%sで置き換えてください。

イベントを送信する

ハードウェア電源キーを押すことをシミュレートするには

adb shell input keyevent 26

あるいは

adb shell input keyevent POWER

ハードウェアキーを持っていなくても、キーkeyeventを使用して同等の操作を実行できます

adb shell input keyevent CAMERA

タッチイベントを入力として送信する

adb shell input tap Xpoint Ypoint

スワイプイベントを入力として送信する

adb shell input swipe Xpoint1 Ypoint1 Xpoint2 Ypoint2 [DURATION*]

* DURATIONはオプションです(デフォルト= 300ms)。 ソース

開発者のオプションでポインタの位置を有効にすることでXとYのポイントを取得します。

ADBサンプルシェルスクリプト

Ubuntuでスクリプトを実行するには、script.shを作成して、そのファイルを右クリックして、読み書き権限を追加し、プログラムとして実行ファイルにチェックを入れます

ターミナルエミュレータを開き、コマンド./script.shを実行します。

Script.sh

 for (( c=1; c<=5; c++ ))
    do  
       adb shell input tap X Y
       echo "Clicked $c times"
       sleep 5s
    done

イベント番号の包括的な一覧については

パッケージを一覧表示する

パッケージ名に<FILTER>のテキストが含まれているものだけを、オプションですべてのパッケージを出力します。

adb shell pm list packages [options] <FILTER>

All <FILTER>

adb shell pm list packages

属性:

対応するファイルを表示するには-fを使用します。

-iパッケージのインストーラを参照してください。

-uには、アンインストールされたパッケージも含まれます。

-uアンインストールされたパッケージも含めます。

フィルタリングする属性:

無効なパッケージの場合は-d

有効なパッケージの場合は-eです。

システムパッケージの場合は-sです。

-3を使用します。

--user <USER_ID> :照会する特定のユーザー・スペース。

API 23+の権限の付与と取り消し

脆弱なアクセス許可の付与または取り消しに役立つ1つのライナー。

  • 付与

    adb shell pm grant <sample.package.id> android.permission.<PERMISSION_NAME>
    
  • 取り消す

    adb shell pm revoke <sample.package.id> android.permission.<PERMISSION_NAME>
    
  • インストール時に一度にすべての実行時アクセス許可を付与する(-g)

    adb install -g /path/to/sample_package.apk
    

アプリケーションデータを印刷する

このコマンドは、関連するすべてのアプリケーションデータを表示します。

  • バージョンコード
  • バージョン名
  • 付与されたアクセス許可(Android API 23以降)
  • 等..
adb shell dumpsys package <your.package.id>

ディスプレイの記録

4.4

Android 4.4(APIレベル19)以降を実行する端末のディスプレイの記録:

adb shell screenrecord [options] <filename>
adb shell screenrecord /sdcard/demo.mp4

(Ctrl + Cを押して録音を停止する)

デバイスからファイルをダウンロードする:

adb pull /sdcard/demo.mp4

注:Ctrl-Cを押して画面録画を停止します。そうしないと、録画は自動的に3分後に--time-limit 。タイムリミットは--time-limit設定され--time-limit

adb shell screenrecord --size <WIDTHxHEIGHT>

動画サイズを1280x720に設定します。デフォルト値は、デバイスのネイティブディスプレイ解像度(サポートされている場合)、1280x720でない場合です。最良の結果を得るには、お使いのデバイスのAVC(Advanced Video Coding)エンコーダでサポートされているサイズを使用してください。


adb shell screenrecord --bit-rate <RATE>

ビデオのビデオビットレートをメガビット/秒で設定します。デフォルト値は4Mbpsです。ビデオ品質を向上させるためにビットレートを上げることができますが、その結果、ムービーファイルが大きくなります。次の例では、記録ビットレートを5Mbpsに設定しています。

adb shell screenrecord --bit-rate 5000000 /sdcard/demo.mp4

adb shell screenrecord --time-limit <TIME>

最大録画時間を秒単位で設定します。デフォルト値と最大値は180(3分)です。


adb shell screenrecord --rotate

出力を90度回転します。この機能は実験的です。


adb shell screenrecord --verbose

コマンドライン画面にログ情報を表示します。このオプションを設定しないと、ユーティリティは実行中に情報を表示しません。

注:これは一部のデバイスでは機能しない場合があります。

4.4

スクリーンレコーディングコマンドは、4.4より前のアンドロイドバージョンと互換性がありません

screenrecordコマンドは、Android 4.4(APIレベル19)以上を実行するデバイスの表示を記録するシェルユーティリティです。このユーティリティは、画面アクティビティをMPEG-4ファイルに記録します。

chmodコマンドを使用してファイル許可を変更する

通知は、ファイルprmissionsを変更するためには、お使いのデバイスが根付いする必要があること、 suバイナリは、工場出荷時のデバイスが付属していません!

コンベンション:

adb shell su -c "chmod <numeric-permisson> <file>"

ユーザー、グループ、ワールドの各セクションから構成された数値アクセス許可。

たとえば、すべての人が読み取り可能、書き込み可能、​​および実行可能にするためにファイルを変更する場合は、これがあなたのコマンドになります。

adb shell su -c "chmod 777 <file-path>"

または

adb shell su -c "chmod 000 <file-path>"

あなたがそれへのアクセス権を拒否しようとするならば。

第1桁 - ユーザー許可を指定します。 第2桁 - グループ許可を指定します。 第3桁 - 世界(その他)のアクセス許可を指定します。

アクセス権:

--- :   binary value:   000,  octal value: 0 (none)
--x :   binary value:   001,  octal value: 1 (execute)
-w- :   binary value:   010,  octal value: 2 (write)
-wx :   binary value:   011,  octal value: 3 (write, execute)
r-- :   binary value:   100,  octal value: 4 (read)
r-x :   binary value:   101,  octal value: 5 (read, execute)
rw- :   binary value:   110,  octal value: 6 (read, write)
rwx :   binary value:   111,  octal value: 7 (read, write, execute)

adb経由で日付/時刻を設定する

6.0

デフォルトのSET形式はMMDDhhmm[[CC]YY][.ss] (それぞれ2桁です)

たとえば、現在の年を変更せずに7月17日10時10分を設定するには、次のように入力します。

adb shell 'date 07171010.00'

ヒント1:日付の変更は直ちに反映されず、システムクロックが次の分に進むと顕著な変更が行われます。
TIME_SET意図したブロードキャストをあなたの呼び出しに付けることによって、更新を強制することができます:

adb shell 'date 07171010.00 ; am broadcast -a android.intent.action.TIME_SET'

ヒント2: Androidの時計をローカルマシンと同期する:

Linux:

adb shell date `date +%m%d%H%M%G.%S`

Windows(PowerShell):

$currentDate = Get-Date -Format "MMddHHmmyyyy.ss" # Android's preferred format
adb shell "date $currentDate"

両方のヒントを一緒に:

adb shell 'date `date +%m%d%H%M%G.%S` ; am broadcast -a android.intent.action.TIME_SET'
6.0

デフォルトのSET形式は 'YYYYMMDD.HHmmss'

adb shell 'date -s 20160117.095930'

ヒント: Androidの時計をローカル(Linuxベース)のマシンと同期させるには:

adb shell date -s `date +%G%m%d.%H%M%S`

オープン開発者オプション

adb shell am start -n com.android.settings/.DevelopmentSettings

デバイス/エミュレータをDeveloper Optionsセクションに移動します。

「ブート完了」ブロードキャストの生成

これは、 BootListenerを実装するアプリケーションに関係します。あなたのアプリを殺すことによってあなたのアプリをテストし、次にテストする:

adb shell am broadcast -a android.intent.action.BOOT_COMPLETED -c android.intent.category.HOME -n your.app/your.app.BootListener

your.package/your.app.BootListenerを適切な値にyour.package/your.app.BootListenerてください)。

外部/セカンダリストレージコンテンツの表示

コンテンツを表示する:

adb shell ls \$EXTERNAL_STORAGE
adb shell ls \$SECONDARY_STORAGE

ビューパス:

adb shell echo \$EXTERNAL_STORAGE
adb shell echo \$SECONDARY_STORAGE

Androidデバイス内のプロセスを強制終了する

Androidのlogcatは、あなた自身が所有していないプロセスからのエラー、バッテリーの消耗、またはコードをデバッグするのを難しくするなど、無限に実行されていることがあります。

デバイスを再起動せずに問題を解決する便利な方法は、問題の原因となっているプロセスを特定して終了させることです。

Logcatから

03-10 11:41:40.010 1550-1627/? E/SomeProcess: ....

プロセス番号に気付く:1550

これで、シェルを開いてプロセスを終了できます。 rootプロセスを強制終了することはできません。

adb shell

シェルの内部では、プロセスの詳細を確認することができます

ps -x | grep 1550

私たちが望むならそれを殺す:

kill -9 1550


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow