Android_device_tree_structure

本文详细介绍了Android系统的目录结构和文件组织方式,涵盖了从编译环境到目标文件的全过程,包括核心组件如Dalvik虚拟机、系统镜像等内容。
-----Android_device_tree_structure----

build/ – 编译环境和makefile - Build environment setup and makefiles  
bionic/ – 安卓C库 - Android C library 
dalvik/ – 安卓虚拟机 - Android JVM 
kernel/ – 内核 - Linux kernel 
framework/ – framework层 - Android platform layer (system libraries and Java components) 
system/ – 安卓系统 - Android system (utilities and libraries, fastboot, logcat, liblog) 
external/ – 额外的开源 - Non-Android-specific Open Source projects required for Android 
prebuilt/ – 预编译for交叉编译- Precompiled binaries for building Android, e.g., cross-compilers 
packages/ – 标准安卓应用包 - Standard Android Java applications and components 
development/ – 开发app工具 - Android reference applications and tools for developers 
hardware/ – 音频、传感器等硬件封装- HAL (audio, sensors) and Qualcomm specific hardware wrappers 
vendor/qcom/ – 高通设备定义 - Qualcomm target definitions, e.g., msm7201a_surf 
vendor/qcom-proprietary/ – 高通专有部分 - Qualcomm-proprietary components, for example, MM, QCRIL, 
and so on. 
out/ – Built files created by user 
    out/host/ – Host executables created by the Android build 
    out/target/product/<product> – 编译生成的目标文件 - Target files 
    appsboot*.mbn – 应用引导装载程序 - Applications boot loader - bootable/bootloader/ 

        boot.img – 安卓启动镜像 - Android boot image (Linux kernel + root FS) 
        system.img – 安卓系统镜像 - Android components (/system) 
        userdata.img – 安卓开发应用和数据库镜像 - Android development applications and database 
        root/ – Root FS directory, which compiles into ramdisk.img and merged into boot.img 
        system/ – System FS directory, which compiles into system.img 
        obj/ – 中间对象文件 - Intermediate object files 
            include/ – 编译的头文件 - Compiled include files from components 
            lib/
            STATIC_LIBRARIES/     
            SHARED_LIBRARIES/     
            EXECUTABLES/    
            APPS/ 
symbols/ – Symbols for all target binaries 


-----Android_target_tree_structure-----
/ – Root directory (ramdisk.img, read-only) 
    init.rc – Initialization config files (device config, service startups) init.qcom.rc  
    dev/ – Device nodes 
   proc/ – Process information 
   sys/ – System/kernel configuration 
   sbin/ – System startup binaries (ADB daemon; read-only) 
   system/ – From system.img (read-write) 
        –  bin/ – Android system binaries 
        –  lib/ – Android system libraries 
        –  xbin/ – Nonessential binaries 
        –  framework/ – Android framework components (Java) 
        –  app/ – Android applications (Java) 
        –  etc/ – Android configuration files 
   sdcard/ – Mount point for SD card 
   data/ – From userdata.img (read-write) 
        –  app/ – User installed Android applications 
        –  tombstones/ – Android crash logs 



                MPSS(AZM)
                WCNSS(AZW)
                Boot loader(AZB)
Product Metabuild (LYD) ------- RPM(AZR)    
                Trust Zone(AZT)
                Proprietary HLOS(LYA)
                Open Source HLOS(CAF)
### 调整 `ro.sf.lcd_density` 的合理值及其设置方法 #### 一、什么是 `ro.sf.lcd_density` `ro.sf.lcd_density` 是 Android 系统中的一个重要属性,用于表示屏幕像素密度(Screen Density)。它决定了 UI 元素在屏幕上显示的比例大小。通常情况下,该值由设备制造商预设,但如果需要适配不同的显示器或调试界面布局,则可以通过修改此参数来实现。 合理的 `ro.sf.lcd_density` 值取决于实际物理屏幕尺寸和分辨率。计算公式如下: \[ \text{Density} = \sqrt{\left(\frac{\text{Width}}{\text{Physical Width (in)}}\right)^2 + \left(\frac{\text{Height}}{\text{Physical Height (in)}}\right)^2} \] 其中: - **Width 和 Height** 表示屏幕的水平和垂直像素数; - **Physical Width/Height (in)** 表示屏幕的实际宽度和高度(单位为英寸)。 最终得到的结果四舍五入取最接近的标准 DPI 值即可[^1]。 --- #### 二、如何设置 `ro.sf.lcd_density` ##### 方法 1:通过 ADB 修改临时生效 如果仅需测试不同 LCD 密度的效果而不影响原始系统配置,可以利用 adb 工具动态更改 `ro.sf.lcd_density` 参数: ```bash adb root adb shell settings put global density_override <value> ``` 这里的 `<value>` 即为目标 DPI 数字。例如,将屏幕密度更改为 320 可执行命令: ```bash adb shell settings put global density_override 320 ``` 注意:这种方式不会永久改变 `/system/build.prop` 文件内容,在重启设备后会恢复原状[^2]。 --- ##### 方法 2:编辑 build.prop 实现持久化变更 为了使新的 LCD 密度设定长期有效,可直接操作系统的 `build.prop` 配置文件。具体步骤如下: 1. 使用 adb 获取超级用户权限并挂载分区为读写模式: ```bash adb root adb remount ``` 2. 编辑 `/system/build.prop` 添加或者更新以下行: ```properties ro.sf.lcd_density=<desired_value> ``` 替代 `<desired_value>` 为你期望的新数值。比如要指定 dpi 为 480 则应输入: ```properties ro.sf.lcd_density=480 ``` 3. 完成修改之后保存退出再重新启动手机让改动生效: ```bash adb reboot ``` 这种方法适用于开发者环境下的自定义需求场景下使用[^3]。 --- ##### 方法 3:源码编译阶段定制 针对某些特定硬件平台如高通骁龙系列芯片组开发时,还可以考虑从源头上调整 lcd_density 默认初始化行为。这涉及到了解对应厂商 BSP (Board Support Package)文档资料,并找到类似下面这样的 Makefile 或者 Kconfig 中的相关条目进行适当调整: ```makefile PRODUCT_PROPERTY_OVERRIDES += \ ro.sf.lcd_density=240 ``` 上述例子展示了怎样把默认屏幕密度固定至每英寸点阵数量等于 240 。当然确切位置依据项目结构有所不同可能位于 device tree blob dtb files 当中也有可能是在 kernel command line parameters list inside boot image header structure etc.[^4]. --- ### 总结 综上所述,无论是短期试验还是长久部署都可以采用相应手段灵活控制 android 设备上的 ro.sf.lcd_density 参数从而满足个性化视觉体验的需求.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值