Android 编译,打包、签程名详细教

转载 2012年03月28日 18:32:42

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类文件:
    
  
    
<target name="resource-src" depends="copy">
   
  
        
  <echo>
   Generating R.java / Manifest.java from the resources...
  </echo> 
  
        
  <exec executable="${aapt}" failonerror="true">
    
   

   <arg value="package" /> 
   

   <arg value="-m" /> 
   

   <arg value="-J" /> 
   

   <arg value="${outdir-gen}" /> 
   

   <arg value="-M" /> 
   

   <arg value="AndroidManifest.xml" /> 
   

   <arg value="-S" /> 
   

   <arg value="${resource-dir}" /> 
   

   <arg value="-I" /> 
   

   <arg value="${android-jar}" /> 
   

  </exec> 
  
    
</target> 

4.2将.aidl文件生成.java类文件:
    
  
    
<target name="aidl" depends="copy">
   
  
        
  <echo>
   Compiling aidl files into Java classes...
  </echo> 
  
        
  <apply executable="${aidl}" failonerror="true">
    
   
            
   <arg value="-p${android-framework}" /> 
   
            
   <arg value="-I${srcdir}" /> 
   
            
   <fileset dir="${srcdir}">
     
    
                
    <include name="**/*.aidl" /> 
    
            
   </fileset> 
   
        
  </apply> 
  

</target> 

4.3编译.java类文件生成class文件:
    
  
    
<target name="compile" depends="copy, resource-src, aidl">
   
  
        
  <javac encoding="GB18030" target="1.5" debug="true" extdirs="">
   
                srcdir="." 
   
                destdir="${outdir-classes}" 
   
                bootclasspath="${android-jar}"> 
   
            
   <classpath>
     
    
                
    <fileset dir="${external-libs}" includes="*.jar" /> 
    
            
   </classpath> 
   
         
  </javac> 
  
    
</target> 
   
4.4第四步 将class文件打包生成classes.dex文件:
    
  
    
<target name="dex" depends="compile">
   
  
        
  <echo>
   Converting compiled files and external libraries into ${outdir}/${dex-file}...
  </echo> 
  
        
  <apply executable="${dx}" failonerror="true" parallel="true">
    
   
            
   <arg value="--dex" /> 
   
            
   <arg value="--output=${intermediate-dex-ospath}" /> 
   
            
   <arg path="${outdir-obfuscate-classes-ospath}" /> 
   
            
   <fileset dir="${external-libs}" includes="*.jar" /> 
   
        
  </apply> 
  
    
</target> 
4.5第五步 打包资源文件(包括res、assets、androidmanifest.xml等):
   
  
    
<target name="package-res-and-assets">
   
  
        
  <echo>
   Packaging resources and assets...
  </echo> 
  
        
  <exec executable="${aapt}" failonerror="true">
    
   
            
   <arg value="package" /> 
   
            
   <arg value="-f" /> 
   
            
   <arg value="-M" /> 
   
            
   <arg value="AndroidManifest.xml" /> 
   
            
   <arg value="-S" /> 
   
            
   <arg value="${resource-dir}" /> 
   
            
   <arg value="-A" /> 
   
            
   <arg value="${asset-dir}" /> 
   
            
   <arg value="-I" /> 
   
            
   <arg value="${android-jar}" /> 
   
            
   <arg value="-F" /> 
   
            
   <arg value="${resources-package}" /> 
   
        
  </exec> 
  
    
</target> 
4.6第六步 生成未签名的apk安装文件:
   
<target name="package" depends="dex, package-res">
   
  
        
  <echo>
   Packaging ${out-unsigned-package} for release...
  </echo> 
  
        
  <exec executable="${apk-builder}" failonerror="true">
    
   
            
   <arg value="${out-unsigned-package-ospath}" /> 
   
            
   <arg value="-u" /> 
   
            
   <arg value="-z" /> 
   
            
   <arg value="${resources-package-ospath}" /> 
   
            
   <arg value="-f" /> 
   
            
   <arg value="${intermediate-dex-ospath}" /> 
   
            
   <arg value="-rf" /> 
   
            
   <arg value="${srcdir-ospath}" /> 
   
            
   <arg value="-rj" /> 
   
            
   <arg value="${external-libs-ospath}" /> 
   
        
  </exec> 
  
        
  <echo>
   It will need to be signed with jarsigner before being published.
  </echo> 
  
    
</target> 
    
4.7第七步 对未签名的apk进行签名生成签名后的android文件:

<target name="jarsigner" depends="package">
   
  

  <echo>
   Packaging ${out-unsigned-package} for release...
  </echo> 
  

  <exec executable="${jarsigner}" failonerror="true">
    
   

   <arg value="-verbose" /> 
   

   <arg value="-storepass" /> 
   

   <arg value="byread002" /> 
   

   <arg value="-keypass" /> 
   

   <arg value="byread002" /> 
   

   <arg value="-keystore" /> 
   

   <arg value="bbyread.keystore" /> 
   

   <arg value="-signedjar" /> 
   

   <arg value="${out-signed-package-ospath}" /> 
   

   <arg value="${out-unsigned-package-ospath}" /> 
   

   <arg value="byread" /> 
   

  </exec> 
  

</target>

相关文章推荐

Android编译,打包、签名详细教程

Author:Jojol  Data:2010.08.04  1.Android程序编译、打包、签名、发布的三种方式:  方式一:命令行手动编译打包  方式二:使用ant自动编译打包  ...

Android编译,打包、签名详细教程

 1.Android程序编译、打包、签名、发布的三种方式方式一:使用eclipse+ADT编译打包方式二:命令行手动编译打包方式三:使用ant自动编译打包2.Android编译、打包的步骤第一步 生成...

Xamarin For Android 打包编译APK文件详细图文教程

原文链接 本文用于介绍Visual Studio 2012中Xamarin Mono For Android 如何打包编译APK文件,从如何创建Android项目,到如何启动调试,都会逐个配图讲...
  • kenkao
  • kenkao
  • 2015年07月10日 09:37
  • 5089

android签名打包详细介绍

在Android 系统中,所有安装 到 系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为...

Android 多渠道打包详细教程(一)-ant

最近做的项目快上线了,所以就把多渠道打包的一些工具研究研究,之前用的最多的还是ant,androidstudio出来了之后,又可以使用gradle来进行多渠道打包,所以准备一个一个研究,一个一个写。本...

记录Android studio打包生成apk,的详细步骤

我们android开发者都知道,android studio不能用模拟器测试后生成apk,特别是Eclipse刚刚接触android studio的android开发者。今天我记录了,自己打包的步骤。...

APK反编译以及重新打包的详细步骤

本章主要详细介绍了反编译APK已经修改需要的内容后再重新打包的过程

ant自动打包apk(详细),引用到第三方工程类库以及里面的资源,修改包名和工程名

1.进入项目的目录中,打开命令行窗口Android update project –name 项目名称 –path 项目的绝对路径local.properties里面设置的是引用的参数,比如工具的路径...

Android反编译工具打包和简易教程

  • 2011年05月10日 14:39
  • 1.85MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Android 编译,打包、签程名详细教
举报原因:
原因补充:

(最多只允许输入30个字)