Android PMS 安装 APK 流程

本文分析安装器提交 Apk 到 PMS 进行安装的过程。
1 | java.lang.IllegalArgumentException: Unknown authority com.example.myprovider |
从字面意思理解是没有找到特定的 ContentProvider。
Shell 是一个命令行解释器,它为用户提供了一个向 Linux 内核发送请求以便运行程序的界面系统级程序,其主要目的是读取命令和运行其他程序。
最流行的 shell 是 Bash(Bourne Again SHell — 之所以这么称呼,是因为它源自 Stephen Bourne 编写的 shell)。 Bash 是大多数现代 Linux 实现和大多数提供 适用于 Windows 的类 Linux 工具。
Android 中的 uid 是分配给各个进程使用,用来做权限管理的。10000 < uid < 19999 这个整数范围中的 id 号代表用户 app 的 uid,同时 gid 是和 uid 对齐。
android 中 uid 用于标识一个应用程序,uid 在应用安装时被分配,并且在应用存在于手机上期间,都不会改变。一个应用程序只能有一个 uid,多个应用可以使用 sharedUserId 方式共享同一个 uid,前提是这些应用的签名要相同。
收集一些常用的 Linux 命令,方便查找。
Android 平台的编译系统,其实就是用 Makefile 写出来的一个独立项目。它定义了编译的规则,实现了“自动化编译”,不仅把分散在数百个 Git 库中的代码整合起来、统一编译, 而且还把产物分门别类地输出到一个目录,打包成手机 ROM,还可以生成应用开发时所使用的 SDK、NDK 等。因此,采用 Makefile 编写的编译系统,也可以称为 Makefile 编译系统。
Android.mk 文件用来告知 NDK Build 系统关于 Source 的信息。 它是 GNU Makefile 的一部分,且将被 Build System 解析一次或多次。