如何使用ant在设备上运行Android应用程序

rog*_*oom 19 ant android

我希望能够在使用ant安装后启动我的应用程序就像按下runeclipse中的按钮时一样.

在命令行上创建项目后是否存在现有的ant任务,或者是否可以使用ant执行命令?

rog*_*oom 32

使用Navin提供的命令,我能够创建这个ant目标:

<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>
Run Code Online (Sandbox Code Playgroud)

在命令行上我执行:

ant debug install run
Run Code Online (Sandbox Code Playgroud)

这一切都在游泳.

编辑

正如WarrenFaith在评论中有用地指出的那样,{activity}应该是带有.前缀的主要活动的类名.

所以最后一个arg值的完整例子就是

org.package.name/.MyCustomActivity
Run Code Online (Sandbox Code Playgroud)

  • 对于像我这样苦苦挣扎的每个人:不要忘记`{activity}`必须以`.`开头(一个点!).示例:`org.package.name/.MyCustomActivity` (2认同)
  • 好主意zode64 :-)另外,要从头重新启动应用程序,您可以使用命令"adb shell am force-stop <PACKAGE_NAME>",也许您应该将它添加到ant目标? (2认同)

小智 13

通常,将以下目标复制到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>
Run Code Online (Sandbox Code Playgroud)


小智 10

adb shell am start -a android.intent.action.MAIN -n <Package_name>/.<Activity>从ant 执行应该启动你的app.ofcourse你需要构建和安装试图启动应用程序的应用程序...你可以使用android build xml来构建和使用"adb install"来安装应用程序...