APK打包和安装

APK 打包流程

  • 1.aapt 打包资源文件生成 R.java 文件;aidl 生成 java 文件

  • 2.将 java 文件编译为 class 文件

  • 3.将工程及第三方的 class 文件转换成 dex 文件

  • 4.将 dex 文件、so、编译过的资源、原始资源等打包成 apk 文件

  • 5.签名

  • 6.资源文件对齐,减少运行时内存

APK打包和安装

App 安装过程

  • 复制APK到/data/app目录下,解压并扫描安装包。
  • 资源管理器解析APK里的资源文件。
  • 解析AndroidManifest文件,并在/data/data/目录下创建对应的应用数据目录。
  • 然后对dex文件进行优化,并保存在dalvik-cache目录下。
  • 将AndroidManifest文件解析出的四大组件信息注册到PackageManagerService中。
  • 安装完成后,发送广播。

总体说来就两件事情拷贝APK和解析APK,解析APK主要是解析APK的应用配置文件AndroidManifest.xml,以便获得它的安装信息。在安装的过程中还会这个应用分配Linux用 户ID和Linux用户组ID(以便它可以在系统中获取合适的运行权限)。