35
33

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.

Androidで複数端末がPCに繋がっていてもラクにadbを実行する方法

Posted at

実機やエミュレータを複数繋いだ状態で、adb installadb shellなどを実行したいことがあると思います。
これを簡単に実現する方法です。

方法

結論からいうと、簡単なツールを使って実現します。
adbsという小さなツールを作りました。
adbs

※drone.ioのバッジがキャッシュされているようで、赤く表示されているかもしれませんが、ちゃんと動きます。

元々シェルスクリプトで2年前位に作り、個人的に使っていましたが、golangで書き直しWindowsでも動くようにしました。

使い方

上記から最新バイナリをダウンロードし、PATHの通った場所に配置します。
もしくは、golangが使える環境なら下記でもOKです。

$ go get github.com/ksoichiro/adbs

あとは、ターミナルやコマンドプロンプトからadbのかわりにadbsを使うだけです。
複数端末が繋がっていれば、候補から選ぶように尋ねてきます。

$ adbs shell
[1] 304D19E0D41F543F
[2] 275501700028393
Device to execute command: 1
Specified: 304D19E0D41F543F
shell@android:/ $

シリアル番号の先頭の何文字かが分かっていれば、以下のようにパラメータで指定すると前方一致でマッチする端末を選んでくれます。

$ adbs -s 3 shell

端末が一つしかない場合は、普通のadbと同じように動きます。

そもそもの問題

adbでは、複数端末が接続されていると対象端末が決定できないためにエラーを出してしまいます。

$ adb shell
error: more than one device and emulator

これを回避するには対象端末のシリアル番号を調べ

$ adb devices
List of devices attached
304D19E0D41F543F  device
275501700028393   device

表示されたシリアル番号をコピーしておいた上で、以下のように実行する必要があります。

$ adb -s 304D19E0D41F543F shell

一度や二度なら良いですが、APIレベルやdpiによるリソースの使い分けを調整するために何度も複数端末へインストールを繰り返したりしていると、さすがに面倒です。
これがきっかけでした。

・・・というわけで、gradleなど開発環境周りが色々充実してきた今、こういう作業をする人がいるかは分かりませんが、誰かのお役に立てば幸いです。

35
33
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
35
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?