1.生成R.java类文件:

[xhtml] view plain copy
  1. <!--GeneratetheR.javafileforthisproject'sresources.-->
  2. <targetname="resource-src"depends="copy">
  3. <echo>GeneratingR.java/Manifest.javafromtheresources...</echo>
  4. <execexecutable="${aapt}"failonerror="true">
  5. <argvalue="package"/>
  6. <argvalue="-m"/>
  7. <argvalue="-J"/>
  8. <argvalue="${outdir-gen}"/>
  9. <argvalue="-M"/>
  10. <argvalue="AndroidManifest.xml"/>
  11. <argvalue="-S"/>
  12. <argvalue="${resource-dir}"/>
  13. <argvalue="-I"/>
  14. <argvalue="${android-jar}"/>
  15. </exec>
  16. </target>

2.将.aidl文件生成.java类文件:

[xhtml] view plain copy
  1. <!--Generatejavaclassesfrom.aidlfiles.-->
  2. <targetname="aidl"depends="copy">
  3. <echo>CompilingaidlfilesintoJavaclasses...</echo>
  4. <applyexecutable="${aidl}"failonerror="true">
  5. <argvalue="-p${android-framework}"/>
  6. <argvalue="-I${srcdir}"/>
  7. <filesetdir="${srcdir}">
  8. <includename="**/*.aidl"/>
  9. </fileset>
  10. </apply>
  11. </target>

3.编译.java类文件生成class文件:

[xhtml] view plain copy
  1. <!--Compilethisproject's.javafilesinto.classfiles.-->
  2. <targetname="compile"depends="copy,resource-src,aidl">
  3. <javacencoding="GB18030"target="1.5"debug="true"extdirs=""srcdir="."destdir="${outdir-classes}"bootclasspath="${android-jar}">
  4. <classpath>
  5. <filesetdir="${external-libs}"includes="*.jar"/>
  6. </classpath>
  7. </javac>
  8. </target>
4.将class文件打包生成classes.dex文件:

[xhtml] view plain copy
  1. <!--Convertthisproject's.classfilesinto.dexfiles.-->
  2. <targetname="dex"depends="compile">
  3. <echo>Convertingcompiledfilesandexternallibrariesinto${outdir}/${dex-file}...</echo>
  4. <applyexecutable="${dx}"failonerror="true"parallel="true">
  5. <argvalue="--dex"/>
  6. <argvalue="--output=${intermediate-dex-ospath}"/>
  7. <argpath="${outdir-obfuscate-classes-ospath}"/>
  8. <filesetdir="${external-libs}"includes="*.jar"/>
  9. </apply>
  10. </target>

5.打包资源文件(包括res、assets、androidmanifest.xml等):

[xhtml] view plain copy
  1. <!--Puttheproject'sresourcesintotheoutputpackagefile.-->
  2. <targetname="package-res-and-assets">
  3. <echo>Packagingresourcesandassets...</echo>
  4. <execexecutable="${aapt}"failonerror="true">
  5. <argvalue="package"/>
  6. <argvalue="-f"/>
  7. <argvalue="-M"/>
  8. <argvalue="AndroidManifest.xml"/>
  9. <argvalue="-S"/>
  10. <argvalue="${resource-dir}"/>
  11. <argvalue="-A"/>
  12. <argvalue="${asset-dir}"/>
  13. <argvalue="-I"/>
  14. <argvalue="${android-jar}"/>
  15. <argvalue="-F"/>
  16. <argvalue="${resources-package}"/>
  17. </exec>
  18. </target>

6.生成未签名的apk安装文件:

[xhtml] view plain copy
  1. <targetname="package"depends="dex,package-res">
  2. <echo>Packaging${out-unsigned-package}forrelease...</echo>
  3. <execexecutable="${apk-builder}"failonerror="true">
  4. <argvalue="${out-unsigned-package-ospath}"/>
  5. <argvalue="-u"/>
  6. <argvalue="-z"/>
  7. <argvalue="${resources-package-ospath}"/>
  8. <argvalue="-f"/>
  9. <argvalue="${intermediate-dex-ospath}"/>
  10. <argvalue="-rf"/>
  11. <argvalue="${srcdir-ospath}"/>
  12. <argvalue="-rj"/>
  13. <argvalue="${external-libs-ospath}"/>
  14. </exec>
  15. <echo>Itwillneedtobesignedwithjarsignerbeforebeingpublished.</echo>
  16. </target>
7.对未签名的apk进行签名生成签名后的android文件:
[xhtml] view plain copy
  1. <targetname="jarsigner"depends="package">
  2. <echo>Packaging${out-unsigned-package}forrelease...</echo>
  3. <execexecutable="${jarsigner}"failonerror="true">
  4. <argvalue="-verbose"/>
  5. <argvalue="-storepass"/>
  6. <argvalue="byread002"/>
  7. <argvalue="-keypass"/>
  8. <argvalue="byread002"/>
  9. <argvalue="-keystore"/>
  10. <argvalue="bbyread.keystore"/>
  11. <argvalue="-signedjar"/>
  12. <argvalue="${out-signed-package-ospath}"/>
  13. <argvalue="${out-unsigned-package-ospath}"/>
  14. <argvalue="byread"/>
  15. </exec>
  16. </target>

*完整Ant配置文件build.xml:

[xhtml] view plain copy
  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <projectname="Byread"default="debug">
  3. <propertyenvironment="env"/>
  4. <propertyname="sdk-folder"value="${env.ANDROID_SDK_HOME}"/>
  5. <!--SDKLocations-->
  6. <propertyname="sdk2.2-folder"value="${env.ANDROID_SDK_HOME}"/>
  7. <propertyname="sdk-folder"value="${sdk2.2-folder}/platforms/android-3"/>
  8. <propertyname="sdk-tools"value="${sdk-folder}/tools"/>
  9. <propertyname="android-tools"value="${sdk2.2-folder}/tools"/>
  10. <propertyname="proguardpath"location="${wtkhome}/lib/proguard"/>
  11. <!--step1.generateR.javabyaapt2.compilejavatoclassbyjavac。exe3.generateclasses.dexbydx.bat-->
  12. <!--4.packageresourcesbyaapt5.packageresourceandclasses.dexbyapkbuilder.bat6.signapkbyjarsinger-->
  13. <!--Tools-->
  14. <propertyname="aapt"value="${sdk-tools}/aapt.exe"/>
  15. <propertyname="dx"value="${sdk-tools}/dx.bat"/>
  16. <propertyname="apk-builder"value="${android-tools}/apkbuilder.bat"/>
  17. <propertyname="aidl"value="${android-tools}/aidl.exe"/>
  18. <propertyname="adb"value="${android-tools}/adb.exe"/>
  19. <propertyname="android-jar"value="${sdk-folder}/android.jar"/>
  20. <propertyname="jarsigner"value="${env.JAVA_HOME}/bin/jarsigner.exe"/>
  21. <!--ApplicationPackageName-->
  22. <propertyname="application-package"value="com.byread.reader"/>
  23. <propertyname="useragent"value="byAndroidWeb"/>
  24. <propertyname="version"value="1.02"/>
  25. <!--Theintermediatesdirectory-->
  26. <!--Eclipseuses"bin"foritsownoutput,sowedothesame.-->
  27. <propertyname="outdir-bin"value="bin"/>
  28. <propertyname="outdir-gen"value="gen"/>
  29. <!--sourcedirectories-->
  30. <propertyname="resource-dir"value="res"/>
  31. <propertyname="asset-dir"value="assets"/>
  32. <propertyname="srcdir"value="src"/>
  33. <propertyname="srcdir-ospath"value="${basedir}/${srcdir}"/>
  34. <propertyname="external-libs"value="libs"/>
  35. <propertyname="external-libs-ospath"value="${basedir}/${external-libs}"/>
  36. <!--destdirectories-->
  37. <propertyname="des-resource-dir"value="${outdir-bin}/res"/>
  38. <propertyname="des-asset-dir"value="${outdir-bin}/assets"/>
  39. <propertyname="des-srcdir"value="${outdir-bin}/src"/>
  40. <propertyname="des-srcdir-ospath"value="${basedir}/${outdir-bin}/${srcdir}"/>
  41. <propertyname="des-external-libs"value="${outdir-bin}/libs"/>
  42. <propertyname="des-external-libs-ospath"value="${basedir}/${outdir-bin}/${external-libs}"/>
  43. <!--Outputdirectories-->
  44. <propertyname="outdir-classes"value="${outdir-bin}/src"/>
  45. <propertyname="outdir-obfuscate-classes"value="${outdir-bin}/classes"/>
  46. <propertyname="outdir-obfuscate-classes-ospath"value="${basedir}/${outdir-obfuscate-classes}"/>
  47. <!--Intermediatefiles-->
  48. <propertyname="dex-file"value="classes.dex"/>
  49. <propertyname="intermediate-dex"value="${outdir-bin}/${dex-file}"/>
  50. <propertyname="intermediate-dex-ospath"value="${basedir}/${intermediate-dex}"/>
  51. <!--Thefinalpackagefiletogenerate-->
  52. <propertyname="resources-package"value="${outdir-bin}/${ant.project.name}"/>
  53. <propertyname="resources-package-ospath"value="${basedir}/${resources-package}"/>
  54. <propertyname="out-debug-package"value="${outdir-bin}/${ant.project.name}-debug.apk"/>
  55. <propertyname="out-debug-package-ospath"value="${basedir}/${out-debug-package}"/>
  56. <propertyname="out-unsigned-package"value="${outdir-bin}/${ant.project.name}-unsigned.apk"/>
  57. <propertyname="out-unsigned-package-ospath"value="${basedir}/${out-unsigned-package}"/>
  58. <propertyname="out-signed-package"value="${useragent}/${ant.project.name}.apk"/>
  59. <propertyname="out-signed-package-ospath"value="${basedir}/${out-signed-package}"/>
  60. <!--init-->
  61. <targetname="init">
  62. <echo>Creatingalloutputdirectories</echo>
  63. <deletedir="${outdir-bin}"/>
  64. <deletedir="${useragent}"/>
  65. <mkdirdir="${outdir-bin}"/>
  66. <mkdirdir="${outdir-classes}"/>
  67. <mkdirdir="${useragent}"/>
  68. </target>
  69. <!--copyoriginalstringsandmodifyuseragent-->
  70. <targetname="copy"depends="init">
  71. <echo>copyfilestooutputfolder</echo>
  72. <deletefile="${resource-dir}/values/strings.xml"/>
  73. <copyfile="strings.xml"todir="${resource-dir}/values"/>
  74. <replacefile="${resource-dir}/values/strings.xml"token="@USERAGENT@"value="${useragent}"encoding="utf-8"/>
  75. </target>
  76. <!--GeneratetheR.javafileforthisproject'sresources.-->
  77. <targetname="resource-src"depends="copy">
  78. <echo>GeneratingR.java/Manifest.javafromtheresources...</echo>
  79. <execexecutable="${aapt}"failonerror="true">
  80. <argvalue="package"/>
  81. <argvalue="-m"/>
  82. <argvalue="-J"/>
  83. <argvalue="${outdir-gen}"/>
  84. <argvalue="-M"/>
  85. <argvalue="AndroidManifest.xml"/>
  86. <argvalue="-S"/>
  87. <argvalue="${resource-dir}"/>
  88. <argvalue="-I"/>
  89. <argvalue="${android-jar}"/>
  90. </exec>
  91. </target>
  92. <!--Generatejavaclassesfrom.aidlfiles.-->
  93. <targetname="aidl"depends="copy">
  94. <echo>CompilingaidlfilesintoJavaclasses...</echo>
  95. <applyexecutable="${aidl}"failonerror="true">
  96. <argvalue="-p${android-framework}"/>
  97. <argvalue="-I${srcdir}"/>
  98. <filesetdir="${srcdir}">
  99. <includename="**/*.aidl"/>
  100. </fileset>
  101. </apply>
  102. </target>
  103. <!--Compilethisproject's.javafilesinto.classfiles.-->
  104. <targetname="compile"depends="copy,resource-src,aidl">
  105. <javacencoding="GB18030"target="1.5"debug="true"extdirs=""srcdir="."destdir="${outdir-classes}"bootclasspath="${android-jar}">
  106. <classpath>
  107. <filesetdir="${external-libs}"includes="*.jar"/>
  108. </classpath>
  109. </javac>
  110. </target>
  111. <!--Convertthisproject's.classfilesinto.dexfiles.-->
  112. <targetname="dex"depends="compile">
  113. <echo>Convertingcompiledfilesandexternallibrariesinto${outdir}/${dex-file}...</echo>
  114. <applyexecutable="${dx}"failonerror="true"parallel="true">
  115. <argvalue="--dex"/>
  116. <argvalue="--output=${intermediate-dex-ospath}"/>
  117. <argpath="${outdir-obfuscate-classes-ospath}"/>
  118. <filesetdir="${external-libs}"includes="*.jar"/>
  119. </apply>
  120. </target>
  121. <!--Puttheproject'sresourcesintotheoutputpackagefile.-->
  122. <targetname="package-res-and-assets">
  123. <echo>Packagingresourcesandassets...</echo>
  124. <execexecutable="${aapt}"failonerror="true">
  125. <argvalue="package"/>
  126. <argvalue="-f"/>
  127. <argvalue="-M"/>
  128. <argvalue="AndroidManifest.xml"/>
  129. <argvalue="-S"

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. 读取android手机流量信息
  4. android 使用html5作布局文件: webview跟javascript交互
  5. Android(安卓)多媒体扫描过程(Android(安卓)Media Scanner Proces
  6. android“设置”里的版本号
  7. Android开发环境搭建
  8. Android(安卓)Resource介绍和使用
  9. 2014.01.21 ——— android 关联android-support源码

随机推荐

  1. 云虚拟主机FTP连接不上的解决办法
  2. 轻松搞定iOS本地消息推送
  3. iOS点击推送消息跳转处理
  4. iOS 12适配以及问题小记
  5. SPFA 算法实例讲解
  6. php双向队列实例讲解
  7. 微信小程序 require机制详解及实例代码
  8. 流程控制语句、函数的参数与返回值、模板
  9. 微信小程序模版渲染详解
  10. js事件/dom操作/定时