这一篇分析ActivityStarter:startActivity(),这个方法还是挺长的,分段来分析,当然了,只能分析我看得懂的→_→
这个方法主要是对启动Activity的异常排查,并且创建了跳转目标Activity的ActivtyRecord对象
<第一段 :获取callerApp-->当前进程对应的ProcessRecord对象 >
int err = ActivityManager.START_SUCCESS;
//获取当前进程的ProcessRecord
ProcessRecord callerApp = null;
if (caller != null) {
callerApp = mService.getRecordForAppLocked(caller);
if (callerApp != null) {
callingPid = callerApp.pid;
callingUid = callerApp.info.uid;
} else {
Slog.w(TAG, "Unable to find app for caller " + caller
+ " (pid=" + callingPid + ") when starting: "
+ intent.toString());
err = ActivityManager.START_PERMISSION_DENIED;
}
}
<