Google Maps APIのx86 system imageを作成する
仮想マシンアクセラレーションによるエミュレータの高速化でエミュレータの仮想マシンアクセラレーションによる高速化を紹介したがGoogle Maps API用のx86 system imageは配布されていないので、Google Maps APIを使用したい場合、自分でx86 system imageを作成する必要がある。
作成手順
- ベースとなるGoogle Maps APIのAVDを立ち上げる。ベースとするx86 system imageと同じAPIバージョンのものを立ち上げること。
- Google Maps APIのライブラリを抜き出す。
adb pull /system/etc/permissions/com.google.android.maps.xml adb pull /system/framework/com.google.android.maps.jar
- ベースとなるGoogle Maps APIのAVDを落とす。
- ベースとなるx86 system imageを使ったAVDを立ち上げる。立ち上げる際には
-partition-size 128
を指定するなどし、パーティションサイズを大きくしておかないと次のライブラリのコピー時にOut of memoryというエラーが発生し、失敗するので注意。 - Google Maps APIのライブラリをコピー。
adbremount rw adb push com.google.android.maps.xml /system/etc/permissions adb push com.google.android.maps.jar /system/framework
- Yaffs2 tool(system imageを作成するためのツール)をダウンロードする。http://jiggawatt.org/badc0de/android/ のYaffs2 tool: x86 Linux version からダウンロードできる。
- AVDからsystem imageを作成する。
adb push mkfs.yaffs2.x86 /data adb shell cd /data chmod 777 mkfs.yaffs2.x86 ./mkfs.yaffs2.x86 /system system.img exit
- 作成したsystem imageを抜き出す。なぜか非常に時間がかかる。
adb pull /data/system.img
- 作成したsystem imageをAVDのディレクトリにコピーする。
macの場合、~/.android/avd/
の下にある。
- エミュレータを再起動する。
参考
38911 bytes free: How to use Google Maps API in Android emulator SDK version 17http://38911bytes.blogspot.de/2012/03/how-to-use-google-maps-api-in-android.html