源码解析之setContentView

分享一下我以前学习时做到PPT中的一部分。

不难看出其实设置布局是由PhoneWindow来完成的。

然而我们要记住DecorView:

包括:状态栏,标题栏,内容

phoneWindow -> DecorView 内部类

DecorView extends FrameLayout

private View mNavigationGuard;

private View mStatusGuard;

…

进行draw()

PhoneWindow extends Window中会通过installDecor()进行绘图操作。

installDecor(){

 mDecor.makeOptionalFitsSystemWindows();

 mTitleView= (TextView)findViewById(com.androidinternal.R.id.title);

 mActionBar…

 mContentParent…

…

}

绘图过程其实比较复杂的大体上可以用如下图说明。

会通过ViewRoot,AMS来完成,有关ViewRoot网上有很多资料可以参考其他资料。

 最终会把一些大小,位置会写入Surface输出到LCD中。

原文地址:https://www.cnblogs.com/hongguang-kim/p/4874881.html