在android开发app过程中,app依赖Google Play Service(如Android Google Map V2),因此需要在模拟器中安装Google Play Service。Google Play Service是包含在Google Market中,android模拟器 avd创建时候,默认是没有包含Google Play Service的,因为根据license说明,Google Play Service只能安装在手机设备中。
具体可以参考这个讨论里面的说明《Google Play on Android 4.0 emulator》,这个文章里面有说明,如何安装Google Play Service在android模拟器中,但是我按照这个操作,失败了。
最后我还参考了这个文章,然后注意了操作细节,最后成功了。现在分享给大家。但是这个方法不是官方的,因为Google官方也不支持这种方式,所以不同的环境可能会失败。我的环境是Mac OSX 10.7,android api level 15。
先看效果图:
操作步骤
首先,下载Google Play Service的apk文件
需要3个apk文件:GoogleServicesFramework.apk,GoogleLoginService.apk,Vending.apk。
这些apk文件可以从这里下载:http://wiki.cyanogenmod.org/wiki/Latest_Version/Google_Apps,但是最新的版本里面没有Vending.apk这个文件,所以我下载了两个包:20110828(用里面的Vending.apk文件)和20121212(用里面的其他两个文件)。
下载解压,在system/app里面就可以找到这些app。
其次,启动模拟器,安装apk文件
1)启动模拟器,avd4.0.3是我的模拟器的名字,要替换为自己的avd名字。-partition-size不能小于300M,否则可能会报out of memory或空间不足的错误。
emulator -avd avd4.0.3 -partition-size 300 -no-audio -no-boot-anim
2)重新mount 模拟器的/system文件系统为可读写,并将 /system/app 权限设置为777
adb shell
#mount -o remount,rw -t yaffs2 /dev/block/mtdblock0 /system
# mount
rootfs / rootfs ro 0 0
tmpfs /dev tmpfs rw,nosuid,mode=755 0 0
devpts /dev/pts devpts rw,mode=600 0 0
proc /proc proc rw 0 0
sysfs /sys sysfs rw 0 0
tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0
tmpfs /mnt/obb tmpfs rw,mode=755,gid=1000 0 0
/dev/block/mtdblock0 /system yaffs2 rw 0 0
/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0
/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0
/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020, codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702, allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro 0 0
tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0
3)安装apk。注意后面的 /system/app/. 最后的点不能漏了
adb push GoogleLoginService.apk /system/app/.
adb push GoogleServicesFramework.apk /system/app/.
adb push Vending.apk /system/app/.
4)将模拟器的 /system 文件系统还原为只读。这时候在模拟器中就可以看到market的app了
adb shell
#mount -o remount,ro -t yaffs2 /dev/block/mtdblock0 /system
再次,在模拟器中配置Google帐号,与在android手机上配置方法一样
最后,启动market。
要注意的是,安装的apk不能持久化,每次启动模拟器,都要重新安装一次。
本文链接:http://www.yunweipai.com/2480.html
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/53184.html