android studio能直接运行ant脚本吗
1个回答
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脚本相对应。
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脚本相对应。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |