Android 从Google Play商店自动安装.apk

Android 从Google Play商店自动安装.apk,android,testing,apk,adb,android-tv,Android,Testing,Apk,Adb,Android Tv,我正在使用Python和我自己的ADB协议实现编写Android电视应用程序的端到端测试。到目前为止,这一切都很好,我可以发送命令,获取ui转储等 然而,由于该应用程序仅在Google Play Store上可用(我无法访问任何源代码),并且我想每周更新该应用程序的版本,因此我想知道如何使用ADB实现这一点 我考虑了以下解决方案: 发送关键事件以打开设备上的play store,并导航至应用程序的安装/更新页面 以某种方式将应用程序下载到测试机,并通过ADB将其推送到设备上 使用ADB在设备上直

我正在使用Python和我自己的ADB协议实现编写Android电视应用程序的端到端测试。到目前为止,这一切都很好,我可以发送命令,获取ui转储等

然而,由于该应用程序仅在Google Play Store上可用(我无法访问任何源代码),并且我想每周更新该应用程序的版本,因此我想知道如何使用ADB实现这一点

我考虑了以下解决方案:

  • 发送关键事件以打开设备上的play store,并导航至应用程序的安装/更新页面
  • 以某种方式将应用程序下载到测试机,并通过ADB将其推送到设备上
  • 使用ADB在设备上直接安装应用程序的新版本

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

    以下是我应该如何做的。
    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)
    
    adb外壳输入点击(默认:触摸屏)
    
    这个答案在一部手机上对我来说毫无问题

    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
    

    使用本地下载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    
    ...
    

    是的,这是输入水龙头。编辑它。嘿,你找到答案了吗?根据我的回答,您面临任何问题。您好@royatirek,谢谢您的回答,但这不是我最初想要的,因为我已经在第1点中描述过,这是一个选项,但对我来说似乎不是最优的。您需要一个小代码还是几秒钟更新应用程序的代码?或者你想在不同的机器上用不同的屏幕分辨率进行测试?是的,我想在没有任何屏幕连接到盒子的情况下进行测试。这一个我更喜欢发送tap命令
    $ gplaycli -d bg.projectoria.appinspector
    
    $ adb install bg.projectoria.appinspector.apk 
    Performing Streamed Install
    Success