Android Display ID 对应关系
目录
四个基本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 对应关系相关推荐
- Android Display System --- Surface Flinger
SurfaceFlinger 是Android multimedia 的一个部分,在Android 的实现中它是一个service ,提供系统范围内的surface composer 功能,它能够将各 ...
- Android Display 之 HAL Gralloc
1.前言 之前分析过Android HAL层关于hal库是如何加载的一个小框架,源于笔者需要分析Android display框架,Android display HAL层最重要的就是Gralloc和 ...
- Android display
From: http://blog.csdn.net/bonderwu/archive/2010/08/12/5805961.aspx Android display架构分析(一) http: ...
- Android display架构分析-SW架构分析(1-8)
参考: Android display架构分析二-SW架构分析 Android display架构分析三-Kernel Space Display架构介绍 Android display架构分析四-m ...
- 高通Android display架构分析
目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 K ...
- AS插件-Android Layout ID Converter
概述 是不是厌烦了重复的findViewbyId,这里我们介绍一个Android Studio 插件 –Android Layout ID Converter 下载及安装 下载 github-Offi ...
- android:id=@android:id/list,Logcat错误 - 内容必须有一个ListView的id属性是'android.R.id.list'...
我的列表视图显示这样的错误我在我的问题中提到的事件,尽管我在mainactivity中提到扩展listactivity也和我的布局我把尽可能的ListViewLogcat错误 - 内容必须有一个Lis ...
- android设备id完美解决方法,如何在Android中获取唯一的设备硬件ID?
您可以在下面的链接中查看此博客 [http://android-developers.blogspot.in/2011/03/identifying-app-installations.html] A ...
- java 如何获取设备号_java – 如何获取android设备ID?
如何获取Android设备ID?我不知道什么是"背景". import android.content.Context; import android.provider.Setti ...
- android device id 获取主要用于google 服务
android device id 获取主要用于google 服务 这个功能主要是通过com.google.android.gsf.gservices 这个拿到id 以后,通过TextView 显示出 ...
最新文章
- python web框架autoreload原理(以bottle为例)
- 关于rc.local启动程序
- linux多节点部署,Linux下docker部署+面板portainer管理多节点docker
- MLCC噪声啸叫及对策
- beanshell断言_JMeter使用BeanShell断言
- 69. x 的平方根 golang
- Reset Password 重置密码 (CentOS 5,6,7 ; Juniper Networks: SRX100 )
- Web Application Security 网络应用程序安全 - (二)2010年网络安全威胁排行榜TOP 10...
- 2026.静态分析工具pclint
- C语言 - 数组作为参数传递给函数(按值传递和按引用传递)
- 最后7天!阿里云2020云内存数据库峰会现场参会报名中
- 计算机温度控制系统论文,基于单片机的温度采集控制系统
- 微信多开无法连接服务器,ios丨微信多开联网失败解决方法
- Prometheus监控报警系统入门
- Matlab的fprintf函数使用百分号问题
- 镇雄县赤水源品区域公用品牌介绍——中国赤水河源 好品世界珍享
- ABP理论学习之数据过滤器
- 好事成双--庆祝牛郎织女一年一次的见面
- 弘辽科技:B站携手阿里入股如涵 UP主里要诞生下一个李佳琦?
- 谨以此文献给才毕业一两年的朋友(出自一个网友的文章)
热门文章
- Mac查看本地ip地址
- 能上QQ不能打开网页的情况之一
- 电信无限流量卡为什么无服务器,为什么移动、联通、电信4G无限流量卡都必须限速,怎么回事?...
- [转载]一位也许是真正的hack说的话
- hdu5514 Frogs(容斥原理)
- 关于C语言两个小游戏的提示和源码(猜词游戏与控制移动游戏)
- DirectSound学习(二)--流式缓冲区
- word中mathtype的公式后面的光标位置
- php 微信公众号超链接,微信公众帐号开发教程第8篇-文本消息中使用网页超链接_PHP教程...
- 自动窗宽窗位的一些思路