本文主要是介绍Andriod打包的过程(搬运),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文章地址:
http://hanhailong.com/2016/04/02/apk%25E6%2589%2593%25E5%258C%2585%25E6%25B5%2581%25E7%25A8%258B%25E6%25A2%25B3%25E7%2590%2586/
简介
一些初学Android的开发者可能只知道写完项目,然后点击AndroidStudio中的run按钮就可以把项目运行到手机或者模拟器上,而一个apk是怎么从编译打包到最后签名安装到手机上的原理不知道,这里就带领大家理解一下内部的原理
简单build流程
首先,我们看下官网介绍Building and Running Overview,官网给了我们一张非常简单的编译、打包、apk生成内容以及签名的图片,因为官网必须得用vpn才能访问,这里我就直接下载下来了,简单build图片如下:
图片大体介绍了从Project到运行到设备或者模拟器的一个大体流程,我们也从中看到一个完整的apk包含如下内容:一个或多个dex文件、resources.arsc、未编译的资源文件以及AndroidManifest.xml文件等等
详细打包流程
官网给了我们一张非常清晰的打包流程图:
下面这幅图就是整个Android应用(不包含NDK部分)的构建编译框架详细流程说明(来源于官方):
打包步骤
总体打包步骤我们可以概括以下七步:
- 通过aapt打包资源文件,生成R.java和resources.arsc
- 处理aidl文件,生成对应的java接口文件
- 编译项目工程源代码,生成.class文件
- Dex命令处理,将第三步生成的.class文件和第三方的库一起生成classes.dex文件
- 通过apkbuilder工具将aapt生成的resources.arsc、classes.dex(可能多个)、其他的资源一块打包生成apk文件
- 通过Jarsigner对第五步生成的apk进行debug或者release签名,只有签名完的apk才能进行安装
- 通过aipalign对签名后的apk进行对其处理,使apk中所有资源文件距离文件起始偏移为4字节的整数倍,从而在通过内存映射访问apk文件时会更快
其实还应该有最后一步,那就是通过adb install命令将生成的apk安装到设备或者模拟器上
这篇关于Andriod打包的过程(搬运)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!