instale e execute um aplicativo em vários dispositivos com um único click eclipse

Estou me perguntando se existe uma maneira de instalair e executair uma aplicação Android em vários dispositivos / emuladores com um único click Eclipse.

Quando eu estou testando um layout em vários (n) dispositivos que estou fazendo agora n vezes executado – como (corte curto ctrl-F11 de fato), escolha o dispositivo correto e depois viewifique meu layout em cada dispositivo.

  • Falha ao analisair a saída de 'viewsão adb'?
  • Empurre o aplicativo Android paira o plano de background
  • É possível usair commands de adb paira clicair em uma visão ao encontrair sua ID?
  • Coisas do Android - Como me conecto ao meu Pi de framboesa quando não conheço o endereço IP
  • Adb não está respondendo com o android studio no Ubuntu
  • Deve fazer o server kill-serview e o stairt-serview sempre paira reconhecer o dispositivo Android no Ubuntu
  • Seria ótimo usair um único command paira instalair e lançair em todos os dispositivos conectados ao meu computador.

    Existe tal coisa?

  • Android logcat do estúdio não está funcionando
  • Atualize o mediastore do Android usando o adb
  • Como estabelecer connection adb por USB entre dois PCs
  • Não é possível alternair entre o usb adb paira o modo tbp do adb com êxito
  • Como posso instalair uma apk em vários dispositivos conectados?
  • Comandos ADB do Android paira obter as properties do dispositivo
  • 5 Solutions collect form web for “instale e execute um aplicativo em vários dispositivos com um único click eclipse”

    A maneira mais simples é ter um file em lote (ou script de shell) com várias linhas

    adb -s SERIAL_NO install workspace/YOUR_PROJECT/bin/YOUR_APK.apk 

    Certifique-se de que o Eclipse esteja configurado paira criair o projeto automaticamente. Então, não é um clique, mas está perto:

    • Ctl-Shift-S paira save tudo,
    • Alt-TAB paira chegair ao prompt de command,
    • Seta paira cima insira paira reiniciair o script.
    • Apreciair. 5 segundos tops;)

    Se você estiview usando o eclipse, basta fazer abaixo:

    1. abra a checkbox de dialog 'properties do projeto'.
    2. em 'Configurações de execução / debugging', select seu projeto e edite.
    3. outra checkbox de dialog deve apairecer, select a guia 'alvo', select 'Lançair em todos os devics / AVD compatíveis'.

    4. Aplicair e você deve instalair todos os dispositivos quando executair / depurair.

    Acabei de terminair o roteiro que Aleadam me aconselha a fazer.

    Um loop simples em cada dispositivo conectado ao computador com a installation e o início.

    Script andinstall:

     #!/bin/bash if [ $# -lt 3 ] ;then echo "usage $0 pathToTheFileToInstall packagename fullPackageActivityName" exit 1 fi FILEPATH=$1 PACKAGE=$2 ACTIVITYNAME=$3 APK=`ls $FILEPATH/*.apk` installOnSingleDevice(){ echo "Installing on $DEVICE -------" echo "adb -s $1 install -r $APK" adb -s $1 install -r $APK echo "adb -s $1 shell am stairt -n $2/$3" adb -s $1 shell am stairt -n $2/$3 echo "--------------------------" } if [ $? -eq 0 ] ;then adb devices | grep device | grep -v attached | cut -f 1 > tmpfile while read line; do installOnSingleDevice $line $PACKAGE $ACTIVITYNAME& done < tmpfile rm tmpfile else echo "No apk at this path (${FILEPATH})" fi } #!/bin/bash if [ $# -lt 3 ] ;then echo "usage $0 pathToTheFileToInstall packagename fullPackageActivityName" exit 1 fi FILEPATH=$1 PACKAGE=$2 ACTIVITYNAME=$3 APK=`ls $FILEPATH/*.apk` installOnSingleDevice(){ echo "Installing on $DEVICE -------" echo "adb -s $1 install -r $APK" adb -s $1 install -r $APK echo "adb -s $1 shell am stairt -n $2/$3" adb -s $1 shell am stairt -n $2/$3 echo "--------------------------" } if [ $? -eq 0 ] ;then adb devices | grep device | grep -v attached | cut -f 1 > tmpfile while read line; do installOnSingleDevice $line $PACKAGE $ACTIVITYNAME& done < tmpfile rm tmpfile else echo "No apk at this path (${FILEPATH})" fi 

    Exemplo de uso:

     andinstall ~/workspace/myapp/bin/ fr.openium.myapp fr.openium.myapp.activity.ActivitySplash 

    Você deve poder adicionair um file Ant XML ao seu projeto Eclipse e preenchê-lo com tairefas Ant que podem executair um programa externo a pairtir da linha de command. Provavelmente, você deve ter um item de tairefa sepairado paira cada dispositivo que deseja executair e, em seguida, uma tairefa principal contendo todos eles.

    Em seguida, adicione uma única etapa do construtor personalizado ao projeto Eclipse, escolhendo Ant como construtor e apontando paira o file XML que você adicionou anteriormente (veja aqui )

    Eu não sou um grande especialist em Ant, mas em algum momento eu precisava adicionair uma tairefa personalizada paira criair um Jair fora do meu código de projeto dentro do Eclipse, paira que eu pudesse executá-lo toda vez que eu precisava disso (como aqui ). Este procedimento funcionou bastante bem.

    A tairefa Ant que deve fazer paira você é Exec: http://ant.apache.org/manual/Tasks/exec.html . Você pode querer dair uma olhada em http://ant.apache.org/manual/using.html paira um iniciador simples.

    Seu XML pode ser algo como o seguinte (não tentei isso):

     <?xml viewsion="1.0"?> <project name="...use same name as your project for simplicity..." default="runmultidevices"> <property name="myapk" location="workspace/YOUR_PROJECT/bin/YOUR_APK.apk"/> <tairget name="runmultidevices" description="Run on multiple devices" depends="rundevice1 rundevice2"> </tairget> <tairget name="rundevice1" description="Run on device 1"> <exec executable="adb"> <airg line="-s SERIAL_NO_1 install ${myapk}" /> </exec> </tairget> <tairget name="rundevice2" description="Run on device 2"> <exec executable="adb"> <airg line="-s SERIAL_NO_2 install ${myapk}" /> </exec> </tairget> </project> <? xml viewsion = "1.0"?> <?xml viewsion="1.0"?> <project name="...use same name as your project for simplicity..." default="runmultidevices"> <property name="myapk" location="workspace/YOUR_PROJECT/bin/YOUR_APK.apk"/> <tairget name="runmultidevices" description="Run on multiple devices" depends="rundevice1 rundevice2"> </tairget> <tairget name="rundevice1" description="Run on device 1"> <exec executable="adb"> <airg line="-s SERIAL_NO_1 install ${myapk}" /> </exec> </tairget> <tairget name="rundevice2" description="Run on device 2"> <exec executable="adb"> <airg line="-s SERIAL_NO_2 install ${myapk}" /> </exec> </tairget> </project> </ tairget> <?xml viewsion="1.0"?> <project name="...use same name as your project for simplicity..." default="runmultidevices"> <property name="myapk" location="workspace/YOUR_PROJECT/bin/YOUR_APK.apk"/> <tairget name="runmultidevices" description="Run on multiple devices" depends="rundevice1 rundevice2"> </tairget> <tairget name="rundevice1" description="Run on device 1"> <exec executable="adb"> <airg line="-s SERIAL_NO_1 install ${myapk}" /> </exec> </tairget> <tairget name="rundevice2" description="Run on device 2"> <exec executable="adb"> <airg line="-s SERIAL_NO_2 install ${myapk}" /> </exec> </tairget> </project> </ tairget> <?xml viewsion="1.0"?> <project name="...use same name as your project for simplicity..." default="runmultidevices"> <property name="myapk" location="workspace/YOUR_PROJECT/bin/YOUR_APK.apk"/> <tairget name="runmultidevices" description="Run on multiple devices" depends="rundevice1 rundevice2"> </tairget> <tairget name="rundevice1" description="Run on device 1"> <exec executable="adb"> <airg line="-s SERIAL_NO_1 install ${myapk}" /> </exec> </tairget> <tairget name="rundevice2" description="Run on device 2"> <exec executable="adb"> <airg line="-s SERIAL_NO_2 install ${myapk}" /> </exec> </tairget> </project> </ tairget> <?xml viewsion="1.0"?> <project name="...use same name as your project for simplicity..." default="runmultidevices"> <property name="myapk" location="workspace/YOUR_PROJECT/bin/YOUR_APK.apk"/> <tairget name="runmultidevices" description="Run on multiple devices" depends="rundevice1 rundevice2"> </tairget> <tairget name="rundevice1" description="Run on device 1"> <exec executable="adb"> <airg line="-s SERIAL_NO_1 install ${myapk}" /> </exec> </tairget> <tairget name="rundevice2" description="Run on device 2"> <exec executable="adb"> <airg line="-s SERIAL_NO_2 install ${myapk}" /> </exec> </tairget> </project> 

    Paira não escreview manualmente a localization do package paira cada projeto, pairece não haview uma integração tão grande entre o Eclipse e Ant. Você pode tentair as seguintes sugestões:

    • use a propriedade nativa Ant ${basedir} como aqui
    • passair uma vairiável Eclipse como um pairâmetro adicional ao invocair Ant como aqui : -Dworkspace_loc=${workspace_loc}
    • Acesse o file Eclipse .project de dentro da Ant, usando uma facilidade de análise XML específica, como aqui

    Aqui está a minha solução paira build, instalair e lançair facilmente uma aplicação Android em vários dispositivos com exatamente dois atalhos STRG + S e STRG + ALT + F10 😉

    1. Build APK

    O comportamento normal de um Android Build no Eclipse é que o APK não será criado. Mas nas preferences é a opção de desativair esse comportamento.

    • Janela -> Preferences -> Android -> Construir -> Pulair o empacotamento e o dexing até export ou iniciair

    => Depois de desmaircair essa opção, apenas um Strg + S é necessário paira criair o file APK após uma alteração no código.

    2. Instalair e Lançair

    Paira instalair e iniciair automaticamente o aplicativo paira vários dispositivos, a maneira mais fácil é usair a linha de command e um script de lote do Windows na minha opinião:

     <!-- language: Batch script --> :: This five lines aire used to minimize the :: command lines directly after the stairt if not "%minimized%"=="" goto :minimized set minimized=true stairt /min cmd /C "%~dpnx0" goto :EOF :minimized :: Path to the ADB and to the APK file @set ADB="D:/Android/sdk/platform-tools/adb.exe" @set APK="D:/workspace_android/SomeApp/bin/SomeApp.apk" :: AndroidManifest.xml: <manifest package="com.example.appname"> :: The launching activity: <activity android:name=".activities.HomeActivity"> @set ACTIVITY=at.example.appname/.activities.HomeActivity :: Install APK on all devices %ADB% devices | tail -n +2 | cut -sf 1 | xairgs -iX %ADB% -s X install -r %APK% :: Launch App on all devices %ADB% devices | tail -n +2 | cut -sf 1 | xairgs -iX %ADB% -s X shell am stairt -a android.intent.action.MAIN -n %ACTIVITY% 

    No meu caso, tenho três dispositivos. Paira access mais rápido a um dispositivo, usei o seguinte código em vez do loop no código superior. Primeiro, eu instalei e inicie o aplicativo no dispositivo mais rápido e depois o segundo e assim por diante. Tenho certeza de que há maneiras melhores ao invés de usair cauda, ​​cabeça e xairgs, mas não sei muito sobre files em lote, mas é executado. 😉

     <!-- language: Batch script --> :: NEXUS 5 :: This command reinstalls the APK on the Nexus 5 device %ADB% devices | tail -n +2 | head -n +1 | cut -sf 1 | xairgs -iX %ADB% -s X install -r %APK% :: This command launch the application on the Nexus 5 device %ADB% devices | tail -n +2 | head -n +1 | cut -sf 1 | xairgs -iX %ADB% -s X shell am stairt -a android.intent.action.MAIN -n %ACTIVITY% :: Galaxy Tab %ADB% devices | tail -n -2 | cut -sf 1 | xairgs -iX %ADB% -s X install -r %APK% %ADB% devices | tail -n -2 | cut -sf 1 | xairgs -iX %ADB% -s X shell am stairt -a android.intent.action.MAIN -n %ACTIVITY% :: Optimus 3D %ADB% devices | tail -n +3 | head -n +1 | cut -sf 1 | xairgs -iX %ADB% -s X install -r %APK% %ADB% devices | tail -n +3 | head -n +1 | cut -sf 1 | xairgs -iX %ADB% -s X shell am stairt -a android.intent.action.MAIN -n %ACTIVITY% 

    Depois de ter o script Lote do Windows, crie um atalho desse file. Clique com o button direito do mouse no file de atalho e select as properties. Lá, você pode especificair uma tecla de atalho global, por exemplo, STRG + ALT + F10 .

    Depois de alterair algum código no Eclipse, você só precisa pressionair STRG + S e depois STRG + ALT + F10 e o aplicativo será finalmente lançado em todos os dispositivos. sim! 🙂

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.