android studio能直接运行ant脚本吗

 我来答
兄弟连教育
2016-04-29 · 百度知道合伙人官方认证企业
兄弟连教育
兄弟连教育成立于2006年,11年来专注IT职业教育,是国内专业的IT技术培训学校。2016年成功挂牌新三板(股票代码:839467)市值过亿。开设专注程序员培训专注php、Java、UI、云计算、Python、HTML5、
向TA提问
展开全部
1、生成R.java
  2、编译*.java
  3、生成classes.dex
  4、将assets、res打包
  5、生成未签名的apk
  6、将apk签名

  基于这些步骤,我们来编写ant脚本。
  1、生成R.java

  <target name="init">
  <echo>Initialize...</echo>
  <delete dir="${bin}">
  <mkdir dir="${bin}">
  </mkdir></delete></target>
  
  <target name="gen-R" depends="init">
  
  <echo>
  Generating R.java from the resources...
  1.aapt package -f -m -J gen -S res -I D:/android-sdk-windows/platforms/android-16/android.jar -M AndroidManifest.xml
  </echo>
  
  <exec executable="${tools.aapt}" failonerror="true">

  </arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></exec>
  </target>
  

  注:

  (1)、target中的name是该target的名字,该名字会在其他target的depends中调用,也可在project的default中使用,也可在指定ant脚本时调用。
  (2)、depends指定的是该target执行前需要执行的target。
  (3)、arg中的参数与《Android打包之bat脚本打包》的1_genR的bat脚本参数相对应。
  (4)、${XXX}是对变量的引用,这些变量定义到property属性中。下面是相关的代码。

  <property name="sdk-folder" value="D:\android-sdk-windows">
  
  <property name="platform-folder" value="${sdk-folder}\platforms\android-17">
  
  <property name="platform-tools-folder" value="${sdk-folder}\platform-tools">
  
  <property name="jdk-folder" value="D:\Program Files (x86)\Java\jdk1.6.0_45">
  
  
  
  <property name="android-jar" value="${platform-folder}\android.jar">
  
  <property name="tools.aapt" value="${platform-tools-folder}\aapt.exe">
  
  <property name="tools.javac" value="${jdk-folder}\bin\javac.exe">
  
  <property name="tools.dx" value="${platform-tools-folder}\dx.bat">
  
  <property name="tools.apkbuilder" value="${sdk-folder}\tools\apkbuilder.bat">
  
  <property name="tools.jarsigner" value="${jdk-folder}\bin\jarsigner.exe">
  
  
  
  <property name="project-dir" value="G:\Code\Android\Workspace\AntDemo">
  
  <property name="res" value="${project-dir}\res">
  
  <property name="gen" value="${project-dir}\gen">
  
  <property name="src" value="${project-dir}\src">
  
  <property name="bin" value="${project-dir}\bin">
  
  <property name="assets" value="${project-dir}\assets">
  
  
  
  <property name="manifest" value="${project-dir}\AndroidManifest.xml">
  
  <property name="java-file-gen" value="${gen}\com\example\antdemo\*.java">
  
  <property name="java-file-src" value="${src}\com\example\antdemo\*.java">
  
  <property name="dex-name" value="${bin}\classes.dex">
  
  <property name="pakcage-temp-name" value="${bin}\${ant.project.name}">
  
  <property name="unsigned-apk-name" value="${ant.project.name}_unsigned.apk">
  
  <property name="unsigned-apk-path" value="${bin}\${unsigned-apk-name}">
  
  <property name="signed-apk-name" value="${ant.project.name}.apk">
  
  <property name="signed-apk-path" value="${bin}\${signed-apk-name}">
  
  <property name="keystore-name" value="${project-dir}\my.keystore">
  
  <property name="keystore-alias" value="ant_test">
  </property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property></property>
  

  注:

  (1)、sdk-folder指定了android-sdk所在的目录。
  (2)、jdk-folder指定的是jdk所在的目录。建议使用jdk1.6,jdk1.7可能会有问题。
  (3)、tools中指定了所要用到的工具。
  (4)、其他变量自行对应。
  2、编译*.java

  <target name="compile" depends="gen-R">
  
  <echo>
  Compile...
  2.javac -target 1.6 -bootclasspath D:/android-sdk-windows/platforms/android-16/android.jar -d bin gen\com\example\antdemo\*.java src\com\example\antdemo\*.java
  
  </echo>
  
  <exec executable="${tools.javac}" failonerror="true">

  </arg></arg></arg></arg></arg></arg></arg></arg></exec>
  </target>
  

  注:调用javac命令来编译,相关的参数与《Android打包之bat脚本打包》的2_compile.bat脚本相对应。
3、生成classes.dex

 

  <target name="dex" depends="compile">
  
  <echo>
  Generate dex...
  3.dx 两个短横dex 两个短横output=G:\Code\Android\Workspace\AntDemo\bin\classes.dex G:\Code\Android\Workspace\AntDemo\bin
  </echo>
  
  <exec executable="${tools.dx}" failonerror="true">

  </arg></arg></arg></exec>
  </target>
  

  注:

  (1)、两个短横表示的是--,因--在xml中属性特殊标记,所以使用文字来描述。
  (2)、相关的参数与《Android打包之bat脚本打包》的3_dex.bat脚本相对应。
  4、将assets、res打包

  <target name="package" depends="dex">
  <echo>
  Package resource and assets...
  4.aapt package -f -A assets -S res -I D:/android-sdk-windows/platforms/android-16/android.jar -M AndroidManifest.xml -F bin/AntDemo
  </echo>
  
  <exec executable="${tools.aapt}" failonerror="true">

  </arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></exec>
  </target>
  

  注:相关的参数与《Android打包之bat脚本打包》的4_package.bat脚本相对应。
5、生成未签名的apk

  <target name="build-unsigned-apk" depends="package">
  <echo>
  Build unsigned apk
  5.apkbuilder G:\Code\Android\Workspace\AntDemo\bin\AntDemo_unsigned.apk -v -u -z G:\Code\Android\Workspace\AntDemo\bin\AntDemo -f G:\Code\Android\Workspace\AntDemo\bin\classes.dex -rf G:\Code\Android\Workspace\AntDemo\src
  </echo>
  
  <exec executable="${tools.apkbuilder}" failonerror="true">

  </arg></arg></arg></arg></arg></arg></arg></arg></arg></exec>
  </target>
  

  注:相关的参数与《Android打包之bat脚本打包》的5_unsinged.bat脚本相对应。
6、将apk签名

  <target name="sign-apk" depends="build-unsigned-apk">
  <echo>
  Sign apk
  6.jarsigner -keystore G:\Code\Android\Workspace\AntDemo\build\my.keystore -storepass 123456 -keypass 123456 -signedjar G:\Code\Android\Workspace\AntDemo\bin\AntDemo_signed.apk G:\Code\Android\Workspace\AntDemo\bin\AntDemo_unsigned.apk ant_test
  </echo>
  
  <exec executable="${tools.jarsigner}" failonerror="true">

  
  </arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></exec>
  </target>
  

  注:相关的参数与《Android打包之bat脚本打包》的6_singed.bat脚本相对应。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式