Android 推荐应用架构建议将代码划分为多个类,以从分离关注点这一原则(其中,层次结构的每个类都具有一项已定义的责任)中受益。这就需要将更多更小的类连接在一起,以实现彼此之间的依赖关系。
查看ActivityThread代码源码,
performLaunchActivity函数1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24Activity activity = null;
try {
java.lang.ClassLoader cl = appContext.getClassLoader();
activity = mInstrumentation.newActivity(
cl, component.getClassName(), r.intent);
StrictMode.incrementExpectedActivityCount(activity.getClass());
r.intent.setExtrasClassLoader(cl);
r.intent.prepareToEnterProcess();
if (r.state != null) {
r.state.setClassLoader(cl);
}
} catch (Exception e) {
if (!mInstrumentation.onException(activity, e)) {
throw new RuntimeException(
"Unable to instantiate activity " + component
+ ": " + e.toString(), e);
}
}
......
activity.attach(appContext, this, getInstrumentation(), r.token,
r.ident, app, r.intent, r.activityInfo, title, r.parent,
r.embeddedID, r.lastNonConfigurationInstances, config,
r.referrer, r.voiceInteractor, window, r.configCallback,
r.assistToken);
在android8.0设备发现一个问题,在androidManifest.xml中已配置了固定的屏幕方向,
但是在应用中,点击设备menu键,选择应用时,此时应用仍然可以旋转。