阳光沙滩-课程笔记 阳光沙滩-课程笔记
首页 (opens new window)
VIP (opens new window)
  • 课程笔记

    • 《Android项目喜马拉雅FM》
    • 《Android项目领券联盟》
    • 《AndroidStudio技巧》
    • 《Android自定义控件》
    • 《Android开发基础》
    • 《Android约束布局》
    • 《AOSP安卓开源项目》
    • 《RecyclerView》
  • 《领券联盟Nuxt.js》
  • 《博客系统后台管理系统vue.js》
  • 《博客系统门户Nuxt.js》
  • 《博客系统前后端分离后台》
  • 《博客系统部署》
  • 《摸鱼君后台》
  • 《OTA升级管理系统》
  • 阳光沙滩API (opens new window)
  • 领券联盟API (opens new window)
  • 博客系统API (opens new window)
首页 (opens new window)
VIP (opens new window)
  • 课程笔记

    • 《Android项目喜马拉雅FM》
    • 《Android项目领券联盟》
    • 《AndroidStudio技巧》
    • 《Android自定义控件》
    • 《Android开发基础》
    • 《Android约束布局》
    • 《AOSP安卓开源项目》
    • 《RecyclerView》
  • 《领券联盟Nuxt.js》
  • 《博客系统后台管理系统vue.js》
  • 《博客系统门户Nuxt.js》
  • 《博客系统前后端分离后台》
  • 《博客系统部署》
  • 《摸鱼君后台》
  • 《OTA升级管理系统》
  • 阳光沙滩API (opens new window)
  • 领券联盟API (opens new window)
  • 博客系统API (opens new window)
  • Android开发基础

  • Android项目-喜马拉雅FM

  • Android项目-领券联盟

  • AndroidStudio使用技巧

  • Android-Jetpack

  • ConstraintLayout

  • RecyclerView

  • 自定义控件系列

  • AOSP

    • AOSP课程计划
    • AOSP团队开发模式
    • Android格式化sd卡
    • AOSP-android必备基础知识 Linux Shell
    • AOSP日记,修改分辨率,修改dpi,全屏禁止下拉拖出状态栏
    • Android系统编译说明(AOSP)
    • Android系统编译-AOSP-创建自己公司的产品
    • AOSP-Android系统定制下载系统源码
    • AOSP-Android系统源码目录结构
      • AOSP-Android系统源码目录结构
      • Android系统架构
      • Application层
      • Framework层
      • NativeLib和Runtime
      • HAL hardware abstract lay 硬件抽象层
      • Linux内核
      • Android源码目录
    • 常见的变量说明
    • 编译Android系统的步骤
    • 安装Samba
    • AOSP-Repo代码管理
    • Android.mk
    • 编译可执行so库和可执行程序
    • AOSP-Androidmk里:=与+=的区别是啥?
    • 创建属于自己的产品
    • iphone12
  • ADB

  • 安卓
  • AOSP
TrillGates
2021-09-25
目录

AOSP-Android系统源码目录结构

# AOSP-Android系统源码目录结构

当我们下载好源码以后,就会得到这些,以下是Android7.1的源码

图片描述

out下载完没有哈,这个是我编译过的,所以就有了out目录了。

这里面的目录各自存放什么内容呢?

我们先看一下Android系统的架构图

# Android系统架构

图片描述

# Application层

也就是我们的Application层,应用层。上层应用嘛。

# Framework层

架构层,我们的包管理器Package Manager、Activity管理器Activity Manager,WindowManager,各种系统Service都在这层,我们的ContextImpl也在这一层。后面的话可以对应地去看看源码。

# NativeLib和Runtime

本地库的代码用C/C++写的,比如OpenGL,Sqlite,Webkit之类的 。

Runtime就是运行时的意思,自从Android5.0以后,AndroidRuntime(ART)取代了Dalvik虚拟机

# HAL hardware abstract lay 硬件抽象层

抽象层,其实就是接口。Android系统可以跑在很多种硬件设备上,HAL层就是硬件接口层,供硬件商去实现。

图片描述

# Linux内核

Android系统是基于Linux内核编写的,在此基础上,google的工程师还添加了其他的内容,比如说Binder实现IPC通讯,系统的安全、内存管理等。

以上就是Android系统架构的大概介绍,接下来我们看看Android源码各个目录分别存放什么内容吧。

# Android源码目录

  • abi Application Binary Interface 应用程序二进制接口,abi相信同学们在SO库调用上遇到过,如果不支持该平台的话就说不ABI不支持。
  • art Android Runtime 安卓运行时。这个会提前把字节码编译成二进制机器码保存起来,执行的时候加载速度比较快。Dalvik虚拟机则是在加载以后再去编译的,所以速度上ART会比Dalvik快一点。牺牲空间来赢取时间。
  • bionic 基础库,Android系统与Linux内核的桥梁。Bionic 音标为 bīˈänik,翻译为"仿生"。
  • bootable 系统启动引导相关程序
  • build 用于构建Android系统的工具,也就是用于编译Android系统的
  • cts Compatibility Test Suite 兼容性测试
  • dalvik dalvik虚拟机,用于解析执行dex文件的虚拟机
  • developers 开发者目录
  • developerment 开发目录,比如说应用,application就在里面了,apps
  • devices 设备相关的配置信息,什么索尼、HTC、自己的产品,就可以定义在这个目录下了
  • docs 文档
  • external 开源模组相关文件
  • frameworks 系统架构,Android的核心了
  • hardware hal层代码,硬件抽象层
  • libcore 核心库
  • libnativehelper native帮助库,实现JNI的相关文件
  • ndk native development kit
  • out 输出目录,编译以后生成的目录,相关的产出就在这里了
  • packages 应用程序包。一些系统的应用就在这里了,比如说蓝牙,Launcher,相机,拨号之类的。
  • pdk Plug-in Development Kit (PDK) is designed to help you build your own pattern projects
  • platform_testing 平台测试
  • prebuilts x86/arm架构下预编译的文件
  • sdk software development kit
  • system 底层系统文件
  • toolchain 工具链
  • tools 工具文件
  • Makefile mk文件,用于控制编译
编辑 (opens new window)
AOSP-Android系统定制下载系统源码
常见的变量说明

← AOSP-Android系统定制下载系统源码 常见的变量说明→

Theme by Vdoing | Copyright © 2022-2022 sunofbeach.net
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式