Подтвердить что ты не робот

Устанавливать и запускать приложение на нескольких устройствах одним щелчком мыши по eclipse

Мне интересно, есть ли способ установить и запустить приложение Android на нескольких устройствах/эмуляторе одним щелчком мыши в Eclipse.

Когда я тестирую макет на нескольких (n) устройствах, которые я делаю прямо сейчас n раз run-as (фактически сокращенный ctrl-F11), выберите правильное устройство, а затем проверьте мой макет на каждом устройстве.

Было бы здорово использовать одну команду для установки и запуска на всех устройствах, подключенных к моему компьютеру.

Существует ли такая вещь?

4b9b3361

Ответ 1

Самый простой способ - иметь командный файл (или оболочку script) с несколькими строками

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

Убедитесь, что Eclipse настроен на автоматическое создание проекта. Затем, это не один клик, но закрыть:

  • Ctl-Shift-S, чтобы сохранить все,
  • Alt-TAB, чтобы перейти в командную строку,
  • стрелка вверх, чтобы перезапустить script.
  • Наслаждайтесь. 5 секунд вершин;)

Ответ 2

Если вы используете eclipse, просто выполните ниже:

  • откройте диалоговое окно свойств проекта.
  • в разделе "Параметры запуска/отладки", выберите проект и отредактируйте его.
  • появится другое диалоговое окно, выберите вкладку "цель", выберите "Запуск на всех совместимых devics/AVD".

  • Применить, и вы должны установить все устройства при запуске/отладке.

Ответ 3

Я только что закончил script Aleadam, чтобы помочь мне.

Простой цикл на каждом устройстве, подключенном к компьютеру с установкой и запуском.

Script иinstall:

#!/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 start -n $2/$3"
    adb -s $1 shell am start -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

Пример использования:

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

Ответ 4

Вы должны добавить XML файл Ant в свой проект Eclipse и заполнить его Ant задачами, которые могут запускать внешнюю программу из командной строки. Вероятно, у вас должен быть отдельный элемент задачи для каждого устройства, которое вы хотите запустить, а затем родительская задача, содержащая все из них.

Затем добавьте один шаг настраиваемого строителя в проект Eclipse, выбрав Ant в качестве строителя и указывая на ранее добавленный файл XML (см. здесь)

Я не большой эксперт в Ant, но в какой-то момент мне нужно было добавить настраиваемую задачу для сборки Jar из кода проекта из Eclipse, чтобы я мог запускать ее каждый раз, когда мне это нужно ( например здесь). Эта процедура работала достаточно хорошо.

Задача Ant, которая должна выполнить для вас: Exec: http://ant.apache.org/manual/Tasks/exec.html. Вы можете посмотреть http://ant.apache.org/manual/using.html для простого запуска.

Ваш XML может быть чем-то вроде следующего (я еще не пробовал):

<?xml version="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"/>
  <target name="runmultidevices" description="Run on multiple devices" depends="rundevice1 rundevice2">
  </target>
  <target name="rundevice1" description="Run on device 1">
    <exec executable="adb">
      <arg line="-s SERIAL_NO_1 install ${myapk}" />
    </exec>
  </target>
  <target name="rundevice2" description="Run on device 2">
    <exec executable="adb">
      <arg line="-s SERIAL_NO_2 install ${myapk}" />
    </exec>
  </target>
</project>

Чтобы не писать вручную местоположение пакета для каждого проекта, похоже, не существует такой большой интеграции между Eclipse и Ant. Вы можете попробовать следующие предложения:

  • используйте собственное свойство Ant ${basedir}, как в здесь
  • передать переменную Eclipse в качестве дополнительного параметра при вызове Ant, как в здесь: -Dworkspace_loc=${workspace_loc}
  • получить доступ к файлу Eclipse .project из Ant, используя специальный механизм синтаксического анализа XML, как в здесь

Ответ 5

Вот мое решение для простой сборки, установки и запуска приложения Android на нескольких устройствах с помощью двух быстрых клавиш STRG + S и STRG + ALT + F10;)

1. Сборка APK

Нормальное поведение Android Build в Eclipse заключается в том, что APK не будет создан. Но в настройках есть возможность отключить это поведение.

  • Окно → Настройки → Android → Сборка → Пропустить упаковку и удаление до экспорта или запуска

= > После отмены этой опции для создания файла APK после изменения кода требуется только Strg + S.

2. Установка и запуск

Для установки и автоматического запуска приложения для нескольких устройств самый простой способ - использовать командную строку и пакет Windows script, на мой взгляд:

<!-- language: Batch script -->
:: This five lines are used to minimize the 
:: command lines directly after the start
if not "%minimized%"=="" goto :minimized
set minimized=true
start /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 | xargs -iX %ADB% -s X install -r %APK%
:: Launch App on all devices
%ADB% devices | tail -n +2 | cut -sf 1 | xargs -iX %ADB% -s X shell am start -a android.intent.action.MAIN -n %ACTIVITY%

В моем случае у меня три устройства. Для более быстрого доступа к одному устройству я использовал следующий код вместо цикла в верхнем коде. Во-первых, я устанавливаю и запускаю приложение на самом быстром устройстве, а затем на втором и так далее. Я уверен, что есть лучшие способы вместо использования хвоста, головы и xargs, но я не так много знаю о пакетных файлах, но он просто работает.;)

<!-- 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 | xargs -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 | xargs -iX %ADB% -s X shell am start -a android.intent.action.MAIN -n %ACTIVITY%

:: Galaxy Tab
%ADB% devices | tail -n -2 | cut -sf 1 | xargs -iX %ADB% -s X install -r %APK%
%ADB% devices | tail -n -2 | cut -sf 1 | xargs -iX %ADB% -s X shell am start -a android.intent.action.MAIN -n %ACTIVITY%

:: Optimus 3D
%ADB% devices | tail -n +3 | head -n +1 | cut -sf 1 | xargs -iX %ADB% -s X install -r %APK%
%ADB% devices | tail -n +3 | head -n +1 | cut -sf 1 | xargs -iX %ADB% -s X shell am start -a android.intent.action.MAIN -n %ACTIVITY%

После пакета Windows script создайте ярлык этого файла. Щелкните правой кнопкой мыши ярлык и выберите свойства. Там вы можете указать глобальную комбинацию клавиш STRG + ALT + F10.

После изменения кода в Eclipse вам нужно нажать STRG + S, а затем STRG + ALT + F10, и приложение будет, наконец, запущено на всех устройствах. Да!:)