学习display

理解HTML元素的display属性及其用法
本文详细解析HTML元素的display属性,包括常见值的含义与效果,如block、inline、none等,并对比display:none与Visibility:hidden的区别。通过实例帮助开发者掌握如何合理运用display属性来控制元素布局。
一、常用display
1、div{display:block} 有换行作用。
2、div{display:None } 隐藏对象及对象内容。
3、div{display:Inline } 在一排显示。
二、各种值
block :此元素将显示为块级元素,此元素前后会带有换行符。
none :隐藏对象。与visibility属性的hidden值不同(下面)
inline :内联对象的默认值。此元素前后不会带有换行符。
inherit 规定应该从父元素继承 display 属性的值。
inline-block 行内块元素。(CSS2.1 新增的值)
list-item 此元素会作为列表显示。
run-in 此元素会根据上下文作为块级元素或内联元素显示。
table 此元素会作为块级表格来显示(类似 <table>),表格前后带有换行符。
inline-table 此元素会作为内联表格来显示(类似 <table>),表格前后没有换行符。
table-row-group 此元素会作为一个或多个行的分组来显示(类似 <tbody>)。
table-header-group 此元素会作为一个或多个行的分组来显示(类似 <thead>)。
table-footer-group 此元素会作为一个或多个行的分组来显示(类似 <tfoot>)。
table-row 此元素会作为一个表格行显示(类似 <tr>)。
table-column-group 此元素会作为一个或多个列的分组来显示(类似 <colgroup>)。
table-column 此元素会作为一个单元格列显示(类似 <col>)
table-cell 此元素会作为一个表格单元格显示(类似 <td> 和 <th>)
table-caption 此元素会作为一个表格标题显示(类似 <caption>)
三、display:none与Visibility:hidden的区别
Visibility:当元素被隐藏之后,就不能再接收到其它事件了,是隐藏元素但保持元素的浮动位置,
display:  display实际上是设置元素的浮动特征。display被设置:none,这时元素实际上就从页面中被移走,它下面所在的元素就会被自动跟上填充。
<think>嗯,用户想学习Android QCOM显示相关的知识。从用户的问题来看,ta应该是嵌入式开发或Android系统开发的工程师,需要深入了解高通平台的显示子系统。 用户可能刚接触这个领域,需要系统性的学习路径。考虑到Android显示系统本身就很复杂,加上高通平台的私有实现,学习曲线会比较陡峭。我应该帮ta梳理清楚知识框架,避免一开始就陷入细节。 从提供的引用材料来看,内容涉及显示架构、MDP处理器、DRM模块、开机logo加载机制等。这些确实是QCOM显示的核心模块,但引用比较零散,需要我重新组织成逻辑连贯的体系。 特别注意到用户引用的章节提到了UEFI环境下的显示初始化,这个通常是在bootloader阶段完成的。看来用户的学习需求可能覆盖从底层驱动到上层框架的全栈知识。 在组织回答时,应该按从整体到局部、从抽象到具体的顺序: 先说明Android显示系统的通用架构,再突出高通的特有组件 重点解释MDP和SDE这些专属硬件模块的作用 补充开机流程中显示初始化的特殊机制 最后给出具体的学习资源路径 用户可能最关心的是实际开发中的重点难点,比如: 如何调试屏幕闪烁问题 怎样优化显示功耗 开机logo定制化的方法 这些实操性内容应该放在知识框架中适当位置 考虑到用户是工程师,回答要兼顾理论性和实践性。既要讲清楚技术原理,也要给出查看代码的具体路径(比如内核驱动位置、HAL接口文件等) 最后生成的问题要能引导用户深化学习,比如关于DRM框架的深入原理,或是MDP的带宽优化技巧。这些问题应该覆盖用户可能遇到的典型工作场景。</think>以下是Android QCOM显示系统的学习路径与核心知识梳理,结合高通平台特性整理: --- ### **一、Android显示系统分层架构** ```mermaid graph TD A[应用层] -->|SurfaceFlinger| B[Android框架层] B -->|HWC/HAL| C[硬件抽象层HAL] C -->|MDP/SDE驱动| D[内核驱动层] D -->|DSI/DP接口| E[物理显示设备] ``` --- ### **二、高通显示核心组件** 1. **MDP/SDE (Display Processor)** - 高通专属显示处理单元,负责图层合成、色彩管理、分辨率转换 - 关键能力: $$ \text{Throughput} = \sum_{i=1}^{n} (LayerWidth_i \times LayerHeight_i \times RefreshRate) $$ *需满足总线带宽限制* 2. **DRM/KMS (Direct Rendering Manager)** - 内核级显示资源管理框架 - 高通实现:`msm_drm` 驱动模块 - 控制流程: ```c drmModeSetCrtc(crtc_id, buffer_id, x, y, &connector_id, 1, mode); ``` 3. **显示流水线 (Display Pipeline)** ```plaintext AP → MDP → DSI控制器 → PHY → LCD面板 ↘ DP接口 → Type-C ``` --- ### **三、关键学习模块** 1. **显示初始化流程** - Bootloader阶段加载Logo(参考引用[3]): ```c DisplayUtilsRenderLogo() → LoadFile("logo_720x1280.bmp") ``` - UEFI显示协议:`gQcomDisplayUtilsProtocolGuid` 2. **HAL层实现** - 源码位置:`hardware/qcom/display/` - 核心接口: - `hwc_composer_device_1_t` :合成策略控制 - `qService->getDisplayConfig()` :获取EDID数据 3. **面板驱动调试** - DSI时序配置: ```c struct dsi_display_mode timing = { .h_active = 1080, .v_active = 2400, .refresh_rate = 120 // Hz }; ``` - 背光控制:`PWM或WLED驱动` --- ### **四、实战调试技巧** 1. **日志过滤命令** ```bash adb logcat | grep -E "SDE|MDP|DSI" ``` 2. **关键内核节点** - 显示状态:`/d/dri/0/debug/dump` - 带宽监测:`/sys/kernel/debug/dri/0/perf` 3. **功耗优化点** - 动态刷新率(DFS):`sys/class/drm/card0/display_*` - 区域刷新(ROI):通过`SDE_UPDATE_DIRTY_REGIONS`启用 --- ### **五、学习资源建议** 1. **官方文档** - [高通显示架构白皮书](https://www.qualcomm.com) (需NDA账号) 2. **代码路径** - 驱动核心:`kernel/msm-xxx/drivers/gpu/drm/msm/` - HAL实现:`vendor/qcom/opensource/display/` 3. **调试工具** - QPST工具套件中的Display Analyzer ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值