のーずいだんぷ

主に自分用メモですが、もしかしたら誰かの役に立つかもしれません

Androidのエミュレータをコマンドラインから起動する

はじめに

androidのエミュレータは本来Android Studioのメニューバー>[Tools]>[AVD Manager]を選択して起動するものだが、実際はSDKの中に実行ファイルがあるのでそれを直接動かせば起動できる。 ただし、環境変数周りで若干引っかかったので(結論は簡単だが)まとめておく。

なお、環境はmacを想定するが、本質的にやることはwindowsも同じはずなので適切なパスを設定すればうまくいくはず。

結論なにをするか。

~/.bash_profileに以下を追記するだけ。

ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME:$ANDROID_HOME/emulator:$ANDROID_HOME/tools/:$ANDROID_HOME/platform-tools

上記の注意として、パスへの追加順には若干注意が必要。 $ANDROID_HOME/emulator$ANDROID_HOME/tools/ の前に追加して探索優先度を上げる必要がある。 上記そのままコピペすれば問題はないが、逆にすると/tools/emulatorの方が使用されてエラーPANIC: Missing emulator engine program for 'x86' CPU.が出る可能性がある。

その後ターミナル起動 or source ~/.bash_profileをして設定を適用させれば以下のようにして実行が可能になる。

$ emulator -list-avds
avd1
$ emulator @avd1
// ...emulatorが別ウィンドウで起動する。

もし、上記のemulator -list-avdsで何も応答がない場合、エミュレータに使うデバイスイメージ(Android Virtual Device)が存在しない可能性がある。(初めての人は絶対に存在しない) その場合は、一度何でもいいのでAndroid Studioを立ち上げてからAVD Managerを起動して、まずavdを作成しなければいけない。

補足

上記で、環境変数ではなく$ANDROID_HOME/emulator/emulatorのシンボリックリンクを/usr/local/bin/emulatorとかに作成すればいいのでは?と考える場合があると思う。 私もそれを試したが、なぜかうまく行かなかった。原因はわからないがその場合avdが見つからなくなる。 一応環境変数にANDROID_AVD_ROOTとかそれっぽいのがあるが、これを設定しても自分の場合はうまく行かなかった。 そういった、試行錯誤のうえ上記にたどり着いたので、素直に上記でやることをおすすめしたい。 (何らかの環境による差異が影響している可能性もあるけれど…)

参考

developer.android.com

stackoverflow.com

developer.android.com