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

我希望能够在安装ant之后启动我的应用程序,就像在eclipse中按下runbutton时一样。

在命令行创build一个项目后是否有一个现有的ant任务,或者是否有一个我可以用ant执行的命令?

Solutions Collecting From Web of "如何使用ant在设备上运行android应用程序"

执行adb shell am start -a android.intent.action.MAIN -n <Package_name>/.<Activity>从ant应启动您的app.ofcourse你需要build立和安装应用程序尝试启动应用程序…你可以使用android build xml构build并使用“adb install”安装应用程序…

使用Navin提供的命令,我能够创build这个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> 

在命令行我执行:

 ant debug install run 

而且这一切都运作良好。

编辑

正如WarrenFaith在评论中有用地指出{activity}应该是主要活动的类名. 字首。

所以最后一个参数值的一个完整的例子是

 org.package.name/.MyCustomActivity 

通常,将以下目标复制到您的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> 
 <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>package{activity}应该是主活动的全限定名(即包的名称,例如com.example.activty.MainActivty )。