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