Automated Installation of an .apk from the Google Play Store










3















I'm writing some end-to-end tests of an Android-TV-App using Python and my own implementation of the ADB-Protocol. This works fine so far, I can send commands, get ui-dumps ect.



However, since the app is only available on the Google Play Store (I don't have access to any source code) and I want to update the version of the app every week, I'm wondering how I can do this using ADB.



I thought about following solutions:



  1. Send key events to open play store on the device and navigate to to the installation / update page of the app.

  2. Download the app somehow to the Testmachine and push it to the device by ADB.

  3. Use ADB to directly install a new version of the app on the device.

Whats "best practice" on this and how should i solve my problem?










share|improve this question






















  • Hey, have you found the answer? Any problem you are facing as per the my answer.

    – royatirek
    Nov 16 '18 at 13:12












  • hi @royatirek, thanks for your answer, but this wasn't originally what i've looked for, since i already described in point 1 that this was an option but doesn't seem optimal to me.

    – Tobias von Falkenhayn
    Nov 16 '18 at 13:31











  • Do you need a small code or the code that takes few second to update your app? Or Do you want to test on different machines with different screen resolution?

    – royatirek
    Nov 16 '18 at 13:43












  • yeah i want to do it actually without any screen connected to the box

    – Tobias von Falkenhayn
    Nov 16 '18 at 13:55















3















I'm writing some end-to-end tests of an Android-TV-App using Python and my own implementation of the ADB-Protocol. This works fine so far, I can send commands, get ui-dumps ect.



However, since the app is only available on the Google Play Store (I don't have access to any source code) and I want to update the version of the app every week, I'm wondering how I can do this using ADB.



I thought about following solutions:



  1. Send key events to open play store on the device and navigate to to the installation / update page of the app.

  2. Download the app somehow to the Testmachine and push it to the device by ADB.

  3. Use ADB to directly install a new version of the app on the device.

Whats "best practice" on this and how should i solve my problem?










share|improve this question






















  • Hey, have you found the answer? Any problem you are facing as per the my answer.

    – royatirek
    Nov 16 '18 at 13:12












  • hi @royatirek, thanks for your answer, but this wasn't originally what i've looked for, since i already described in point 1 that this was an option but doesn't seem optimal to me.

    – Tobias von Falkenhayn
    Nov 16 '18 at 13:31











  • Do you need a small code or the code that takes few second to update your app? Or Do you want to test on different machines with different screen resolution?

    – royatirek
    Nov 16 '18 at 13:43












  • yeah i want to do it actually without any screen connected to the box

    – Tobias von Falkenhayn
    Nov 16 '18 at 13:55













3












3








3








I'm writing some end-to-end tests of an Android-TV-App using Python and my own implementation of the ADB-Protocol. This works fine so far, I can send commands, get ui-dumps ect.



However, since the app is only available on the Google Play Store (I don't have access to any source code) and I want to update the version of the app every week, I'm wondering how I can do this using ADB.



I thought about following solutions:



  1. Send key events to open play store on the device and navigate to to the installation / update page of the app.

  2. Download the app somehow to the Testmachine and push it to the device by ADB.

  3. Use ADB to directly install a new version of the app on the device.

Whats "best practice" on this and how should i solve my problem?










share|improve this question














I'm writing some end-to-end tests of an Android-TV-App using Python and my own implementation of the ADB-Protocol. This works fine so far, I can send commands, get ui-dumps ect.



However, since the app is only available on the Google Play Store (I don't have access to any source code) and I want to update the version of the app every week, I'm wondering how I can do this using ADB.



I thought about following solutions:



  1. Send key events to open play store on the device and navigate to to the installation / update page of the app.

  2. Download the app somehow to the Testmachine and push it to the device by ADB.

  3. Use ADB to directly install a new version of the app on the device.

Whats "best practice" on this and how should i solve my problem?







android testing apk adb android-tv






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Nov 5 '18 at 15:20









Tobias von FalkenhaynTobias von Falkenhayn

141116




141116












  • Hey, have you found the answer? Any problem you are facing as per the my answer.

    – royatirek
    Nov 16 '18 at 13:12












  • hi @royatirek, thanks for your answer, but this wasn't originally what i've looked for, since i already described in point 1 that this was an option but doesn't seem optimal to me.

    – Tobias von Falkenhayn
    Nov 16 '18 at 13:31











  • Do you need a small code or the code that takes few second to update your app? Or Do you want to test on different machines with different screen resolution?

    – royatirek
    Nov 16 '18 at 13:43












  • yeah i want to do it actually without any screen connected to the box

    – Tobias von Falkenhayn
    Nov 16 '18 at 13:55

















  • Hey, have you found the answer? Any problem you are facing as per the my answer.

    – royatirek
    Nov 16 '18 at 13:12












  • hi @royatirek, thanks for your answer, but this wasn't originally what i've looked for, since i already described in point 1 that this was an option but doesn't seem optimal to me.

    – Tobias von Falkenhayn
    Nov 16 '18 at 13:31











  • Do you need a small code or the code that takes few second to update your app? Or Do you want to test on different machines with different screen resolution?

    – royatirek
    Nov 16 '18 at 13:43












  • yeah i want to do it actually without any screen connected to the box

    – Tobias von Falkenhayn
    Nov 16 '18 at 13:55
















Hey, have you found the answer? Any problem you are facing as per the my answer.

– royatirek
Nov 16 '18 at 13:12






Hey, have you found the answer? Any problem you are facing as per the my answer.

– royatirek
Nov 16 '18 at 13:12














hi @royatirek, thanks for your answer, but this wasn't originally what i've looked for, since i already described in point 1 that this was an option but doesn't seem optimal to me.

– Tobias von Falkenhayn
Nov 16 '18 at 13:31





hi @royatirek, thanks for your answer, but this wasn't originally what i've looked for, since i already described in point 1 that this was an option but doesn't seem optimal to me.

– Tobias von Falkenhayn
Nov 16 '18 at 13:31













Do you need a small code or the code that takes few second to update your app? Or Do you want to test on different machines with different screen resolution?

– royatirek
Nov 16 '18 at 13:43






Do you need a small code or the code that takes few second to update your app? Or Do you want to test on different machines with different screen resolution?

– royatirek
Nov 16 '18 at 13:43














yeah i want to do it actually without any screen connected to the box

– Tobias von Falkenhayn
Nov 16 '18 at 13:55





yeah i want to do it actually without any screen connected to the box

– Tobias von Falkenhayn
Nov 16 '18 at 13:55












1 Answer
1






active

oldest

votes


















4














Here is how I would have done it.

1.First open the app page in playstore



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


2.Then send touch on the install/update button.



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





share|improve this answer

























  • not tap command found

    – Nikunj Patel
    Nov 13 '18 at 10:42











  • yeah it is input tap. Edited it.

    – royatirek
    Nov 13 '18 at 11:53











Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53157208%2fautomated-installation-of-an-apk-from-the-google-play-store%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









4














Here is how I would have done it.

1.First open the app page in playstore



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


2.Then send touch on the install/update button.



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





share|improve this answer

























  • not tap command found

    – Nikunj Patel
    Nov 13 '18 at 10:42











  • yeah it is input tap. Edited it.

    – royatirek
    Nov 13 '18 at 11:53
















4














Here is how I would have done it.

1.First open the app page in playstore



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


2.Then send touch on the install/update button.



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





share|improve this answer

























  • not tap command found

    – Nikunj Patel
    Nov 13 '18 at 10:42











  • yeah it is input tap. Edited it.

    – royatirek
    Nov 13 '18 at 11:53














4












4








4







Here is how I would have done it.

1.First open the app page in playstore



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


2.Then send touch on the install/update button.



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





share|improve this answer















Here is how I would have done it.

1.First open the app page in playstore



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


2.Then send touch on the install/update button.



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






share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 13 '18 at 11:53

























answered Nov 6 '18 at 14:22









royatirekroyatirek

372515




372515












  • not tap command found

    – Nikunj Patel
    Nov 13 '18 at 10:42











  • yeah it is input tap. Edited it.

    – royatirek
    Nov 13 '18 at 11:53


















  • not tap command found

    – Nikunj Patel
    Nov 13 '18 at 10:42











  • yeah it is input tap. Edited it.

    – royatirek
    Nov 13 '18 at 11:53

















not tap command found

– Nikunj Patel
Nov 13 '18 at 10:42





not tap command found

– Nikunj Patel
Nov 13 '18 at 10:42













yeah it is input tap. Edited it.

– royatirek
Nov 13 '18 at 11:53






yeah it is input tap. Edited it.

– royatirek
Nov 13 '18 at 11:53




















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53157208%2fautomated-installation-of-an-apk-from-the-google-play-store%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Darth Vader #20

How to how show current date and time by default on contact form 7 in WordPress without taking input from user in datetimepicker

Ondo