WindowManagerService之AppWindowAnimator筆記,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、