有时候想用Android emulator测试应用在低版本系统的支付功能是否正常,但是官方镜像却没有自带Google商店,自行安装又会遇到各种报错。
本文分享一种可行性方法,希望可以帮到需要的人。
环境:Windows系统,Android 6.0 Google API虚拟设备
- 新建设备,选择好对应的型号和系统镜像
- 以■■■身份(非常重要)打开powershell cd到Android Sdk模拟器目录并执行
.\emulator.exe -avd 设备的名字 -no-boot-anim -writable-system
- 等待模拟器启动,启动后保持powershell窗口不要关闭(关闭后模拟器也会关闭)
- 打开另一个powershell(可以不用■■■身份),依次执行
adb root
//成功显示:adbd is already running as root
adb remount
//成功显示:remount succeeded
adb shell mkdir /system/priv-app/Phonesky
//成功显示:没提示 /system/priv-app/为系统权限软件目录
- 下载一个x86 Android 6.0能安装的Google商店安装包重命名为Phonesky.apk(网上很多说要去opengapps下载,经测试apkmirror下载就行),依次执行
adb push 下载好的apk /system/priv-app/Phonesky
//成功显示:下载好的apk pushed, 0 skipped. 207.5 MB/s (64933768 bytes in 0.298s)
adb shell stop
//成功显示:没提示
adb shell start
//成功显示:没提示
- 等待重启
不足之处,目前只能通过第二步的命令行方式启动模拟器才能看到安装的Google商店,通过Device Manager直接启动是看不到的,暂时没有找到哪里可以配置可以让Device Manager启动时带上-writable-system参数。
所以写了一个可执行文件,运行直接命令行启动:
@echo off
:: 替换为你的Android SDK路径
set SDK_PATH=D:\Develop\Programs\Android\Sdk
:: 替换为你的虚拟设备名称
set AVD_NAME=device-23-api-test
:: 启动模拟器并携带参数
"%SDK_PATH%\emulator\emulator.exe" -avd %AVD_NAME% -no-boot-anim -writable-system
保存为start_emulator.bat,双击即可启动。