android 打包 步骤

Android编译,打包、签名详细教程
1.Android程序编译、打包、签名、发布的三种方式:
方式一:命令行手动编译打包
方式二:使用ant自动编译打包
方式三:使用eclipse+ADT编译打包
2.Android编译、打包的步骤:
2.1第一步 生成R.java类文件:
Eclipse中会自动生成R.java,ant和命令行使用android SDK提供的aapt.ext程序生成R.java。
2.2第二步 将.aidl文件生成.java类文件:
Eclipse中自动生成,ant和命令行使用android SDK提供的aidl.exe生成.java文件。
2.3第三步 编译.java类文件生成class文件:
Eclipse中自动生成,ant和命令行使用jdk的javac编译java类文件生成class文件。
2.4第四步 将class文件打包生成classes.dex文件:
Eclipse中自动生成,ant和命令行使用android SDK提供的dx.bat命令行脚本生成classes.dex文件。
2.5第五步 打包资源文件(包括res、assets、androidmanifest.xml等):
Eclipse中自动生成,ant和命令行使用Android SDK提供的aapt.exe生成资源包文件。
2.6第六步 生成未签名的apk安装文件:
Eclipse中自动生成debug签名文件存放在bin目录中,ant和命令行使用android SDK提供的apkbuilder.bat命令脚本生成未签名的apk安装文件。
2.7第七步 对未签名的apk进行签名生成签名后的android文件:
Eclipse中使用Android Tools进行签名,ant和命令行使用jdk的jarsigner对未签名的包进行apk签名。
 

3.命令行手动编译打包详解
详见: http://jojol-zhou.javaeye.com/blog/729254
4.ant自动打包android程序详解
4.1生成R.java类文件:
 
   
   
   
   
  1.    <!-- Generate the R.java file for this project's resources. --> 
  2.     <target name="resource-src" depends="copy"> 
  3.         <echo>Generating R.java / Manifest.java from the resources...</echo> 
  4.         <exec executable="${aapt}" failonerror="true"> 
  5. <arg value="package" /> 
  6. <arg value="-m" /> 
  7. <arg value="-J" /> 
  8. <arg value="${outdir-gen}" /> 
  9. <arg value="-M" /> 
  10. <arg value="AndroidManifest.xml" /> 
  11. <arg value="-S" /> 
  12. <arg value="${resource-dir}" /> 
  13. <arg value="-I" /> 
  14. <arg value="${android-jar}" /> 
  15. </exec> 
  16.     </target>  
4.2将.aidl文件生成.java类文件:
 
   
   
   
   
  1.     <!-- Generate java classes from .aidl files. --> 
  2.     <target name="aidl" depends="copy"> 
  3.         <echo>Compiling aidl files into Java classes...</echo> 
  4.         <apply executable="${aidl}" failonerror="true"> 
  5.             <arg value="-p${android-framework}" /> 
  6.             <arg value="-I${srcdir}" /> 
  7.             <fileset dir="${srcdir}"> 
  8.                 <include name="**/*.aidl"/> 
  9.             </fileset> 
  10.         </apply> 
  11. </target>  
4.3编译.java类文件生成class文件:
 
   
   
   
   
  1. <!-- Compile this project's .java files into .class files. --> 
  2.  <target name="compile" depends="copy, resource-src, aidl"> 
  3.      <javac encoding="GB18030" target="1.5" debug="true" extdirs="" 
  4.              srcdir="." 
  5.              destdir="${outdir-classes}" 
  6.              bootclasspath="${android-jar}"> 
  7.          <classpath> 
  8.              <fileset dir="${external-libs}" includes="*.jar"/> 
  9.          </classpath> 
  10.       </javac> 
  11.  </target>  

  
4.4第四步 将class文件打包生成classes.dex文件:
  
   
   
   
   
  1. <!-- Convert this project's .class files into .dex files. --> 
  2.   <target name="dex" depends="compile"> 
  3.       <echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo> 
  4.       <apply executable="${dx}" failonerror="true" parallel="true"> 
  5.           <arg value="--dex" /> 
  6.           <arg value="--output=${intermediate-dex-ospath}" /> 
  7.           <arg path="${outdir-obfuscate-classes-ospath}" /> 
  8.           <fileset dir="${external-libs}" includes="*.jar"/> 
  9.       </apply> 
  10.   </target>  

4.5第五步 打包资源文件(包括res、assets、androidmanifest.xml等):
 
   
   
   
   
  1. <!-- Put the project's resources into the output package file. --> 
  2.   <target name="package-res-and-assets"> 
  3.       <echo>Packaging resources and assets...</echo> 
  4.       <exec executable="${aapt}" failonerror="true"> 
  5.           <arg value="package" /> 
  6.           <arg value="-f" /> 
  7.           <arg value="-M" /> 
  8.           <arg value="AndroidManifest.xml" /> 
  9.           <arg value="-S" /> 
  10.           <arg value="${resource-dir}" /> 
  11.           <arg value="-A" /> 
  12.           <arg value="${asset-dir}" /> 
  13.           <arg value="-I" /> 
  14.           <arg value="${android-jar}" /> 
  15.           <arg value="-F" /> 
  16.           <arg value="${resources-package}" /> 
  17.       </exec> 
  18.   </target>  

4.6第六步 生成未签名的apk安装文件:
 
   
   
   
   
  1. <target name="package" depends="dex, package-res"> 
  2.      <echo>Packaging ${out-unsigned-package} for release...</echo> 
  3.      <exec executable="${apk-builder}" failonerror="true"> 
  4.          <arg value="${out-unsigned-package-ospath}" /> 
  5.          <arg value="-u" /> 
  6.          <arg value="-z" /> 
  7.          <arg value="${resources-package-ospath}" /> 
  8.          <arg value="-f" /> 
  9.          <arg value="${intermediate-dex-ospath}" /> 
  10.          <arg value="-rf" /> 
  11.          <arg value="${srcdir-ospath}" /> 
  12.          <arg value="-rj" /> 
  13.          <arg value="${external-libs-ospath}" /> 
  14.      </exec> 
  15.      <echo>It will need to be signed with jarsigner before being published.</echo> 
  16.  </target>  

   
4.7第七步 对未签名的apk进行签名生成签名后的android文件:
 
   
   
   
   
  1. <target name="jarsigner" depends="package"> 
  2. <echo>Packaging ${out-unsigned-package} for release...</echo> 
  3. <exec executable="${jarsigner}" failonerror="true"> 
  4. <arg value="-verbose" /> 
  5. <arg value="-storepass" /> 
  6. <arg value="byread002" /> 
  7. <arg value="-keypass" /> 
  8. <arg value="byread002" /> 
  9. <arg value="-keystore" /> 
  10. <arg value="bbyread.keystore" /> 
  11. <arg value="-signedjar" /> 
  12. <arg value="${out-signed-package-ospath}" /> 
  13. <arg value="${out-unsigned-package-ospath}" /> 
  14. <arg value="byread" /> 
  15. </exec> 
  16. </target> 


 

你可能感兴趣的:(java,android,打包,程序,休闲)