这里写自定义目录标题
简单介绍framework在Android系统的位置
1 Android架构图
Android架构分为四层
- Application
- Application Framework
- Library Android Runtime
- Linux Kernel
1 源码的目录结构
android源码的结构图
链接:https://blog.youkuaiyun.com/yui_hatano/article/details/89517165
- bionic android上实现的libc库
- bootable 存放可启动项,如recovery、bootloader等
- build android编译系统所用到的make文件及其它工具
- cts android兼容性测试
- dalvik dalvik虚拟机
- development 与开发相关的一些东西
- device 存放需要适配的设备信息
- external 第三方库
- frameworks framework部分**
- hardware 硬件相关代码
- kernel kernel相关代码
- libcore android上实现的Java基础库
- Makefile
- ndk
- out 编译输出目录
- packages 包含系统应用、壁纸应用、内容提供者、输入法等
- prebuilt 预编译好的工具
- sdk sdk相关内容
- system 操作系统层次的一些可执行程序和配置文件
- u-boot 用于引导linux启动的u-boot
- vendor 存放与厂商相关的信息,也可粗放需要适配的设备信息
android framework的结构图
应用程序框架层,这一层为上层应用提供各种api,提供各种组件和服务来支持我们的Android开发。
framework开发相关的代码主要集中在framework/base下面。
- frameworks/av 多媒体框架
- frameworks/base
- api/ 全是xml文件,定义了api
- cmds/ android中重要的命令,如am,app_proce
- config/ 10-Aug-2018 4 KiB
- core/ 核心库
- java/ java库
- jni/ jni层
- proto/ 协议层
- res/ 资源文件
- tests/ 测试工具
- data/ 声音字体等数据文件
- docs/ 文档
- drm/ 数字版权管理
- graphics/ 图形图像
- keystore/ 数字签名证书相关
- libs/ 库
- androidfw/ FW功能库
- common_time/ 常用功能和工具集合
- hwui/ 硬件渲染库
- incident/ 事件驱动机制库
- input/ 输入库
- protoutil/ (7.0有,5.0没有)
- services/ 服务库
- storage/ 存储库
- usb/ USB库
- location/ 地理位置
- lowpan/ (7.0有,5.0没有)
- media/ 多媒体
- native/ 本地库
- nfc-extras/ nfc相关
- obex/ 蓝牙传输
- opengl/ opengl相关
- packages/ 设置,TTS,VPN程序
- proto/ 协议框架
- rs/ 资源框架
- samples/ 示例
- sax/ xml解析器
- services/ Android的服务
- telecomm/ telecom通讯框架
- telephony/ 电话相关
- test-base/ base的测试
- test-legacy/ 安全相关的测试
- test-mock/ (7.0有,5.0没有)
- test-runner/ 测试相关
- tests/ 测试相关
- tools/ 工具
- vr/ VR相关(7.0有,5.0没有)
- wifi/ 无线网络
3 源码中的framework重要类
下面是一些系统中常见的类及其功能介绍,通读一遍会对理解Android源码很有帮助。
分类 | 重要的类 | 简介 | 作用 |
---|---|---|---|
消息处理类(非服务端) | KeyQ类 | 该类是WmS的内部类,继承自KeyInputQueue | 一旦创建就立即启动一个线程,该线程会不断读取用户UI操作消息,比如按键、触摸屏、等,并把这些消息放到一个消息队列QueueEvent类中 |
消息处理类(非服务端) | InputDispatcherThread | 该类是WmS的内部类,继承自KeyInputQueue | 一旦创建就立即启动一个线程,该线程会不断读取用户UI操作消息,比如按键、触摸屏、等,并把这些消息放到一个消息队列QueueEvent类中 |
服务端 | Acti |