一、Android系统架构
1.Linux内核层
- Android核心系统服务依赖于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是作为硬件与软件栈的抽象层。驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。
2.系统库和运行时
- 系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。
- Android运行时包括核心库和Dalvik虚拟机(运行时编译,后使用ART模式,安装时就进行编译),前者既兼容了大多数Java语言所需要调用的功能函数,又包括了Android的核心库,比如android.os、android.Net、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
3.Framework层(应用程序框架层)
-
Activity Manager(活动管理器)
- 管理各个应用程序生命周期以及通常的导航回退功能
-
Window Manager(窗口管理器)
- 管理所有的窗口程序
-
Content Provider(内容提供器)
- 使得不同应用程序之间存取或者分享数据
-
View System(视图系统)
- 构建应用程序的基本组件
-
Notification Manager(通告管理器)
- 使得应用程序可以在状态栏中显示自定义的提示信息
-
Package Manager(包管理器)
- Android系统内的程序管理
-
Telephony Manager(电话管理器)
- 管理所有的移动设备功能
-
Resource Manager(资源管理器)
- 提供应用程序使用的各种非代码资源,如本地化字符串、图片、布局文件、颜色文件等
-
Location Manager(位置管理器)
- 提供位置服务
-
XMPP Service(XMPP服务)
- 提供Google Talk服务
4.应用层
- apk等文件
二、Android的App组件架构
- Activity
- BroadCastReciever
- ContentProider
- Service
三、上下文(Context)
-
应用程序会在如下时间点创建应用上下文Context
- 创建Application(应用上下文)
- 创建Activity(运行时上下文)
- 创建Service(运行时上下文)
-
可通过getApplicationContext() 方法获取整个App的Context
四、其他
- ADB:Android Debug Bridge。可使用ADB命令实现电脑对手机的操纵。