从Google Play商店自动安装.apk文件

8
我正在使用Python和自己实现的ADB协议编写一些Android-TV-App的端到端测试。到目前为止,这个方法运行得很好,我可以发送命令,获取UI dump等。
然而,由于该应用程序仅在Google Play商店上提供(我无法访问任何源代码),我想每周更新应用程序的版本,所以我想知道如何使用ADB来实现这一点。
我考虑了以下解决方案:
1. 发送键盘事件打开设备上的Play 商店,并导航到应用程序的安装/更新页面。 2. 在测试机上以某种方式下载应用程序,并通过ADB将其推送到设备。 3. 使用ADB直接在设备上安装新版本的应用程序。
哪种方法是最佳实践,我应该如何解决我的问题?

嘿,你找到答案了吗?根据我的回答,你面临任何问题吗? - royatirek
嗨@royatirek,感谢您的回答,但这并不是我最初寻找的内容,因为我已经在第一点中描述了这个选项,但似乎对我来说并不是最佳选择。 - Tobias von Falkenhayn
你需要一个小代码或者只需要几秒钟就能更新你的应用程序的代码吗?或者你想在不同分辨率的不同机器上进行测试吗? - royatirek
是的,我实际上想要做到这一点,而不需要将任何屏幕连接到盒子上。 - Tobias von Falkenhayn
3个回答

7

以下是我会采取的方式。
1.首先在Play商店中打开应用程序页面。

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

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

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

是的,这是输入点击。已经编辑过了。 - royatirek
adb shell input touchscreen tap 1 1adb shell 输入触摸屏轻击 1 1 - Deepak

4

使用命令行下的 Google Play 下载器本地下载 APK 文件,并通过 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

1
我更喜欢这种方式,而不是发送触控命令。 - Tobias von Falkenhayn

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接