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部分)的构建编译框架详细流程说明(来源于官方):
在这里插入图片描述

打包步骤

总体打包步骤我们可以概括以下七步:

  1. 通过aapt打包资源文件,生成R.java和resources.arsc
  2. 处理aidl文件,生成对应的java接口文件
  3. 编译项目工程源代码,生成.class文件
  4. Dex命令处理,将第三步生成的.class文件和第三方的库一起生成classes.dex文件
  5. 通过apkbuilder工具将aapt生成的resources.arsc、classes.dex(可能多个)、其他的资源一块打包生成apk文件
  6. 通过Jarsigner对第五步生成的apk进行debug或者release签名,只有签名完的apk才能进行安装
  7. 通过aipalign对签名后的apk进行对其处理,使apk中所有资源文件距离文件起始偏移为4字节的整数倍,从而在通过内存映射访问apk文件时会更快

其实还应该有最后一步,那就是通过adb install命令将生成的apk安装到设备或者模拟器上

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值