天天看点

Android系统10 RK3399 init进程启动(十二) 产品配置结构

说明

系统:Android10.0

设备: FireFly RK3399 (ROC-RK3399-PC-PLUS)

前言

         Android源码是可以运行在多种架构, 多种SOC上的,必然就有硬件客制化的代码,这些代码一般都是SOC原厂, ODM/OEM公司在Android中对各种底层硬件进行适配的代码,   所以编译源码必定会通过一定的配置来选择那些客制化的代码, 而这个就是通过产品配置来完成。本章重点介绍Android源码中产品配置结构,方便大家对产品配置有一个整体认识

一, 产品概念        

        产品的概念其实很容易理解, 一个soc,配置好相关的外围电路和外围设备, 就组合成了一套完整的硬件, 该套硬件可以进行自由定制,最终变成产品, 比如一套完整的开发板, 可以做成平板, 也可以做成机顶盒, 在代码层进行控制,将平板和机顶盒中不同的外设进行配置,就可以完成一套代码兼容多种产品的目的。

二,产品配置结构

在Android源码中有几个重要的目录,用于产品配置主要集中在源码中的device/, build/target/, vendor目录,架构如下:

Android系统10 RK3399 init进程启动(十二) 产品配置结构

其实产品配置相关的目录集中在源码的device/,  build/target/,  vendor目录下。

AOSP源码目录如下所示:

ls build/target

Android.mk  board  product

ls device/

common  generic  google  linaro  sample

rk3399源码目录目录如下:

├── device

        ├── rockchip

        ├── common

        ├── rk3126c

        ├── ....省略

        └── rk3399

└── vendor

        ├── firefly

        ├── rockchip

        └── widevine

├── build/target

        ├── board

        ├── OWNERS

        └── product

总结

继续阅读