目录
frameworks目录详解
system 目录详解
frameworks目录详解
frameworks/
av audio/video, 如音视频解码器,录屏工具,摄像头框架相关的代码,多媒体框架供上层程序调用的java API。连接java和c/c++的jni部分,在framework/media下;
frameworks/av/camera libcamera_client共享库,是camera框架部分的client代码;
frameworks/av/cmds 包括录屏工具,stagefright进程
frameworks/av/media 提供音视频编解码的各种库和工具,后台进程如audioserver,mediaserver(通过binder进程间通信方式来完成其他进程(如音乐播放器)的请求)
frameworks/av/services 多媒体相关的后台服务,如cameraservice,audioflinger
frameworks/compile
包含
libbcc,mclinker(llvm
编译器的插件
) slang(Renderscript
语言的编译器
)
frameworks/ex
Android
内部使用的公共类,如联系人、小部件、
io,
以及全新的相机框架
Camera2
的部分代码
frameworks/
hardware
描述传感器,虚拟现实VR camera等硬件的HIDL接口的文件.hal
frameworks/layoutlib 布局相关
frameworks/minikin Android 原生字体 连体字效果
frameworks/ml 机器视觉
frameworks/multidex 多dex加载器,大多数APP 解压其app后,一般只有一个classes.dex文件,采用MultiDex的App解压后可以看到有classes.dex,classes2.dex,....classes(n).dex
frameworks/native c/c++本地语音编写的相关工具源码和特定硬件控制的头文件,如bugreport,dumpstats,各种硬件访问权限的声明
frameworks/opt 一些UI插件和java后台服务 如
timezonepicker
,
datetimepicker
,
colorpicker
, 网络服务,如EthernetService, WifiService, 电话服务 telephony
frameworks/rs 渲染脚本rendor script
frameworks/wilhelm
基于
Khronos
的
OpenSL ES/OpenMAX AL
的
audio/multimedia
实现
frameworks/base/ 应用框架层的主要核心代码
frameworks/base/api 主要是txt文件 声明了android应用框架层的类、属性和资源
frameworks/base/cmds 开机启动的进程代码和命令(脚本) 著名的zygote进程代码和启动动画代码就在此处
frameworks/base/core/java android应用开发所依赖的各种包,四大组件代码就在此,如android/app/Activity.java android/app/Service.java android/content/ContentProvider.java /android/content/BroadcastReceiver.java
frameworks/base/core/jni 服务与android系统java核心代码所需要的jni 被编译成libandroid_runtime.so
frameworks/base/core/res 系统中所需要的各种资源 图片 字符串 尺寸 布局文件等
frameworks/base/data 系统默认的铃声,字体,根文件系统etc目录部分配置文件,触摸需要的kl kcm文件等
frameworks/base/drm
Digital Rights Management(
数字版权管理
)
,应用根据与受版权保护的内容关联的许可限制来管理自己的内容,从而达到保护应用内容的知识产权。
frameworks/base/graphic
为应用提供的
android.graphics
包,提供基本的图形原语(如画点画线,设置图形上下文等)另外和图形相关的包:android.view 图形事件机制和 android.widget 包提供开发图形用户界面的控件
frameworks/base/keystore
提供
android.security.keystore
包
,
应用可以通过
KeyStore API
生成密钥、使用密钥签名
, keystorek可以保护密钥材料免遭未经授权的使用.
frameworks/base/libs
大部分都是
c/c++
代码,编译成
so
, 如
Canvas
的
drawing
操作转换为
OpenGL
的操作的
libhwui.so
frameworks/base/location 定位相关接口
frameworks/base/lowpan
提供
android.net.lowpan
报,提供基于
IPv6
的低速无线个域网的
API, lowpan
功能与
Zigbee
类似
frameworks/base/media
多媒体相关接口,被
App
调用的, 包含
MediaPlayer
代码
frameworks/base/native
部分硬件相关的
jni
库:如
sensor, net,
存储管理, 最后合并在
libandroid.so
中
frameworks/base/obex 蓝牙文件传输obex协议
frameworks/base/opengl
提供
android.opengl
包
,
提供
android 2D/3D
图形处理各种
API
frameworks/base/packages
著名的
SystemUI
,彩蛋,锁屏,
SettingProvider(
系统设置数据提供者
)
frameworks/base/rs
提供
android.renderscript
包,
RenderScript
是
Android
平台上的一种类
C
脚本语言,用于渲染绘
图
frameworks/base/services
android
开机启动的大部分后台服务,如
PMS, AMS, WMS
等
frameworks/base/tools 提供给应用开发的各种工具和脚本 如appt
frameworks/bae/wifi 提供android.net.wifi包 如wifi扫描,p2p hotspot2相关的API
system 目录详解
system/sepolicy 权限配置策略,可以配置某个进程可以访问那些文件。每个文件道理有那些权限。
system/libhidl 提供hidl相关的库。
system/libhwbinder
system/vold 完成自动挂载,Volume 守护进程,用来管理 Android 中存储类的热拔插事件,如设备增加,删除,修改等事件处理
system/netd 服务 跟网络相关的 比如网络状态 网络连接
system/core/init 祖先init进程
system/core/libutils pthread相关
system/core/adb adb 进程
system/core/debuggerd 进程死掉了 打印
system/core/fastboot 现刷工具
system/core/lmkd low memry kill 低内存杀死 内存不足时候 会根据算法杀死服务进程
system/core/mkbootimg 生成bootimg工具
system/core/property_service 属性系统
system/core/rootdir dev sys proc 目录来源 int.rc
system/core/toolbox 提供的一些命令的集合
system/core/qemu_pipe 完成host gest 机的通信 模拟器和虚拟机用的比较多
system/hardware 网络相关的HIDL描述文件
system/hwservicemanager: HAL 服务管理中心,负责管理系统中的所有 HAL 服务,由 init 进程启动,属于 vendor的 binder 通信机制,类似 framework 中的 binder.
system/media 多媒体相关的
主要生成相关进程、动态和静态so、可执行程序、二进制工具。