1 APP端建立一个surface空的容器
2 APP通过binder将surface给到WMS,请求填充
3 wms为了填充surface 向SF申请真正的图层
4 sf收到请求后向wms请求分配真正的图层。
5将图层信息handler传递给WMS,回传给app层。
6 APP控制surface利用surfacecontrol与sf通讯。
@Override
public void setAppVisibility(IBinder token, boolean visible) {
if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS,
"setAppVisibility()")) {
throw new SecurityException("Requires MANAGE_APP_TOKENS permission");
}
AppWindowToken wtoken;
synchronized(mWindowMap) {
wtoken = findAppWindowToken(token);//通过ActivityRecord:Token找到AppWindowToken,即找到这个token对应的Activity窗口
if (wtoken == null) {
Slog.w(TAG_WM, "Attempted to set visibility of non-existing app token: " + token);
return;
}
if (DEBUG_APP_TRANSITIONS || DEBUG_ORIENTATIO
来源:oschina
链接:https://my.oschina.net/u/4411837/blog/4504843