Android系统架构5层
- System Apps 应用层
- Java API Framework 用用框架层
- Native 系统运行库层(包括C/C++库,ART Android Runtime 安卓运行时库)
- HAL Hardware Abstraction Layer 硬件抽象层
- Linux Kernel Linux内核层
Java API Framework
记忆方法:VW CRT PLAN 大众显像管计划
- ViewSystem 视图系统 构建Apps的基本组件
- Window Manager 窗口管理器 管理所有开启的窗口
- Content Provider 内容提供器 不同Apps间共享数据
- Resource Manager 资源管理器 对Apps使用各种费代码资源管理,图片,字符串
- Telephony Manager 电话管理器 管理所有移动设备功能
- Package Manager 包管理器 管理所有Apps
- Location Manager 位置管理器 提供地理位置定位服务
- Activity Manager 活动管理器 管理各App生命周期及导航
- Notfication Manager 消息管理器 可在状态栏显示提示信息
C/C++库
记忆方法:3S FLOM
- SQLite 轻型关系型数据库引擎
- SGL 底层2D绘图引擎
- SLL 安全套接字
- FreeType 可移植的字体引擎
- Libc 从BSD继承的为嵌入式Linux设备定制的标准C系统函数库
- OpenGL ES 3D绘图函数库
- Media Framework 多媒体库
Android Runtime 安卓运行时库
- 核心库 提供了Java语言核心库的大多数功能
- ART
ART与Dalvik区别
- Dalvik 程序每次运行时编译,通过JIT(Just In Time)将字节码转换成机械码
- ART 程序在安装时进行一次预编译AOT(Ahead Of Time),将字节码转换成机械码并存储在本地,效率高
Android8.0.0系统源码目录
- art art运行环境
- bionic 系统C库
- bootable 启动引导相关代码
- build 存放系统编译规则 及 generic等 基础开发包配置
- cts Android兼容性测试套件标准
- dalvik Dalvik虚拟机
- developers 开发者目录
- development 与应用程序开发相关
- device 设备相关配置
- docs 参考文档目录
- extenal 开源模组相关文件
- frameworks 应用程序框架,Android系统核心部分 由Java 和 C++编写
- hardware 硬件抽象层代码
- libcore 核心库相关文件
- libnativehelper 动态库,实现JNI库的基础
- out 编译完成后,代码在此目录输出
- pdk Plug Development Kit的缩写,本地开发套件
- platform_testing 平台测试
- prebuilts X86 和 ARM架构下预编译的一些资源
- sdk SDK和模拟器
- package 应用程序包
- system 底层文件系统库,应用和组件
- toolchain 工具链文件
- tools 工具文件
- makefile 全局Makefile文件,用来定义编译规则
package目录
- apps 核心应用程序
- experimental 第三方应用程序
- inputmethods 输入法目录
- providers 内容提供者目录
- screensavers 屏幕保护
- services 通信服务
- wallpapers 墙纸
frameworks/base目录
- api 定义API
- core 核心库
- docs 文档
- include 头文件
- libs 库
- media 多媒体相关库
- nfc-extras 与NFC相关
- opengl 2D/3D 图形API
- sax XML解析器
- telephony 电话通信管理
- tests 与测试相关
- vr 与VR相关
- cmds 重要命令
- data 字体声音等数据文件
- graphics 与图形相关
- keystore 与数字签名证书相关
- location 地理位置相关库
- native 本地库
- obex 蓝牙传输
- packages 设置,TTS,VPN程序
- services 系统服务
- test-runner 测试工具相关
- tools 工具
- wifi Wi-Fi相关
C/C++库目录位置
- bionic Google开发的C库
- frameworks/av/media 系统媒体库
- frameworks/native/opengl 第三方图形渲染库
- frameworks/native/services/surfaceflinger 图形显示库
- external/sqlite SQLite数据库的C++实现
网友评论