Android のエミュレータがいつのまにか進化していて、AVD Manager も Android Studio に統合されています。コマンドラインでandroid avd
すると旧来のスタンドアロンな AVD Manager が見えますが、どちらもハードウェアの設定は簡素化されて、すべてのオプションが GUI 上でいじれるわけではなくなってしまいました。
という訳で、GUI で変更ができないオプションはどうやって変更するか、というのがこの記事のフォーカスです。
AVD の実体はどこにあるのか
Android Studio に統合された AVD Manager であれば、AVD の一覧のActions
のメニュー内に、Show on Disk
という項目があります。ここから直接 AVD の実体を見ることができます。
ファイルパスで言うと、~/.android/avd/<AVD Name>/
が AVD の中身になります。
AVD の設定を保存しているファイル
このディレクトリの中に、config.ini
というテキストファイルがあります。
中身はいたってシンプル、各行にプロパティ名と値の対が並んでいるだけです。
avd.ini.encoding=UTF-8
AvdId=Nexus_7_API_23
abi.type=x86_64
avd.ini.displayname=Nexus 7 API 23
disk.dataPartition.size=200M
hw.accelerometer=yes
hw.audioInput=yes
hw.battery=yes
hw.camera.back=none
hw.camera.front=none
hw.cpu.arch=x86_64
hw.dPad=no
hw.device.hash2=MD5:47dc70fd92541dd16c19f9efa3e9db62
hw.device.manufacturer=Google
hw.device.name=Nexus 7 2013
hw.gps=yes
hw.gpu.enabled=yes
hw.gpu.mode=auto
hw.gsmModem=no
hw.keyboard=yes
hw.lcd.density=320
hw.mainKeys=no
hw.ramSize=1536
hw.sdCard=yes
hw.sensors.orientation=yes
hw.sensors.proximity=no
hw.trackBall=no
image.sysdir.1=system-images/android-23/default/x86_64/
runtime.network.latency=none
runtime.network.speed=full
runtime.scalefactor=auto
sdcard.size=100M
skin.name=nexus_7_2013
skin.path=/Applications/Android Studio.app/Contents/plugins/android/lib/device-art-resources/nexus_7_2013
tag.display=Default
tag.id=default
vm.heapSize=64
各設定項目のプロパティ名及び取りうる値は公式のドキュメントにあります。これを見ながら、好みのものをゴリゴリと手で書くことで、GUI では設定できなかったものが設定できるようになります。