1. Android为每个app(即apk)分配一个单独的userId,安装时赋予AndroidManifest中申请的权限,文件访问权限;默认一个app运行在单独的进程中,有独立的VM,通过唯一的userID保证访问权限,adb shell ps 可看到以app_数字开头的多个用户。
多个app共用一个userID:拥有相同权限,为了节约系统资源,可运行在同一个进程、VM中,需要相同的签名证书。
2. 每个app都有4中组件组成,每种组件启动都会启动app进程;通过Intent实现进程间通信。在AndroidManifest中声明的<activity>、<service>、<receiver>、<provider>组件可以由Android系统启动。每个组件通过<intent-filter>声明自身功能,Android通过匹配Intent中的Action提供组件列表。