master
Omooo 6 years ago
parent b16737fc58
commit 2c35cf6514
  1. 53
      blogs/Android/View 工作原理.md

@ -0,0 +1,53 @@
---
View 工作原理
---
#### 目录
1. 思维导图
2. 概述
3.
4. 参考
#### 思维导图
#### 概述
1. 初始化 PhoneWindow 和 WindowManager
2.
#### 步骤一:初始化 PhoneWindow 和 WindowManager
在 Activity 的 onCreate、onStart、onResume 等生命周期被调用之前,attach 方法将先会被调用,因此将 attach 方法作为这篇文章主线的开头:
```java
// Activity#attach():
final void attach(...) {
attachBaseContext(context);
//初始化 PhoneWindow
mWindow = new PhoneWindow(this, window, activityConfigCallback);
//初始化 WindowManager
mWindow.setWindowManager(
(WindowManager)context.getSystemService(Context.WINDOW_SERVICE),
mToken, mComponent.flattenToString(),
(info.flags & ActivityInfo.FLAG_HARDWARE_ACCELERATED) != 0);
mWindowManager = mWindow.getWindowManager();
}
// Window#setWindowManager():
public void setWindowManager(WindowManager wm, IBinder appToken, String appName,
boolean hardwareAccelerated) {
//...
if (wm == null) {
wm = (WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE);
}
mWindowManager = ((WindowManagerImpl)wm).createLocalWindowManager(this);
}
```
#### 参考
Loading…
Cancel
Save