ActivityManagerService这个服务,对于玩Android的开发人员,应该再熟悉不过了,它是掌管Activity的核心。
不过从Android 10.0(API 29)开始,再看ActivityManagerService的代码,会发现,ActivityManagerService的工作已经被ActivityTaskManagerService这个服务接管了。具体我们就看看这里的变化。
虽然说ActivityTaskManagerService接管了ActivityManagerService,但是为了保持不同版本系统的正常运行,ActivityManagerService依然可用,原有接口也依然可用,只不过有一些被标注为了@Deprecated,代码也跳转到了ActivityManagerService去执行,比如startActivity。
//Android 10.0以前
@Override
public final int startActivity(IApplicationThread caller, String callingPackage,
Intent intent, String resolvedType, IBinder resultTo, String resultWho, int requestCode,
int startFlags, ProfilerInfo profilerInfo, Bundle bOptions) {
return startActivityAsUser(caller, callingPackage, intent, resolvedType, resultTo,
resultWho, requestCode, startFlags, profile