android 11系统源码置dpi流程
时间: 2023-10-22 22:04:02 浏览: 211
Android11系统源代码
5星 · 资源好评率100%
在 Android 11 系统中,DPI 的设置是与 Display Metrics 相关的,因此需要在系统源码中进行设置。
以下是在 Android 11 源码中设置 DPI 的大致流程:
1. 在系统启动时,会读取 `/system/build.prop` 文件中的 `ro.sf.lcd_density` 属性值,并将其转换为 Display Metrics 中的 densityDpi 值。
2. 在 `frameworks/base/core/java/android/view/DisplayInfo.java` 文件中,定义了 Display Metrics 的各项属性值,包括 densityDpi。
3. 在 `frameworks/base/core/java/android/hardware/display/DisplayManagerGlobal.java` 文件中,定义了获取 Display Info 的方法 `getDisplayInfo(displayId, outDisplayInfo)`,其中 outDisplayInfo 包含了 Display Metrics 的各项属性值。
4. 在 `frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java` 文件中,定义了设置 Display Metrics 的方法 `setInitialDisplaySize(displayId, width, height, densityDpi)`,这个方法会将 Display Metrics 的各项属性值写入到系统属性中。
5. 在 `frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java` 文件中,定义了读取系统属性的方法 `getInitialDisplayDensity(displayId)`,这个方法会从系统属性中读取 densityDpi 值,并将其返回。
6. 在 `frameworks/base/services/core/java/com/android/server/wm/WindowManagerService.java` 文件中,定义了获取 Display Info 的方法 `getDisplayInfo(displayId)`,这个方法会调用 `getDisplayInfo(displayId, outDisplayInfo)` 方法,并将 outDisplayInfo 中的 Display Metrics 信息返回。
通过以上流程,就可以在 Android 11 系统中设置 DPI 值,并在运行时获取到 DPI 值。
阅读全文