https://blog.csdn.net/csdn_of_coder/article/details/78024696
1.Activity向AMS 发起请求启动App
1.1 AMS 启动Activity 流程
AMS 调用startActivity() 来启动APP:
public final int startActivity(IApplicationThread caller, String callingPackage,
Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode,
int startFlags, ProfilerInfo profilerInfo, Bundle options) {
return startActivityAsUser(caller, callingPackage, intent, resolvedType, resultTo,
resultWho, requestCode, startFlags, profilerInfo, options,
UserHandle.getCallingUserId());
}
AMS.startActivity() ---> AMS.startActivityAsUser():
public final int startActivityAsUser(IApplicationThread caller, String callingPackage,
Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode,
int startFlags, ProfilerInfo profilerInfo, Bundle options, int userId) {
// 如果是膈应的应用,不允许打开其他app的activity
enforceNotIsolatedCaller("startActivity");
userId = handleIncomingUser(Binder.getCallingPid(),