源码版本:AOSP_7.1.1

硬件平台:Rockchip

由于工作要求,需要对rockchip平台的安卓系统进行剪裁。安卓源码比较庞大,会让人感到无从下手,对此,有必要了解一下源码的大致目录结构以及各个部分功能模块,做到知己知彼百战不殆,才能快速定位具体的位置。

![img](file:///C:/Users/ADMINI~1/AppData/Local/Temp/enhtmlclip/Image.png)

Art

  • Bionic - C library for android ,安卓平台上的C库,和glibc还是有些许差别的,其中pthread_cancel在biobic中就被弃用了,具体可以参考wiki https://en.wikipedia.org/wiki/Bionic_(software)

  • Bootable - 系统启动部分的代码

    • recovery - 手机备份、刷机、恢复出厂设置功能代码。
  • Build - 构建系统所需要的各种文件,包括 envsetup.sh

  • Cts - 兼容性测试相关的代码。

  • Dalvik - 实现Dalvik虚拟机的相关代码。

  • Development - 与开发相关的项目,包括ndk以及sdk等内容,以下仅列出部分目录,这部分应该不需要重点关注

    • apps
    • build
    • cmds
    • docs
    • ide
    • ndk
    • sdk
    • tools
  • Device - 不同设备的产品特定代码。这里可以找到不同Nexus设备的硬件模块,构建配置等等。

  • External - 包含相关外部开源项目的源代码,同时也可以加入自定义的代码到此文件夹下,将应用添加到ROM中。

  • Frameworks - 安卓框架,这个文件夹相当重要,这里包括了安卓系统的相应Service、Activity、View的实现,以及各种jni等等,以下仅仅列出部分内容,这一块相应的资料较多,需要深入了解。

    • av
    • base
    • opengl
    • services
    • policy
  • Hardware - 硬件相关源代码,如Android硬件抽象层规范和实现。该文件夹还包含参考无线接口层(与调制解调器端通信)实现。

  • Kernel - 内核

  • libcore - 核心库,包括加密,dalvik虚拟机,json,xml,

  • libnativehelper - ndk的帮助文件

  • Out - 在运行make之后,构建输出将放置在此处。文件夹结构out/target/product/。在模拟器的默认构建中,输出将放置在out / target / product / generic中。这是您可以在其中找到模拟器用于启动的图像(或者如果您正在构建硬件目标,则将其下载并闪存到设备)。

  • Packages - 标准安卓默认应用程序的源代码,如联系人,日历,浏览器。

  • Prebuilt - 包括用于不同开发机器的交叉编译工具链,以及模拟器。

  • System - 核心Android系统的源代码文件。这是在启用Dalvik VM和任何基于Java的服务之前启动的最小Linux系统。这包括init进程的源代码和提供平台动态配置的默认init.rc脚本。

  • Tools - 各种IDE工具。

  • Toolchain - 工具链。

  • Vendor - 该目录包含供应商特定的库。构建AOSP时,大部分来自非开源项目的专有二进制库都存储在这里。

参考:https://elinux.org/Master-android

参考:https://stackoverflow.com/questions/9046572/how-to-understand-the-directory-structure-of-android-root-tree

最新文章

  1. PHP基础 之 基本数据类型练习
  2. paip.enhes efis 自动获取文件的中文编码
  3. ubuntu + hadoop2.5.2分布式环境配置
  4. Spring MVC 之拦截器(八)
  5. 锋利的jQuery读书笔记---jQuery中操作DOM
  6. 文件和目录之link、unlink、remove和rename函数
  7. 有很多功能交给IIS实现就好了啊,之前干嘛要自己写?
  8. java基础(二十一)IO流(四)
  9. 常用的CSS清除浮动的方法优缺点分析(个人学习笔记)
  10. kinect for windows - DepthBasics-D2D详解之一
  11. 用Fine Uploader+ASP.NET MVC实现ajax文件上传[代码示例]
  12. 上传漏洞总结-upload-labs
  13. flask处理cookie
  14. Golang 入门~~基础知识
  15. Linux C 结构体初始化三种形式
  16. Android : 移植curl-7.61.1 及 openssl-1.1.0i
  17. [转][Java]尝试解决Java多行字符串的编辑问题
  18. (转)Python科学计算之Pandas详解,pythonpandas
  19. PKU 1226 Substrings(字符串匹配+暴搜KMP模板)
  20. redis的主从配置

热门文章

  1. Golang——详解Go语言代码规范
  2. Ubuntu搭建Redis 集群
  3. Eclipse Hadoop源码阅读环境
  4. redis和memcache列出所有key
  5. vue组件之间值传递四种方法汇总
  6. Windows安装Tesseract-OCR 4.00并配置环境变量
  7. ESI web学习记录
  8. eclipse git 文件状态 及git分支的创建与合并与删除
  9. 一个可能是世界上最全的 API 接口集合库开源项目
  10. 替换字符串sql