本文主要是介绍Android SurfaceFlinger——注册监听调用流程(七),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这一篇我们介绍一下 IComposer 中的另一个比较重要的方法,通过注册监听 Hal 层实现监听驱动的关键动作。
一、注册监听
在前面文章 SurfaceFlinger 的 init() 方法中,我们注册了一个 Callback 到 Hal 层中。最终通过 HIDL 调用到 Hal 层。
1、SurfaceFlinger.cpp
源码位置:/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp
void SurfaceFlinger::init() {ALOGI( "SurfaceFlinger's main thread ready to run. " "Initializing graphics H/W...");Mutex::Autolock _l(mStateLock);……mCompositionEngine->setHwComposer(getFactory().createHWComposer(mHwcServiceName));mCompositionEngine->getHwComposer().setCallback(*this);……ALOGV("Done initializing");
}
这里通过 getHwComposer() 获取对应的 HWComposer 实例,然后调用 HWComposer 的 setCallback() 方法设置监听。
SurfaceFlinger::getHwComposer
HWComposer& SurfaceFlinger::getHwComposer() const {return mComposit
这篇关于Android SurfaceFlinger——注册监听调用流程(七)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!