• 应用框架层核心目录---/frameworks/base


    Android 12源码目录

    |– Makefile (全局Makefile文件,用来定义编译规则) 
    |– abi (应用程序二进制接口) 
    |– art (ART运行环境) 
    |– bionic (bionic C库) 
    |– bootable (启动引导相关代码) 
    |– build (存放系统编译规则及generic等基础开发包配置) 
    |– cts (Android兼容性测试套件标准) 
    |– dalvik (dalvik JAVA虚拟机) 
    |– developers (开发者目录) 
    |– development (应用程序开发相关) 
    |– device (设备相关配置) 
    |– docs (参考文档目录) 
    |– external (android使用的一些开源的模组) 
    |– frameworks (核心框架——java及C++语言) 
    |– hardware (部分厂家开源的硬解适配层HAL代码) 
    |– kernel 
    |– libcore (核心库相关文件) 
    |– libnativehelper (动态库,实现JNI库的基础) 
    |– ndk (NDK相关代码,帮助开发人员在应用程序中嵌入C/C++代码) 
    |– out (编译完成后的代码输出在此目录) 
    |– packages (应用程序包) 
    |– pdk (Plug Development Kit 的缩写,本地开发套件) 
    |– prebuilts (x86和arm架构下预编译的一些资源) 
    |– sdk (sdk及模拟器) 
    |– system (底层文件系统库、应用及组件——C语言) 
    |– tools (工具文件) 
    |– toolchain(工具链文件) 
    |– vendor (厂商定制代码)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    应用层部分

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

    |– apps (核心应用程序) 
    |– experimental (第三方应用程序) 
    |– inputmethods (输入法目录) 
    |– providers (内容提供者目录) 
    |– screensavers (屏幕保护) 
    |– services (通信服务) 
    |– wallpapers (墙纸)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    应用框架层部分

    应用框架层是系统的核心部分,一方面向上提供接口给应用层调用,另一方面向下与C/C++程序库以及硬件抽象层等进行衔接。 应用框架层的主要实现代码在/frameworks/base和/frameworks/av目录下。

    |– av(多媒体框架)
    |– base(Android源码的主要核心目录)
    |– compile(编译相关)
    |– ex(文件解析器)
    |– hardware(硬件适配接口)
    |– layoutlib(布局相关)
    |– minikin(Android原生字体,连体字效果)
    |– ml(机器学习)
    |– multidex(多dex加载器)
    |– native(native实现)
    |– opt(一些软件)
    |– rs(Render Script,可创建3D接口)
    |– support(framework支持文件)
    |– wilhelm(基于Khronos的OpenSL ES/OpenMAX AL的audio/multimedia实现)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    应用框架层base目录

    |– apct-tests(性能优化测试)
    |– api(android应用框架层声明类、属性和资源)
    |– cmds(android系统启动时用到的commands)
    |– core(framework的核心框架组件)
    |data(android下的资源(字体、声音、视频、软盘等)|– docs(android项目说明)
    |– drm(实现权限管理,数字内容解密等模块的工作)
    |– graphics(图像渲染模块)
    |– keystore(秘钥库)
    |– libs(库信息(界面、存储、USB)|– location(位置信息)
    |– media(手机媒体管理(音频、视频等)|– native(本地方法实现(传感器、输入、界面、窗体)|– nfc-extras(近场通讯)
    |– obex(蓝牙)
    |– opengl(2D和3D图形绘制)
    |– packages(框架层的实现(界面、服务、存储)|– proto(协议框架)
    |– rs(资源框架)
    |– samples(例子程序)
    |– sax(xml解析器)
    |– services(各种服务程序)
    |– telecomm(telecomm通信框架)
    |– telephony(电话通讯框架)
    |– tests(各种测试)
    |– vr(虚拟现实相关)
    |– wifi(wifi模块)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 常用的 View 类在 /frameworks/base/core/java/android/view/View.java
    • 常用的 Activity 类在/frameworks/base/core/java/android/app/Activity
    • 常用的 Bitmap 类在 /frameworks/base/graphics/java/android/graphics/

    客制化改动频繁的目录有:
    /frameworks/base/services/core/java/com/android/server/am
    /frameworks/base/services/core/java/com/android/server/pm
    /frameworks/base/services/core/java/com/android/server/policy
    /frameworks/base/services/core/java/com/android/server/power

  • 相关阅读:
    Vue3 模糊搜索筛选
    LVGL Animations(动画)的简单使用
    关于加密解密有哪些你需要知道知识?一篇文章告诉你
    (二)库存计划-经济订货量(EOQ)
    AIGC 技术在淘淘秀场景的探索与实践
    ORACLE内存结构
    【JavaWeb】 Mybatis-03-Mybatis代理开发
    解决sleuth链路追踪失效的问题,sleuth版本升级为3.1.3后X-B3-TraceId:-打印不出来了,解决方案
    draw.io 绘图软件的安装记录
    npm install报 ERESOLVE unable to resolve dependency tree
  • 原文地址:https://blog.csdn.net/johnWcheung/article/details/126426016