Android打包APK流程及原理

原创 2018年04月17日 14:56:11

Android的包文件APK分为两个部分:代码和资源,所以打包方面也分为资源打包和代码打包两个方面,这篇文章就来分析资源和代码的编译打包原理。


APK整体的的打包流程如下图所示:




具体说来:


  1. 通过AAPT工具进行资源文件(包括AndroidManifest.xml、布局文件、各种xml资源等)的打包,生成R.java文件。

  2. 通过AIDL工具处理AIDL文件,生成相应的Java文件。

  3. 通过Javac工具编译项目源码,生成Class文件。

  4. 通过DX工具将所有的Class文件转换成DEX文件,该过程主要完成Java字节码转换成Dalvik字节码,压缩常量池以及清除冗余信息等工作。

  5. 通过ApkBuilder工具将资源文件、DEX文件打包生成APK文件。

  6. 利用KeyStore对生成的APK文件进行签名。

  7. 如果是正式版的APK,还会利用ZipAlign工具进行对齐处理,对齐的过程就是将APK文件中所有的资源文件举例文件的起始距离都偏移4字节的整数倍,这样通过内存映射访问APK文件
    的速度会更快。

APK的安装流程如下所示:




复制APK到/data/app目录下,解压并扫描安装包。


  1. 资源管理器解析APK里的资源文件。

  2. 解析AndroidManifest文件,并在/data/data/目录下创建对应的应用数据目录。

  3. 然后对dex文件进行优化,并保存在dalvik-cache目录下。

  4. 将AndroidManifest文件解析出的四大组件信息注册到PackageManagerService中。

  5. 安装完成后,发送广播。

仿站原理和流程演示

我们把一般的动态网站分为三个层级,分别是用户层、管理层和数据层; 用户层权限最低,我们能够在互联网上直接访问的网站页面都可以被称为用户层;而网站的管理层只有站长或管理员才能够看到,也就是我们的网站管理后台;数据层指的是存放我们网站数据的服务器。 我们这里所说的仿站,其实就是把我们能够访问到的用户层页面进行下载,然后对用户层进行模板制作,最后把制作的模板安装到我们的网站上进行使用。
  • 2017年01月24日 17:29

Android打包apk实现原理与流程(雷惊风)

最近刚刚忙完公司项目,比较轻松一点,抽个时间总结一下Android打包apk相关的知识点,也从网上看了一些前辈的资料,但是感觉看一遍印象不会特别深刻,所以决定写篇文章加深一下记忆,以希望能帮助一批想了...
  • liuyonglei1314
  • liuyonglei1314
  • 2016-12-22 18:26:28
  • 912

Android eclipse打包apk的流程

export signed application package(签名)和export unsigned application package(未签名)
  • bruce_qiwei
  • bruce_qiwei
  • 2016-06-21 09:22:27
  • 357

Android开发 —— apk打包流程

0. 前言 在总结 apk 的打包流程之前,先要了解一下一个 apk 究竟包含哪些文件: classes.dex 文件: resource.arsc 文件: AndroidManifest.xml 文...
  • waynelu92
  • waynelu92
  • 2017-03-31 18:47:07
  • 396

从源文件到APK-Android打包流程

======================================================原文链接https://juejin.im/entry/58b78d1b61ff4b006c...
  • u012185875
  • u012185875
  • 2018-03-03 10:18:09
  • 113

Android中APK打包流程

aapt: android application package tool,SDK (Android打包流程图) #Android打包流程 1.通过aapt工具将 资源文件(res)、清单文件(A...
  • zhaodecang
  • zhaodecang
  • 2016-12-13 23:00:40
  • 16649

纯ant命令行打包android apk之图文从原理角度完全详解android打包过程(打包系列教程之一)

工作也有一段时间了,刚来到公司时,说起来惭愧,打包根本不怎么会,然后呢,各种原因,管理svn和打包的各类工作都必须要由我来做了,之前的工程师留下的ant打包工具的打包速度,我实在忍无可忍了!太慢了!一...
  • javazejian
  • javazejian
  • 2016-01-22 18:09:51
  • 6477

(转)android Apk打包过程概述_android是如何打包apk的

最近看了老罗分析android资源管理和apk打包流程的博客,参考其他一些资料,做了一下整理,脱离繁琐的打包细节和数据结构,从整体上概述了apk打包的整个流程。流程概述: 1、打包资源文件,生成R....
  • baidu_17508977
  • baidu_17508977
  • 2016-12-16 17:42:16
  • 472

android打包APK

  • 2012年12月12日 09:45
  • 26KB
  • 下载

Android项目构建Apk包流程

好久都没有写博文了,主要是现在的工作重点是前端开发了,最近在学习webpack、weex等前端知识,说起weex,一直都在填坑中,目前还没爬出来了!    好了,回归到本文的主题。之前也写过有关And...
  • zxw136511485
  • zxw136511485
  • 2018-01-31 14:51:03
  • 11442
收藏助手
不良信息举报
您举报文章:Android打包APK流程及原理
举报原因:
原因补充:

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