应用程序创建layer的流程

本文详细阐述了Android应用程序创建Layer的流程,从WMS的relayoutWindow()开始,经过SurfaceControl的构造,到native层的SurfaceComposerClient创建,最终如何调用到SF层完成Layer的建立。
1:layer的创建过程:在WMS中的relayoutWindow()函数中
在winAnimator.createSurfaceLocked()中,会创建一个surfaceControl:
mSurfaceControl = new SurfaceControl( //这里new出一个SurfaceControl的对象
mSession.mSurfaceSession,
attrs.getTitle().toString(),
width, height, format, flags);
2:在SurfaceControl 的构造函数中:
public SurfaceControl(SurfaceSession session,
String name, int w, int h, int format, int flags)
throws OutOfResourcesException {
创建本地的SurfaceControl 对象
mNativeObject = nativeCreate(session, name, w, h, format, flags);
}

3:在native层:
static jlong nativeCreate(JNIEnv* env, jclass clazz) {
//创建了本地的SurfaceComposerClient的对象,
SurfaceComposerClient* client = new SurfaceComposerClient();
client->incStrong((void*)nativeCreate);
return reinterpret_cast<jlong>(client);
}
4:和bootanimo中创建SurfaceComposerClient的流程一致,最后调用到SF中去创建layer。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值