21
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

and factoryAdvent Calendar 2019

Day 10

adbコマンドで端末を操作する

Last updated at Posted at 2019-12-09

adbコマンドとは

android開発者にはお馴染みですが、それ以外の人にとってはあまり知名度が高くないかもしれません。

Android Debug Bridge(adb)は、デバイスと通信するための多用途コマンドライン ツールです。adb コマンドを使用すると、アプリのインストールやデバッグなど、さまざまなデバイス操作を実行できます。また、デバイス上でさまざまなコマンドを実行する際に使用する Unix シェルにアクセスできるようになります。
---------- androidstudioユーザーガイドより

ざっくりいうとPCからAndroid端末に直接コマンドを送って色々出来ます。
尚、開発者オプションからUSBデバッグを有効にしておく必要があります。

端末を操作するコマンド

テキスト入力

adb shell input text hogehogehoge

端末でキーボードが表示されている状態で入力すると選択欄にhogehogehogeで指定した箇所を入力できます。
長い文字列を手入力したくない時や、複数の端末で同じ文字を入れる必要があるときに便利。
尚、デバイスのキー入力設定でそのまま入力されてしまうので注意が必要です。

同時に複数端末を接続している場合はこのままだとエラーが出るので、

adb -s device_id shell input text hogehogehoge

のような感じで端末を指定することで実行可能です。
device_idについてはadb devicesコマンドで調べてください

設定画面の呼び出し

adbコマンドではアプリの起動も可能なため、コマンドで設定アプリを呼び出すことも可能です

adb shell am start -a android.settings.SETTINGS

SETTINGSの箇所はWIFI_SETTINGSDISPLAY_SETTINGSなどに変更することで各設定画面を直接呼び出すことも可能です。
設定できるパラメータについてはこちらを参照

ディスプレイを操作する

ディスプレイのタップ、スワイプなどもadbから可能です

adb shell input touchscreen tap X Y
adb shell input swipe X1 Y1 X2 Y2

座標については左上が(0, 0)で右方向、下方向に対して値が増えていきます

組み合わせると・・・?

アニメーションや画面遷移の時間を考慮して適度にsleepの処理を追加したスクリプトを組んでやれば設定の自動化とかできたり。
adb devicesで取ってきたdevice_idをいい感じにしてやれば複数端末のまとめて設定もできますね。

おわりに

開発の場面ではよく(?)利用するadbコマンドですが、調べてみると想像以上に様々なことができたりします。
限られた場面ではありますが、有益なものも多いので継続して色々まとめていきたいところです。

21
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?