如何在Android marshmallow avd模拟器上安装Android Wear app?

pdr*_*dri 2 android-virtual-device android-emulator google-play android-6.0-marshmallow wear-os

在过去的几天里,我一直在努力让Android的应用程序在Android marshmallow(API 23)模拟器上运行.我想这样做的原因是,我可以将我的android(手机)模拟器与我的机器人模拟器配对,以便在jenkins上运行自动葫芦烟雾测试.我知道这是可能的(或至少以前已经可能),正如我发现的那样(kennethmascarenhas.wordpress.com/2014/08/19/developing-for-android-wear-with-emulators/),其中概述了配对两个模拟器在一起.

到目前为止我尝试过的:


(1)在运行Google API的marshmallow模拟器上安装Android Wear应用程序

模拟器配置:

  • 设备:Nexus 5
  • 目标:Android 6.0 - API级别23
  • CPU/ABI:Google API Intel Atom(x86)
  • 仿真器选项:使用主机GPU

启动模拟器:

emulator -avd <my_avd> -writable-system -no-boot-anim
Run Code Online (Sandbox Code Playgroud)

安装android wear app(从这里下载:www.apkmirror.com/apk/google-inc/android-wear/android-wear-1-5-0-2714488-gms-release/android-wear-1-5- 0-2714488-GMS-Android的APK下载/):

adb -s emulator-5554 install <path_to_downloaded_wear_apk>
Run Code Online (Sandbox Code Playgroud)

然而,打开磨损应用程序会产生一个对话框,指出:"在Play商店中更新您的Google应用程序.然后再次打开Android Wear."

这是我试图安装Google Play的兔子洞 - -

有趣的是,如果您使用"Google API"运行模拟器,则已捆绑以下Google Play应用:

  • Google Play服务 - 包:/system/priv-app/PrebuiltGmsCore/PrebuiltGmsCore.apk=com.google.android.gms versionName = 8.4.89(2428711-470)
  • Google客户经理 - 软件包:/system/priv-app/GoogleLoginService/GoogleLoginService.apk=com.google.android.gsf.login versionName = 6.0-2780065
  • Google服务框架 - 包:/system/priv-app/GoogleServicesFramework/GoogleServicesFramework.apk=com.google.android.gsf versionName = 6.0-2780065
  • Google Play商店 - 包:/system/app/LicenseChecker/LicenseChecker.apk=com.android.vending versionName = 1.8(不要认为这实际上是因为我在应用列表中看不到应用)

根据这篇博客文章(www.flinkd.org/2015/02/installing-google-play-on-the-android-emulator-api-21-lollipop/),可以安装谷歌游戏商店(以及所有顺其自然),或者至少它是在API 21上.

将模拟器设备分区重新安装为读写:

adb remount
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试将apks"推送"到模拟器时,例如:

adb push PrebuiltGmsCore.apk /system/priv-app
Run Code Online (Sandbox Code Playgroud)

我得到一个错误:

failed to copy 'PrebuiltGmsCore.apk' to '/system/priv-app/PrebuiltGmsCore.apk': Read-only file system
Run Code Online (Sandbox Code Playgroud)

此时,我决定尝试别的东西.


(2)在没有运行Google API的marshmallow模拟器上安装google play商店

模拟器配置:

  • 设备:Nexus 5
  • 目标:Android 6.0 - API级别23
  • CPU/ABI:Intel Atom(x86)
  • 仿真器选项:使用主机GPU

但同样,当我尝试将apks"推送"到设备上时,我得到了与以前一样的"只读文件系统"错误.

我甚至尝试像往常一样安装它们,例如:

adb install <path_to_apk>
Run Code Online (Sandbox Code Playgroud)

哪个有效,但似乎使用错误的权限将应用程序安装到错误的目录中.所以当我打开谷歌Play商店应用程序时,我得到一百万个错误,说谷歌游戏服务,框架和商店已经崩溃(logcat说"你需要MANAGE_USERS权限"为每个应用程序).


(3)我尝试过的其他事情

我没有运行'adb remount',而是尝试了:

adb shell
su
mount -o rw,remount /system/priv-app/
Run Code Online (Sandbox Code Playgroud)

但是当我试图"推送"apks时,我得到了相同的"只读文件系统"错误.

我也尝试过你的沼泽标准'chmod'或/ system/priv-app /,但同样,我得到'只读文件系统'错误.

哦,而且,在你问之前,是的,我正在运行'adb root'.


有没有人对我想要完成的事情有任何好运?请帮忙.

PS抱歉没有正确的链接.我还没有足够的堆栈信誉......

pdr*_*dri 6

好的,我设法自己搞清楚了 - 无需安装Google Play商店应用.

使用marshmallow模拟器(使用Google API),我尝试安装旧版Android安装应用程序(从这里下载http://www.apkmirror.com/?s=android+wear&post_type=app_release&searchtype=apk),直到我可以启动应用程序没有收到对话框提示我"在Play商店更新您的Google应用程序.然后再次打开Android Wear.".

对我有用的最新版本是:

Android Wear 1.4.0.2470307.gms(www.apkmirror.com/apk/google-inc/android-wear/android-wear-1-4-0-2470307-gms-release/android-wear-1-4-0- 2470307-GMS-Android的APK下载/)

事后来看,我可能应该首先尝试这种方法!

一旦我启动并运行了两个模拟器,我运行:

adb -s <phone_emulator_name> forward tcp:5601 tcp:5601
Run Code Online (Sandbox Code Playgroud)

看起来5601是一个专用的可穿戴设备端口(参见http://developer.android.com/training/wearables/apps/creating.html)

然后我启动了android Wear应用程序,并从左上角的选项旋转器和Huzzah中选择了"Emulator"!