本文主要介绍Android4.4默认Home应用Launcher3的启动过程和Launcher3的数据加载过程。Launcher的启动是开机时,ActivityManagerService准备好后开始的,下图是它的启动序列图:
step1,SystemServer中,ActivityManagerService准备好了。
step3,
boolean resumeTopActivitiesLocked(ActivityStack targetStack, ActivityRecord target,
Bundle targetOptions) {
if (targetStack == null) {
targetStack = getFocusedStack(); //获得mHomeStack
}
boolean result = false;
for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
final ActivityStack stack = mStacks.get(stackNdx);
if (isFrontStack(stack)) {
if (stack == targetStack) {
result = stack.resumeTopActivityLocked(target, targetOptions);
} else {
stack.resumeTopActivityLocked(null);
}
}
}
return result;
}
mStacks中已经添加过mHomeStack,mStacks的内容介绍请查看 Android4.4 Framewor