安卓源码一级目录分析(以RK3399-Android 7.1为例)
最近买了一块Firefly-RK3399开发板来玩,在RK官网下载Android7.1industrySDK源码,编译成功并且生成的文件可以成功烧录和运行。然后对已经编译成功的源码进行分析。
·
最近买了一块Firefly-RK3399开发板来玩,在RK官网下载Android 7.1 industry SDK源码,编译成功并且生成的文件可以成功烧录和运行。然后对已经编译成功的源码进行分析。
首先列出所有一级目录的文件夹和文件,如下图所示:
在查找官方手册和网络资料,可以得到的各目录和文件的主要内容如下:
abi :应用程序二进制接口
dalvik:Dalvik虚拟机
libcore :核心库相关文件
RKDocs:RK官方的说明文档
Android.bp:Android7.0开始代替Android.mk文件,它是告诉ndk将jni代码编译成动态库的一个脚本
developers :开发者目录,包含构建App和一些demo代码
libnativehelper :动态库,实现JNI库的基础
rkst:RK的协程库(statethreadslibrary)
art :全新的ART运行环境
development :与应用成虚开发相关
Makefile :全局Makefile文件,用来定义编译规则
RKTools:RK官方的Tools工具,用于创建、构建、安装和测试 Android 应用程序
bionic:系统C库
device :设备相关配置
mkimage.sh:这个工具可以用来制作不压缩或者压缩的多种可启动映象文件
rockdev:打包生成统一固件会存放在rockdev目录下
bootable:系统启动引导代码
docs:参考文档目录
ndk :快速开发C、 C++的动态库,并自动将so和应用一起打包成 APK
sdk:sdk及模拟器
bootstrap.bash :用来引导模块系统的
external:开源模组相关文件,一些开源第三方组件,例如:glide、junit、dagger2等
out:用来存储编译产生的文件
system:底层文件系统库,应用和组件
build:存放Android系统编译规则,以及generic等基础开发配置包。
FFTools:Firefly官方的工具目录,主要存放编译源码的脚本
packages:系统应用程序包
build-rk3399-all.sh:对RK3399整体编译的脚本
frameworks:核心框架——java及C++语言
pdk:平台开发套件,仅包含了一些供硬件抽象层开发使用的必要组件,供一些 OEM 厂商用来适配及测试最新的Android 系统,加快第三方厂商的更新速度。加快OEM厂商的update速度
toolchain:工具链文件
buildspec.mk:这是一个不做任何事情的模板文件
hardware:部分厂家开源的硬解适配层HAL代码
platform_testing:平台相关的一些测试用例
tools:一个轻量级的 Android 应用开发集成环境,用于创建、构建、安装和测试 Android 应用程序。
compatibility:Android兼容性计划
javaenv.sh:JAVA编译环境的设置
prebuilts:x86和arm架构下预编译的一些资源
u-boot:嵌入式系统的引导加载程序
cts:Android 兼容性测试套件标准
kernel:Linux Kenel 目录
rkbin:binary二进制的程序
vendor:厂商定制代码
更多推荐
已为社区贡献3条内容
所有评论(0)