• Android SurfaceFlinger——注册监听调用流程(七)


            这一篇我们介绍一下 IComposer 中的另一个比较重要的方法,通过注册监听 Hal 层实现监听驱动的关键动作。

    一、注册监听

            在前面文章 SurfaceFlinger 的 init() 方法中,我们注册了一个 Callback 到 Hal 层中。最终通过 HIDL 调用到 Hal 层。

    1、SurfaceFlinger.cpp

    源码位置:/frameworks/native/services/surfaceflinger/SurfaceFlinger.cpp

    1. void SurfaceFlinger::init() {
    2. ALOGI( "SurfaceFlinger's main thread ready to run. " "Initializing graphics H/W...");
    3. Mutex::Autolock _l(mStateLock);
    4. ……
    5. mCompositionEngine->setHwComposer(getFactory().createHWComposer(mHwcServiceName));
    6. mCompositionEngine->getHwComposer().setCallback(*this);
    7. ……
    8. ALOGV("Done initializing");
    9. }

            这里通过  getHwComposer() 获取对应的 HWComposer 实例,然后调用 HWComposer 的 setCallback() 方法设置监听。

    SurfaceFlinger::getHwComposer

    1. HWComposer& SurfaceFlinger::getHwComposer() const {
    2. return mComposit
  • 相关阅读:
    k8s客户端配置
    Android AGP8.1.0组件化初探
    h5+js 移动端监听点击、移动、松开,获取鼠标位置
    03 光栅图形学算法-- 裁剪算法
    Redis 配置文件
    uniapp 高度铺满全屏
    docker镜像管理-实操
    Dubbo-RPC核心接口介绍
    规范 Git 提交说明
    hexo主题应用
  • 原文地址:https://blog.csdn.net/c19344881x/article/details/139674577