当前位置: 首页 > 工具软件 > FrameWorks > 使用案例 >

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

娄弘
2023-12-01

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 (厂商定制代码)

应用层部分

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

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

从目录结构可以发现,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实现)

应用框架层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模块)
  • 常用的 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

 类似资料: