Android Framework 学习笔记

一、Android 系统结构

Android Framework 学习笔记_第1张图片

  • Linux 系统内核

操作系统,直接和硬件交互,包含所有硬件驱动。负责进程管理、内存管理、安全性、网络协议栈等。Linux内核也同时作为硬件和软件栈之间的抽象层。

  • 本地函数库

本层包含一些C/C++函数库,供上层使用:

  1. libc(系统C函数库):专门为嵌入式Linux设备定制的。
  2. 媒体库:音视频录制和播放,图片的拍摄和展示。
  3. Surface Manager :显示管理,界面渲染相关。
  4. WebKit :web浏览器相关
  5. SGL :底层的2D图形引擎
  6. OpenGL|ES :3D图形相关
  7. FreeTpye :位图和矢量字体显示
  8. SQLite :轻量数据库
  • Android 运行时

Java语言的核心函数库,供上层使用。

谷歌优化了Java虚拟机。每个程序都拥有一个虚拟机实例。

  • 应用框架

为应用层的开发者提供API,实际上是一个应用程序的框架。

  • 应用

包括系统自带的应用和后安装的应用。

二、Framework 详情

  1. SystemServer 是 Framework 中非常重要的一个进程,它是在虚拟机启动后运行的第一个 Java 进程。SystemServer 启动各个系统服务,这些系统服务都是以一个线程的方式存在于 SystemServer 进程中。

① ActivityManagerService 最核心的服务之一,管理 Activity。

② WindowManagerService 最核心的服务之一,负责窗口管理。

③ PackageMangerService 程序包管理服务。

④ LocationManagerService 位置管理服务。

⑤ NotificationMangerService 通知栏管理服务。

⑥ StatusBarManagerService 状态栏管理服务。

⑦ LightsService 光强度感应器服务。

⑧ AccountManagerService 账号管理服务。

⑨ ContentService ContentProvider 跨进程数据交换。

⑩ EntropyService 提供伪随机数。

⑪ TelephonyRegistry 通过该模块注册电话模块的事件响应,比如重启、关闭、启动等。

⑫ BatteryService 电池管理服务。

⑬ PowerManagerService 电源管理服务。

⑭ VibratorService 震动器服务。

⑮ AlarmManagerService 定时器管理服务,提供定时提醒服务。

⑯ BluetoothService 蓝牙服务。

⑰ DevicePolicyMangerService 提供一些系统级别的设置和属性。

⑱ ClipBoardService 系统剪切板服务。

⑲ InputMethodManagerService 输入法管理服务。

⑳ NetStatService 网络状态服务。

㉑ NetworkManagmentService 网络管理服务。

㉒ ConnectivityService 网络连接管理服务。

㉓ Accessibility 辅助管理程序截获所有的用户输入,并根据这些输入给用户一些额外的反馈,起到辅助的效果。

㉔ MountService 挂载服务,可通过该服务调用 Linux 层面的 mount 程序。

㉕ DeviceStorageManagerService 磁盘空间状态检测服务。

㉖ SearchMangerService 搜素管理服务。

㉗ DropBoxMangerService 通过该服务访问 Linux 层面的 DropBox 程序。

㉘ WallpaperManagerService 墙纸管理服务,不同于桌面壁纸,在 View 系统内部,墙纸可以作为任何窗口的背景。

㉙ AudioService 音频管理服务。

㉚ BackupManagerService 系统备份服务。

㉛ AppWidgetService 系统桌面小控件服务。

㉜ RecognitionManagerService 身份识别服务。

㉝ DiskStatsService 磁盘统计服务。

除此之外还有 NFC、Download 等服务。

三、核心服务简介

  • ActivityManagerService

应用进程的管理服务端,主要工作是对应用进程及其进程中的四大组件进行管理,保证了系统不同的应用程序之间能够和谐的合理的进行调度运行。(也涉及了一些 Window 、电源、权限等内容)

对进程的管理:进程的创建、销毁、进程的优先级调整。

对组件的管理:Activity 的调度管理、Service的管理、Broadcast的分发、ContentProvider的管理。

  • WindowManagerService

对系统中所有窗口进行管理、动画处理、Input 分发处理、display 管理。

  • PackageManagerService

负责 Package 的管理,应用程序的安装、卸载、信息查询。

 

你可能感兴趣的:(Android Framework 学习笔记)