目录

四个基本ID

模块、类和id之间对应关系图


Android 中 对display 操作时, 从APP, DisplayManagerService, SurfaceFlinger到HWC通信都需要用到display id, 但是, 实际上,每个模块的display id 并不一致, 他们之间有一定的对应关系。 本文梳理各模块间display id对应关系。

四个基本ID

  • DisplayID: DisplayManagerService用于管理display 使用的id, 也是app 能够通过Display.getDisplayId() 得到的ID. 该ID 是按display 加载的顺序确定的, 每加载一个display, id依次增一。 代码:rameworks/base/services/core/java/com/android/server/display/DisplayManagerService.java中assignDisplayIdLocked.
  • PhysicalDisplayID: SurfaceFlinger 中管理display 使用的ID, DisplayManagerService与SurfaceFlinger通信借助该ID. surfaceflinger中根据 mPhysicalDisplayId 找到HWC::Display, 通过HWC::Display中的mid 与hwc 通信, 其中的mId 为HWC给出, 即为下面的client_id.
  • client_id: HWC中定义的ID, 会传递给SurfaceFlinger,  与SurfaceFlinger 通信使用该ID. HWC按照可支持的display 数量和类型的定义:hardware/qcom/display/sdm/libs/hwc2/hwc_session.cpp中HWCSession::InitSupportedDisplaySlots看map_info.client_id赋值。 client_id 与 surfaceflinger 中HWC::Display中的mId 相同。 hwc_session中根据该client_id通过hwc_display_[client_id]找到相应的 HWCDisplay, 该HWCDisplay中记录了sdm_id, 对应底层的display id.
  • sdm_id: display driver传递给HWC的ID.如下log显示display的smd_id:
06-01 06:00:55.319   413  1236 I SDM     : HWCSession::HandlePluggableDisplays:  Handling hotplug... display_info.sdm_id =  3001, info.display_type= 0
06-01 06:00:55.319   413  1236 I SDM     : HWCSession::HandlePluggableDisplays: Handling hotplug... display_info.sdm_id =  3002, info.display_type= 1
06-01 06:00:55.319   413  1236 I SDM     : HWCSession::HandlePluggableDisplays: Handling hotplug... display_info.sdm_id =  3003, info.display_type= 1
06-01 06:00:55.320   413  1236 I SDM     : HWCSession::HandlePluggableDisplays:  Handling hotplug... display_info.sdm_id =  3004, info.display_type= 1

模块、类和id之间对应关系图

Android Display ID 对应关系相关推荐

  1. Android Display System --- Surface Flinger

    SurfaceFlinger 是Android multimedia 的一个部分,在Android 的实现中它是一个service ,提供系统范围内的surface composer 功能,它能够将各 ...

  2. Android Display 之 HAL Gralloc

    1.前言 之前分析过Android HAL层关于hal库是如何加载的一个小框架,源于笔者需要分析Android display框架,Android display HAL层最重要的就是Gralloc和 ...

  3. Android display

    From:     http://blog.csdn.net/bonderwu/archive/2010/08/12/5805961.aspx Android display架构分析(一) http: ...

  4. Android display架构分析-SW架构分析(1-8)

    参考: Android display架构分析二-SW架构分析 Android display架构分析三-Kernel Space Display架构介绍 Android display架构分析四-m ...

  5. 高通Android display架构分析

    目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 K ...

  6. AS插件-Android Layout ID Converter

    概述 是不是厌烦了重复的findViewbyId,这里我们介绍一个Android Studio 插件 –Android Layout ID Converter 下载及安装 下载 github-Offi ...

  7. android:id=@android:id/list,Logcat错误 - 内容必须有一个ListView的id属性是'android.R.id.list'...

    我的列表视图显示这样的错误我在我的问题中提到的事件,尽管我在mainactivity中提到扩展listactivity也和我的布局我把尽可能的ListViewLogcat错误 - 内容必须有一个Lis ...

  8. android设备id完美解决方法,如何在Android中获取唯一的设备硬件ID?

    您可以在下面的链接中查看此博客 [http://android-developers.blogspot.in/2011/03/identifying-app-installations.html] A ...

  9. java 如何获取设备号_java – 如何获取android设备ID?

    如何获取Android设备ID?我不知道什么是"背景". import android.content.Context; import android.provider.Setti ...

  10. android device id 获取主要用于google 服务

    android device id 获取主要用于google 服务 这个功能主要是通过com.google.android.gsf.gservices 这个拿到id 以后,通过TextView 显示出 ...

最新文章

  1. python web框架autoreload原理(以bottle为例)
  2. 关于rc.local启动程序
  3. linux多节点部署,Linux下docker部署+面板portainer管理多节点docker
  4. MLCC噪声啸叫及对策
  5. beanshell断言_JMeter使用BeanShell断言
  6. 69. x 的平方根 golang
  7. Reset Password 重置密码 (CentOS 5,6,7 ; Juniper Networks: SRX100 )
  8. Web Application Security 网络应用程序安全 - (二)2010年网络安全威胁排行榜TOP 10...
  9. 2026.静态分析工具pclint
  10. C语言 - 数组作为参数传递给函数(按值传递和按引用传递)
  11. 最后7天!阿里云2020云内存数据库峰会现场参会报名中
  12. 计算机温度控制系统论文,基于单片机的温度采集控制系统
  13. 微信多开无法连接服务器,ios丨微信多开联网失败解决方法
  14. Prometheus监控报警系统入门
  15. Matlab的fprintf函数使用百分号问题
  16. 镇雄县赤水源品区域公用品牌介绍——中国赤水河源 好品世界珍享
  17. ABP理论学习之数据过滤器
  18. 好事成双--庆祝牛郎织女一年一次的见面
  19. 弘辽科技:B站携手阿里入股如涵 UP主里要诞生下一个李佳琦?
  20. 谨以此文献给才毕业一两年的朋友(出自一个网友的文章)

热门文章

  1. Mac查看本地ip地址
  2. 能上QQ不能打开网页的情况之一
  3. 电信无限流量卡为什么无服务器,为什么移动、联通、电信4G无限流量卡都必须限速,怎么回事?...
  4. [转载]一位也许是真正的hack说的话
  5. hdu5514 Frogs(容斥原理)
  6. 关于C语言两个小游戏的提示和源码(猜词游戏与控制移动游戏)
  7. DirectSound学习(二)--流式缓冲区
  8. word中mathtype的公式后面的光标位置
  9. php 微信公众号超链接,微信公众帐号开发教程第8篇-文本消息中使用网页超链接_PHP教程...
  10. 自动窗宽窗位的一些思路