今天要解决的一个疑问是我们写的Activity是如何被创建出来的?
在 android.app.ActivityThread#performLaunchActivity 方法中 ,调用android.app.Instrumentation#newActivity,到
android.app.AppComponentFactory#instantiateActivity,
它的内容如下:
public @NonNull Activity instantiateActivity(@NonNull ClassLoader cl, @NonNull String className,
@Nullable Intent intent)
throws InstantiationException, IllegalAccessException, ClassNotFoundException {
return (Activity) cl.loadClass(className).newInstance();
}
答案揭晓, 是通过反射来创建一个 Activity 的 。