Android_View_ViewGroup_Window

类图记录View_ViewGroup_Window

其中,View 和ViewGroup 是组合关系, View 依附在Window上,Window呈现给用户

1. DecorView

(1)  DecorView 是android 隐藏的类(com.android.internal.policy), 由各个厂商自定义实现。 

它是Window 上最顶层的View,  它也是FrameLayout的子类。(包括actionbar / content /navigation bar?)

/** @hide */
public class DecorView extends FrameLayout implements RootViewSurfaceTaker, WindowCallbacks {

(2) 获取DecorView实例

在Window 抽象类中定义接口 getDecorView():

Window.java

    /**
     * Retrieve the top-level window decor view (containing the standard
     * window frame/decorations and the client's content inside of that), which
     * can be added as a window to the window manager.
     *
     * <p><em>Note that calling this function for the first time "locks in"
     * various window characteristics as described in
     * {@link #setContentView(View, android.view.ViewGroup.LayoutParams)}.</em></p>
     *
     * @return Returns the top-level window decor view.
     */
    public abstract @NonNull View getDecorView();

参考源码:com.android.internal.policy

https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/com/android/internal/policy/DecorView.java

https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/com/android/internal/policy/PhoneWindow.java

包 : android.view

https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/android/view/View.java

https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/android/view/ViewGroup.java

https://android.googlesource.com/platform/frameworks/base.git/+/master/core/java/android/view/Window.java

2. Window结构:

Application --->
  Activity --->
    Window Manager --->
      Window --->
        Surface ---> 
          Canvas --->
            View Root ---> 
              View Group --->
                View ---> 
                  Bitmap/Open GL panel ---> 
                    Current Surface Buffer ---> 
                      Surface Flinger --->
                        Screen

参考:https://stackoverflow.com/questions/9451755/what-is-an-android-window

https://stackoverflow.com/questions/4576909/understanding-canvas-and-surface-concepts#answers

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值