zoukankan      html  css  js  c++  java
  • 02、Android系统--源码目录

    源码目录

    整体架构

    各个版本的源码目录基本是类似的,如果是编译后的源码目录,会多一个 out 文件夹,用来存储编译产生的文件。 Android 8.0. 的系统根目录结构说明如表:

    Android源码根目录 描述
    art 全新ART运行环境
    bionic 系统C库
    bootable 启动引导相关代码
    build 存放系统编译规则及generic等基础开发包配置
    cts Android兼容性测试套件标准
    dalvik Dalvik 虚拟机
    developers 开发者目录
    development 与应用程序开发相关
    device 设备相关配置
    docs 参考文档目录
    external 开源模组相关文件
    frameworks 应用程序框架, Android系统核心部分,由 Java和C++编写
    hardware 主要是硬件抽象层的代码
    libcore 核心库相关文件
    libnativehelper 动态库,实现JNI库的基础
    out 编译完成后代码在此目录输出
    pdk Plug Development 的缩写,本地开发套件
    platform testing 平台测试
    prebuilts X86 ARM 架构下预编译的 些资源
    sdk SOK 模拟器
    packages 应用程序包
    system 底层文件系统库 应用和组件
    toolchain 工具链文件
    tools 工具文件
    makefile 全局 Makefile 文件,用来定义编译规则

    应用层部分

    应用层位于整个 Android 系统的最上层,开发者开发的应用程序以及系统内置的应用程序都在应用层。源码根目录中的 packages 目录对应着系统应用层,它的目录结构如表:

    packages目录 描述
    apps 核心应用程序
    experimental 第三方应用程序
    inputmethods 输入法目录
    providers 内容提供者目录
    screensavers 屏幕保护
    services 通信服务
    wallpapers 墙纸

    packages 目录存放着系统核心应用程序、第三方应用程序和输入法等,这些应用程序都是运行在系统应用层的,因此 packages 目录对应着系统的应

    用层。

    应用框架层部分

    应用框架层是系统的核心部分,一方面向上提供接口给应用层调用,另一方面向下与C/C++程序块及硬件抽象层等进行衔接。

    应用框架层的主要实现代码在 frameworks/base/frameworks/av 目录下,其中 frameworks/base 目录结构如表

    frameworks/base目录 描述 frameworks/base目录 描述
    api 定义API cmds 重要命令:am、am_proce等
    core 核心库 data 字体和声音等
    docs 文档 graphics 与图形图像相关
    include 头文件 keystore 与数据签名证书相关
    libs location 地理未知相关库
    media 多媒体相关库 native 本地库
    nfc-extras 与NFC相关 obex 蓝牙传输
    opengl 2D/3D图形API packages 设置、TTS、VPN程序
    sax XML解析器 services 系统服务
    telephony 电话通信管理 test-runner 测试工具相关
    tests 与测试相关 tools 工具
    vr 与VR相关 wifi Wi-Fi无限网络

    C/C++程序库部分

    系统运行库层(Native )中的 C/C++程序库的类型繁多, 功能强大, IC++程序库并不完全在一个目录中,这里给出几个常用且 较重要的 C/C++程序库所在的目录位置,如表:

    目录位置 描述
    bionic Goog 开发的系统 库,以 BSD 许可形式开源
    frameworks/av/media 系统媒体库
    frameworks/native/opengl 第三方图形渲染库
    frameworks/native/services/surfaceflinger 图形显示库, 主要 图形的渲染、 加和绘制等功能
    extemal/sqlite 轻量级关系型数据库SQLite的C++实现

    Android 运行时库的代码在art/目录中 ;硬件抽象层的代码在hardware/目录中,这是手机厂商改动最大的部分,根据手机终端所采用的硬件平台不同会有不同的实现。

  • 相关阅读:
    DeepFM
    Wide & Deep Learning Model
    机器学习优化方法总结比较(SGD,Adagrad,Adadelta,Adam,Adamax,Nadam)
    svm、logistic regression对比
    梯度下降和EM算法,kmeans的em推导
    牛顿法、拟牛顿法以及与梯度下降法的对比
    【effective c++】构造/析构/赋值运算
    Tips/Tricks in Deep Neural Networks
    GoogLeNet系列解读
    电脑组装的配件及其功能
  • 原文地址:https://www.cnblogs.com/pengjingya/p/15009413.html
Copyright © 2011-2022 走看看