Android源码下device目录的分析

一般源码的编译前都会执行lunch命令,选择编译目标:
source build/envsetup.sh
lunch BUILD_BUILDTYPE
其中BUILDTYPE可以为user、userdebug、eng,排行越靠后,调试信息越多,权限越大,而其中的BUILD编译目标就是build目录下产品配置信息决定的。

vendorsetup.sh

build目录一般结构为:
build-> company -> product,在product同级的目录下可能有common目录,为所有产品共用。
在product目录下一般有vendorsetup.sh,这个脚本就是在envsetup.sh中被调用,envsetup.sh会遍历并且source源码目录下device和vendor(新版源码不推荐使用)下所有的vendorsetup.sh
vendorsetup.sh内容格式为:

add_lunch_combo rk3288_eng

通过上面语句,lunch菜单中将添加“rk3288_eng”选项。

AndroidProducts.mk

产品的实际属性由product目录下的AndroidProducts.mk,这个文件实际是一个散转,作用为包含其他命名的*.mk文件,这些文件下面可能会有各种以“PRODUCT_”开头的属性:PRODUCT_NAME、PRODUCT_MODEL、PRODUCT_BRAND等等。

BoardConfig.mk

通过上面的AndroidProducts.mk被包含进来,主要描述目标架构、硬件设备属性、编译器条件标识、boot地址、ramdisk大小等一系列硬件参数。

device.mk

也是通过AndroidProducts.mk被包含进来,主要描述该产品需要将哪些软件功能模块编译进镜像。

Android.mk

这个是Android源码树通用的模块Makefile,声明该目录在源码中的存在性。

Android源码中的device目录是指位于AOSP(Android开源项目)根目录下的一个特定目录,用于存放设备制造商特定的代码和配置文件。每个设备制造商都可以在device目录下为自己的设备添加定制化的代码和配置,以便使Android系统在不同的设备上运行时能够充分发挥其功能和性能。 在device目录下,通常会有一个厂商特定的目录,例如"vendor"、"samsung"、"xiaomi"等,然后再细分为各个特定的设备型号目录,例如"samsung/galaxy_s10"、"xiaomi/mi_9"等。每个设备型号目录下都包含了该设备的特定代码、配置文件、驱动程序等。 设备目录中的主要内容包括: 1. 设备配置文件:这些文件定义了设备的特性、硬件配置和功能等,以便Android系统可以正确地与设备硬件交互。 2. 驱动程序:设备目录下可能包含一些特定设备的驱动程序,用于与设备的硬件进行交互和控制,例如屏幕、摄像头、传感器等。 3. 校准文件:某些设备需要进行校准以获得更好的性能和准确性,设备目录下可能包含了这些校准文件。 4. 音频配置文件:设备目录中可能包含某些设备特定的音频配置文件,用于优化音频性能和设置设备的音频参数。 除了上述内容,设备目录下可能还包含一些特定设备的应用程序、ROM文件等。这些内容可以根据设备制造商的需要进行自定义和添加,以实现更好的用户体验和设备性能。 总之,Android源码中的device目录提供了一个平台,让不同的设备制造商能够为自己的设备添加特定的定制代码和配置,以便实现更好的设备适配性和性能优化。这也是Android系统的开放性和可定制性的一个重要体现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值