WindowManagerService之AppWindowAnimator笔记

文章仅记录自己的一点理解,仅供自己参考。

这篇文章将详细记录AppWindowAnimator中的主要成员变量及函数的作用。

AppWindowAnimator是Activity动画类。每一个Activity对象在WMS中对应一个AppWindowToken对象,而AppWindowToken中包含一个AppWindowAnimator对象,也就是说一个Activity便对应有一个AppWindowAnimator对象,这个对象保存在与Activity对应的AppWindowToken中。这个从AppWindowToken的构造函数中可以看出来:

    AppWindowToken(WindowManagerService _service, IApplicationToken _token) {
        super(_service, _token.asBinder(),
                WindowManager.LayoutParams.TYPE_APPLICATION, true);
        appWindowToken = this;
        appToken = _token;
        mInputApplicationHandle = new InputApplicationHandle(this);
        mAnimator = service.mAnimator;
        mAppAnimator = new <span style="color:#cc0000;background-color: rgb(255, 255, 255);">AppWindowAnimator</span>(this);
    }

1、mAppToken

new一个AppWindowAnimator时把this(AppWindowToken)作为参数传进去,保存在AppWindowAnimator.mAppToken中,换句话说就是mAppToken保存的是该动画是属于哪个AppWindowToken的,进一步说就是属于哪个Activity的。

    public AppWindowAnimator(final AppWindowToken atoken) {
        <span style="color:#ff6666;">mAppToken </span>= <span style="color:#ff6666;">atoken</span>;
        mService = atoken.service;
        mAnimator = atoken.mAnimator;
    }

2、

WindowManagerService之AppWindowAnimator笔记,布布扣,bubuko.com

时间: 2024-11-01 21:30:16

WindowManagerService之AppWindowAnimator笔记的相关文章

ViewRootImpl和WindowManagerService笔记

1.每一个窗口的ViewRootImpl都有一个mWindowAttributes窗口属性,该属性在WindowManagerGlobal.updateViewLayout()->ViewRootImpl.setView()和WindowManagerGlobal.updateViewLayout->ViewRootImpl.setLayoutParams()中赋值,同时ViewRootImpl.mWindowAttributesChanged也会设为true表示窗口属性已更改,当窗口属性更改

DisplayContent、StackBox、TaskStack笔记

文章仅记录自己的一点理解,仅供自己参考. 每个显示设备,都有一个Display对象,DisplayManagerService专门管理这些Display. 1.DisplayContent() <span style="font-size:18px;"> DisplayContent(Display display, WindowManagerService service) { mDisplay = display; mDisplayId = display.getDis

java/android 设计模式学习笔记(9)---代理模式

这篇博客我们来介绍一下代理模式(Proxy Pattern),代理模式也成为委托模式,是一个非常重要的设计模式,不少设计模式也都会有代理模式的影子.代理在我们日常生活中也很常见,比如上网时连接的代理服务器地址,更比如我们平时租房子,将找房子的过程代理给中介等等,都是代理模式在日常生活中的使用例子. 代理模式中的代理对象能够连接任何事物:一个网络连接,一个占用很多内存的大对象,一个文件,或者是一些复制起来代价很高甚至根本不可能复制的一些资源.总之,代理是一个由客户端调用去访问幕后真正服务的包装对象

Android开发笔记

一.Android的体系结构 1.1 体系结构 从下往上进行层概述: Linux内核层: 该层主要的作用是:对系统进行管理例如:驱动管理,电源管理,进程管理,安全管理,内存管理等等. 硬件抽象层: 该层主要的作用是:对Linux底层实现进行屏蔽,向上提供接口,该层不开源,主要是为了维护商家的利益,但是会影响系统的性能 Android对硬件的支持分为两层:一层是用户空间,另一层是内核空间, 用户空间存放的是:硬件抽象层,该层提供具体的访问细节 内核空间存放的是:Linux驱动程序,该层只是提供简单

《深入理解Android 卷III》第四章 深入理解WindowManagerService

<深入理解Android 卷III>即将公布,作者是张大伟.此书填补了深入理解Android Framework卷中的一个主要空白.即Android Framework中和UI相关的部分.在一个特别讲究颜值的时代,本书分析了Android 4.2中WindowManagerService.ViewRoot.Input系统.StatusBar.Wallpaper等重要"颜值绘制/处理"模块 第4章  深入理解WindowManagerService(节选) 本章主要内容: ·

Android4.4之Input模块笔记

在InputReader从EventHub中获取输入事件,包含触摸屏事件.物理按键事件等,然后转交给InputDispatcher线程,InputDispatcher经过筛选,过滤输入事件.对于触摸事件通过调用findTouchedWindowTargetsLocked()函数找到合适的InputTarget,然后通过dispatchEventLocked()->prepareDispatchCycleLocked()->enqueueDispatchEntriesLocked()->e

Android在WindowManagerService和ActivityManagerService中的Token

https://upload-images.jianshu.io/upload_images/5688445-6cf0575bb52ccb45.png 1. ActivityRecord中的token ActivityRecord在ActivityStackSupervisor的startActivityLocked初始化 http://androidxref.com/6.0.1_r10/xref/frameworks/base/services/core/java/com/android/se

【安全牛学习笔记】

弱点扫描 ╋━━━━━━━━━━━━━━━━━━━━╋ ┃发现弱点                                ┃ ┃发现漏洞                                ┃ ┃  基于端口五福扫描结果版本信息(速度慢)┃ ┃  搜索已公开的漏洞数据库(数量大)      ┃ ┃  使用弱点扫描器实现漏洞管理            ┃ ╋━━━━━━━━━━━━━━━━━━━━╋ [email protected]:~# searchsploit Usage:

51CTO持续更新《通哥的运维笔记》

<通哥的运维笔记>将持续在51CTO网站更新,希望大家多多关注.互相学习,后期,我将会退出<通哥的运维笔记>系列视频教程,希望带给大家最大的收获,帮助大家更好的学习.进步.<通哥的运维笔记>主要从linux系统管理.虚拟化.cloudstack云平台以及网络管理之CCNA.CCNP.CCIE,等等方面深入讲解.