Как запустить приложение Android на устройстве с помощью Ant - PullRequest
19 голосов
/ 27 января 2012

Я хотел бы иметь возможность запускать мое приложение после установки с помощью ant, как это происходит при нажатии кнопки run в eclipse.

Существует ли существующая задача ant после создания проекта в командной строке или есть команда, которую можно выполнить с помощью ant?

Ответы [ 4 ]

32 голосов
/ 27 января 2012

Используя команду, предоставленную Navin, я смог создать эту цель муравья:

<target name="run">
    <exec executable="adb">
        <arg value="shell"/>
        <arg value="am"/>
        <arg value="start"/>
        <arg value="-a"/>
        <arg value="android.intent.action.MAIN"/>
        <arg value="-n"/>
        <arg value="{package.name}/{activity}"/>
    </exec>
</target>

В командной строке я выполняю:

ant debug install run

И все это работает плавно.

EDIT

Как подсказывает WarrenFaith в комментариях {activity} должно быть именем класса основной деятельности с префиксом ..

Таким образом, полный пример значения последнего аргумента будет

org.package.name/.MyCustomActivity
13 голосов
/ 10 апреля 2013

Как правило, скопируйте следующую цель в свой build.xml или custom_rules.xml.Обратите внимание, что в custom_rules.xml (если он еще не существует) вам нужно заключить его в элемент.

<target name="start">
    <xpath input="AndroidManifest.xml"
           expression="/manifest/@package"
           output="manifest.package" />
    <xpath input="AndroidManifest.xml"
           expression="/manifest/application/activity[intent-filter/action/@android:name='android.intent.action.MAIN']/@android:name"
           output="manifest.main" />
    <echo level="info">Restart main activity ${manifest.package}/.${manifest.main}</echo>
    <exec executable="${android.platform.tools.dir}/adb">
        <arg value="shell"/>
        <arg value="am"/>
        <arg value="start"/>
        <arg value="-S"/>
        <arg value="-a"/>
        <arg value="android.intent.action.MAIN"/>
        <arg value="-n"/>
        <arg value="${manifest.package}/.${manifest.main}"/>
    </exec>
</target>
10 голосов
/ 27 января 2012

выполнение adb shell am start -a android.intent.action.MAIN -n <Package_name>/.<Activity> из ant должно запустить ваше приложение. Конечно, вам нужно собрать и установить приложение, пытаясь запустить приложение ... вы можете использовать android build xml для сборки и использовать "adb install" для установки приложения. ..

0 голосов
/ 27 мая 2013
<target name="run">
    <exec executable="adb">
        <arg value="shell"/>
        <arg value="am"/>
        <arg value="start"/>
        <arg value="-a"/>
        <arg value="android.intent.action.MAIN"/>
        <arg value="-n"/>
        <arg value="{package.name}/{activity}"/>
    </exec>
</target>

Я просто хочу сказать, что {package.name} должно быть равно <manifest> s package, а {activity} должно быть полным квалифицированным именем основного действия (то есть с именем пакета, например com.example.activty.MainActivty).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...