0%

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,前提是这些应用的签名要相同。

阅读全文 »

Android 平台的编译系统,其实就是用 Makefile 写出来的一个独立项目。它定义了编译的规则,实现了“自动化编译”,不仅把分散在数百个 Git 库中的代码整合起来、统一编译, 而且还把产物分门别类地输出到一个目录,打包成手机 ROM,还可以生成应用开发时所使用的 SDK、NDK 等。因此,采用 Makefile 编写的编译系统,也可以称为 Makefile 编译系统。

Android.mk 文件用来告知 NDK Build 系统关于 Source 的信息。 它是 GNU Makefile 的一部分,且将被 Build System 解析一次或多次。

阅读全文 »

  1. Android 平台提供两种信号,一种是硬件信号,另一种是软件信号,由 SurfaceFlinger 进程的一个线程定时发出,硬件信号由硬件发出;
  2. App 进程若要通过 gpu 实现图像绘制,需要在接收到 Vsync 信号的条件下进行。因此,App 进程访问 SurfaceFlinger 进程获取这个信号,再进行 gpu 绘制;
  3. Android4.1 之后增加了 Choreographer 机制,用于同 Vsync 机制配合,统一动画、输入和绘制时机;
  4. Choreographer 就是负责获取 Vsync 同步信号并控制 App 主线程完成图像绘制的类;
阅读全文 »