使用较低版本API的Intel镜像模拟器支持Google API

由于使用Google Arm system image模拟器时启动速度比较慢,不利于测试,原因大致是因为虚拟Arm底层造成的。替代方法可以使用速度较快的Genymotion模拟器,但是Genymotion是付费软件,而免费版本有使用限制。所以考虑加速Google模拟器。Google x86 system image 模拟器提供HAXM加速方法,对模拟器进行加速。但是较早版本API使用x86 system image的模拟器不支持Google API,以致于不能使用地图定位等功能,如小于Android 4.4.2-API Level 19的版本。所以需要从含有Google 的地图 API的模拟器抽取API,然后放进没有Google API的模拟器。这里以API Level 18--Android 4.3为例,使用adb将配置为Arm API Level 18的模拟器抽取Google 地图API,放进配置为Intel(Atom)x86 Android4.3的模拟器。

操作步骤

1 分别创建模拟器配置为 Arm API Level 18 和 Intel(Atom)x86 Android4.3的模拟器。

2 emulator -avd name_of_avd 启动含有GoogleAPI的模拟器

3 adb pull /system/etc/permissions/com.google.android.maps.xml 抽取所需要的文件

4 adb pull /system/framework/com.google.android.maps.jar

5 关闭第一个模拟器

6 emulator -avd name_of_avd 启动没有GoogleAPI的模拟器

7 adb remount rw 调整权限,使具有写权限

8 adb push com.google.android.maps.xml /system/etc/permissions 将相应文件放进目标模拟器

9 adb push com.google.android.maps.jar /system/framework

10 adb push mkfs.yaffs2.x86 /data 将工具放进目标模拟器

11 adb shell

12 cd /data

13chmod 777 mkfs.yaffs2.x86

14 ./mkfs.yaffs2.x86 /system system.img 使用工具格式镜像

15 exit 退出shell

16 adb pull /data/system.img 将镜像拷出,需要花费较长时间,我测试时的文件大概有三百M

17 拷贝system.img 到存放目标模拟器的目录下,如: .android/avd/targetemulator.avd

18 重启目标模拟器

参照:

http://stackoverflow.com/questions/9857325/google-maps-sdk-with-new-intel-atom-x86-emulator

http://38911bytes.blogspot.de/2012/03/how-to-use-google-maps-api-in-android.html

http://code.google.com/p/android-group-korea/downloads/detail?name=mkfs.yaffs2.x86

http://www.developer.com/ws/android/development-tools/haxm-speeds-up-the-android-emulator.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值