aapt是android中的资源打包工具,打包资源就用它。
打包大致流程:
aapt把resources目录下的资源生成R.java文件,并为AndroidManifest.xml生成Manifest.java类。
aidl把项目中自定义的aidl文件生成对应的java类。
JavaCompiler把所有的Java源文件编译成class文件,包括:aapt生成的、aidl生成的、项目中自有的java源文件
使用proguard混淆,并生成一个proguardMapping.xml文件(可选项:可以混淆也可以不混淆)
使用dex工具把所有的class文件生成.dex文件
使用aapt资源打包工具把resources、assets目录下的资源打包成一个_ap文件
使用apkbuilder把所有的dex、_ap文件、AndroidManifest.xml文件打包成一个未签名的apk
使用jarsinger生成一个签名过的apk包
使用zipalign工具对要发布的apk文件进行对齐 *** 作,以便在运行时节约内存。
APK文件的组成部分及apk打包流程是Android开发中的基础知识点,做一个简单的记录。
apk文件是Android应用包文件格式,其本质是一个压缩文件。将apk文件拖动到Android Studio中即可查看里面的内容,如下图:
从上图中可以看到apk包里的几个重要组成部分:
打包流程的经典流程图如下:
其中七个椭圆形内容对应了打包流程中的七个重要步骤,也对应着打包中的七个重要工具,具体如下:
对上面七个重要的打包流程进一步说明。
aapt打包资源文件,生成R.java文件,resources.arsc等文件。
aapt在打包资源文件之前会检测 AndroidManifest.xml 文件的合法性,对res目录下的资源目录进行扫描合法性,因此资源命名有问题时会在编译阶段就会直接报错。
需要注意的是xml文件会被编译为二进制的,因此我们并不能直接打开apk包中的xml文件。
AIDL是Android接口定义语言,是Android进程间通讯的一种实现方式。
此步骤中会对aidl文件进行处理,生成java文件。
通过javaCompiler对java文件进行编译,生成class文件。
dx工具将class文件转变为Android系统Dalvik虚拟机可执行的Dex文件。
将classes.dex,res文件夹等所有文件打包成apk文件。
生成APK包之后还需要进行签名处理,Release签名需要我们自己去进行配置。
常用的签名方式有两种:jarsigner和apksigner。
Zipalign是Android平台上APK文件对齐的整理工具,能够对APK中未压缩的数据进行4字节对齐。
需要注意的是根据采用签名方式的不同,对齐处理的先后顺序有所区别。
APK打包流程备忘。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)