【问题标题】:Automated Installation of an .apk from the Google Play Store从 Google Play 商店自动安装 .apk
【发布时间】:2019-04-08 23:29:29
【问题描述】:

我正在使用 Python 和我自己的 ADB-Protocol 实现编写一些对 Android-TV-App 的端到端测试。到目前为止,这工作正常,我可以发送命令,获取 ui-dumps 等。

但是,由于该应用程序仅在 Google Play 商店中可用(我无权访问任何源代码)并且我想每周更新该应用程序的版本,我想知道如何才能做到这一点使用亚行。

我想过以下解决方案:

  1. 发送关键事件以在设备上打开 Play 商店并导航到应用的安装/更新页面。
  2. 以某种方式将应用下载到 Testmachine 并通过 ADB 将其推送到设备。
  3. 使用 ADB 直接在设备上安装新版本的应用。

这方面的“最佳实践”是什么?我应该如何解决我的问题?

【问题讨论】:

  • 嘿,你找到答案了吗?根据我的回答,您遇到的任何问题。
  • 嗨@royatirek,感谢您的回答,但这最初不是我一直在寻找的,因为我已经在第1点中描述了这是一个选项,但对我来说似乎不是最佳选择.
  • 您需要一个小代码还是需要几秒钟的代码来更新您的应用程序?或者您想在不同屏幕分辨率的不同机器上进行测试?
  • 是的,我想在没有任何屏幕连接到盒子的情况下这样做

标签: android testing apk adb android-tv


【解决方案1】:

我会这样做。
1.首先在playstore打开应用页面

adb shell am start -a android.intent.action.VIEW -d 'market://details?id=com.yourpackagename'

2.然后点击安装/更新按钮。

adb shell input tap <x> <y> (Default: touchscreen)

【讨论】:

  • 是的,它是输入点击。已编辑。
【解决方案2】:

使用本地下载 APK Google Play Downloader via Command line 并用 adb 安装。

$ gplaycli -s 'App Inspector'
Title                                           Creator            Size      Downloads                 Last Update  AppID                        Version   Rating  
App Inspector                                   Projectoria        895.04KB  100,000+ downloads        14 Jul 2019  bg.projectoria.appinspector  8         4.53    
...
$ gplaycli -d bg.projectoria.appinspector
$ adb install bg.projectoria.appinspector.apk 
Performing Streamed Install
Success

【讨论】:

  • 这个比发送敲击命令我更喜欢
【解决方案3】:

答案在一部手机上对我有用,没有问题。

adb shell am start -a android.intent.action.VIEW -d 'market://details?id=com.yourpackagename'

但在其他手机上它无法正常工作,引发错误。 您可以通过从命令中删除单引号 (') 来修复该错误(明天将使用确切的错误进行编辑):

adb shell am start -a android.intent.action.VIEW -d market://details?id=com.yourpackagename

【讨论】: