最近买了一块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:厂商定制代码
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐