素材巴巴 > 程序开发 >

Android apk ant打包

程序开发 2023-09-08 06:36:22

apk打包流程

打包流程

以上图就是整个apk打包的流程.


具体流程可以分为8步:
1. 通过aapt工具将 资源文件(res)、清单文件(AndroidManifest.xml)生成对应的R.java文件.
2. 通过aidl工具 将 aidl文件转化为java文件.
3. 通过javac工具,将.java文件转化为.class文件.
4. 将libs下的jar解压到输出目录中.
5. 通过dex命令 将class文件转换为dex文件.
6. 通过aapt工具生成资源文件包.
7. 生成未签名的apk安装文件.
8. 生成签名的apk安装文件.


以上流程不管是命令行打包还是ant打包, 都是不变的,下面我们来说一下完整的ant打包.

ant使用

  1. ant环境变量的配置.
    首先下载http://ant.apache.org/bindownload.cgi.
    和jdk一样配置ANT_HOME ,在PATH中添加ANT_HOME目录下的bin目录
  2. 测试.
    在CMD命令行中输入ant -version, 显示ant版本则说明配置成功.
  3. 使用

  4. 相信你对ant的基本的语法已经有了一定的了解, 那么, 只要使用这样的语法按照以下的命令格式就可以打包一个apk了.

具体打包命令

  1. 首先你有一个未打包的完整的项目(没有bin目录等), 在项目的根目录下新建 gen目录(参考eclipse),并且依次在gen目录下新建清单文件总包名对应的文件目录

    例如: 清单文件中包名是org.example.android,那么就在gen目录中新建目录结构为 gen/org/example/android

  2. 通过命令生成R.java

    aapt package -f -m -J [R文件目录(gen)] -S [资源文件目录(res)] -I [android环境jar(android.jar)] -M [清单文件(AndroidManifest.xml)]

    []的参数都是可选参数。
    [-d]: 指定一个或多个设备的资源文件被添加,多个资源文件用逗号隔开__
    [-f]: 是否覆盖已经存在的文件(添加此参数即为覆盖,否则不覆盖)__
    [-m]: 打包资源的文件目录,目录地址是-J参数指定__
    [-J]: 指定R文件生成的目录__
    [-S]: 需要打包的资源文件目录__
    [-I]: 指定环境android.jar的文件目录__
    [-M]: 清单文件的路径__

  3. 通过aidl工具 将 aidl文件转化为java文件

    aidl -I[项目的源文件目录(src)] -p[aidl框架环境文件(framework.aidl)] -o[aidl输出目录(gen)] [要转换的aidl文件(your.aidl)]

  4. 通过javac工具,将.java文件转化为.class文件

    javac -encoding [编码(gbk or utf-8)] -target [版本(1.6 or 1.7)] -bootclasspath [android环境jar(android.jar)] -cp [依赖的jar(多个用;隔开;结尾)] -d [class文件输出目录] [要编译的java文件(多个用空格分开)]

  5. 将libs下的jar解压到输出目录中

    jar xvf [jar文件]

  6. 通过dex命令 将class文件转换为dex文件

    dx.bat –dex –output=[全路径的输出文件(classes.dex)] [全路径的class文件对应的目录]

    [全路径的class文件对应的目录] : 如果此目录依赖了其他的jar文件,需要用 |分隔开
    命令: dex.bat –dex –output=输出路径 需要转换的class文件对应的路径

  7. 通过aapt工具生成资源文件包

    aapt package -f -M [清单文件(AndroidManifest.xml)] -S [资源文件目录(res)] -A [资产文件目录(assets)] -I [android环境jar(android.jar)] -F [输出的文件(resoures.ap_)]

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

    apkbuilder [输出的全路径apk] -u -z [全路径打包好的资源文件包] -f [全路径dex文件] -rf [全路径的src目录] -rj [全路径的libs目录]

  9. 生成签名的apk安装文件

    keytool -genkeypair -alias “itheima” -validity 365 -keyalg “RSA” -keystore itheima.keystore

    -alias : 签名的别名 -validity : 签名的时效 -keyalg : 加密的算法 -keystore : 生成的签名路径

    jarsigner -keystore 签名文件 -storepass 签名文件的密码 -keypass 签名密码 -signedjar 生成的签名文件 未签名的文件 签名的别名

以下为参考代码,注意,代码本身没有任何参考意义,仅作帮助理解ant的使用


 
 
 

标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。