文章仅记录自己的一点理解,仅供自己参考。
这篇文章将详细记录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