android 系统架构

23
Android 系 系系

Upload: mason-carney

Post on 01-Jan-2016

198 views

Category:

Documents


3 download

DESCRIPTION

Android 系统架构. Android 架构. Linux Kernel Linux 内核 标准的 Linux 内核 优越的内存和进程管理功能 基于权限的安全模式 被认可的驱动模式 支持共享库 , 代码开源 内核优化 Binder. Android 架构. Native Libraries 本地库 Bionic Libc 定制的 C 库函数实现,为嵌入式应用做了优化 Function Libraries Webkit\Media\SQLite Native Servers Surface Flinger Audio Flinger - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Android 系统架构

Android 系统架构

Page 2: Android 系统架构

Android 架构• Linux Kernel Linux 内核

– 标准的 Linux 内核– 优越的内存和进程管理功能– 基于权限的安全模式– 被认可的驱动模式– 支持共享库 , 代码开源– 内核优化– Binder

Page 3: Android 系统架构

Android 架构• Native Libraries 本地库

– Bionic Libc• 定制的 C 库函数实现,为嵌入式应用做了优化

– Function Libraries• Webkit\Media\SQLite

– Native Servers• Surface Flinger• Audio Flinger

– Hardware Abstraction Libraries• 用户空间的 C/C++ 库• 定义了 Android 对硬件驱动要求的接口实现• 将 Android 的平台逻辑和硬件接口分离

Page 4: Android 系统架构

Android 架构• Android Runtime Android 运行时

– Dalvik • 为嵌入式开发环境设计的特有的虚拟机实现• 支持多虚拟机进程• 高度 CPU 优化的字节码解释程序• 以优化的 .dex 文件格式运行 , 能够高效的使用运

行时内存• Jave 的 .class / .jar 文件在编译时转化为 .dex

– Core Libraries 核心库• 核心的 Java 语言 API

Page 5: Android 系统架构

Android 架构• Application Framework 应用程序框架

– Core Platform Services 核心平台服务• Activity Manager 活动管理• Package Manager 包管理• Window Manager 窗口管理• Resource Manager 资源管理• Content Providers 内容管理• View System 视窗系统

– Hardware Services 硬件服务• 提供对底层硬件访问的 API 、一般通过本地 Manag

er 对象访问

Page 6: Android 系统架构

Android 系统评估• Android

– 应用程序框架更优– 开源– 使用 Java 开发

• Java 语言本身具有元信息,可以进行动态适配• Java 程序的 jni 部分( c/c++ )不具有元信息,无

法进行动态适配• Android 系统自适应性较 Windows8 弱• C/C++ 层面需要元信息( COM/CAR )

Page 7: Android 系统架构

Windows 8 系统架构

Page 8: Android 系统架构

Window8 Platform

– 创建了一套“ Metro” 应用程序框架– Metro 中的系统服务层,被称为 WinRT(Windo

ws Runtime)– WinRT 是一组全新设计、与传统不兼容,并使

用改进的 COM 技术开发的 API– 标志着 COM 技术的回归,取代 .Net 技术重新

成为构建系统服务的基石。

Page 9: Android 系统架构

Elastos 操作系统•Elastos = Android + Win8 + CAR

LINUX KERNEL

ELASTOS RT

C++Java

HTML/CSSJavaScriptAndroid RT

ELASTOS CORE LIBRARIES

Application Framework

Activity Manager Content Providers View System

Capsule Manager Resource Manager

Window Manager

Location Manager Notification Manager

CAR RT3PART LIBRARIES

Elastos Apps

Page 10: Android 系统架构

Elastos 系统优势• CAR 构件技术的持续演进,将使系统发挥

巨大威力– 使 C++ 具有解释性语言相似的元信息描述与动

态特性– 形成一套面向接口的 C++ 系统类库– 构件化– 更高效、更安全– 有巨大的潜在创新空间

Page 11: Android 系统架构

Elastos 系统优势• 有自主特色的智能终端操作系统

– 更先进的本地应用框架– 支持多种应用形态

• C++ 应用( Elastos 应用)• Java 应用( Android 应用)• Html/css Javascript 应用( firefox OS )

Page 12: Android 系统架构

Elastos 操作系统• Elastos App runtime

– Dalvik VM CAR runtime 运行时– Core Lib Elastos 核心库 Elastos.core.libs&

Elastos.framework.core

• Elastos Zygote 进程– Android Zygote Elastos Zygote– Superexe

Page 13: Android 系统架构

Elastos 操作系统启动流程• 启动 init 进程• 启动 Elastos Zygote 进程 • 初始化 runtime 运行时进程• 启动 ServiceManager

• 启动 System Server 和本地 Surface Flinger 、 Audio Flinger 服务

• 启动 Android 管理服务• 启动 Home Activity

Page 14: Android 系统架构

Elastos 操作系统启动流程• init 进程启动

– rc 文件解析• Actions, Commands, Services, and Options

– 启动 Native 服务• Surface Flinger• Audio Flinger

– 循环调用 service_start ,将启动后的 service 状态设置为 SVC_RUNNING 。

– Init 进程作为属性服务( Property service )维护这些NativeService

Page 15: Android 系统架构

Elastos 操作系统启动流程• 启动 Elastos Zygote 进程

– 此进程用来启动一个 Elastos App Runtime 实例

– 为应用或服务的请求加载类并监听套接字– 生成创建管理进程的 Elastos RT 实例请求– 通过写时复制来实现最大化的复用

Elastos Zygote

Page 16: Android 系统架构

Elastos 操作系统启动流程• Elastos Zygote 进程

– 在 Elastos Zygote 进程进入循环之前,调用 startSystemServer( );– 利用 Socket 通讯,接收请求, Fork 应用程序进程,进入 Zygote

进程服务框架中。

Elastos App

Apartment

服务请求

请求创建 App Apartment服务请

请求创建 App Apartment

Elastos App

Apartment

服务请求

请求创建 App Apartment

Elastos App

Apartment

服务请求

请求创建 App Apartment

Page 17: Android 系统架构

Elastos 操作系统启动流程• 初始化 runtime 运行时进程

– 初始化服务管理器– 注册服务管理为默认的绑定服务上下文管理

Elastos Zygote

Page 18: Android 系统架构

Elastos 操作系统启动流程• 启动 System Server 服务

– Elastos Zygote 为系统服务进程生成一个新的Elastos App Runtime 实例(含 Elastos 核心库)并启动服务

Elastos

Elastos App RTElastos Zygote

Page 19: Android 系统架构

Elastos 操作系统启动流程• 系统服务启动两个本地 Surface Flinger 和

Audio Flinger– 并向 Service Manager 注册成为 IPC 服务对象

Elastos

Elastos App RTElastos Zygote

Page 20: Android 系统架构

Elastos 操作系统启动流程• 启动 Android 管理服务

– Elastos Zygote 为 Android 管理服务进程生成一个新的 Elastos App Apartment (不含 Elastos 核心库)实例并启动和注册服务

Elastos

Elastos

Elastos App RTElastos Zygote Elastos App RTElastos Zygote

Page 21: Android 系统架构

Elastos 操作系统启动流程• 当加载了所有服务后系统即准备完成

Elastos App RT

Elastos Zygote

Elastos App RT

Elastos Zygote

Elastos App RT

Elastos Zygote

Page 22: Android 系统架构

Elastos 操作系统启动流程• 启动 Home Activity

Elastos App RT

Elastos Zygote

Elastos App Apartment

Elastos App RT

Elastos Zygote

Page 23: Android 系统架构

启动 Home Laucher

Elastos App RT Elastos Zygote Elastos AppApartment

请求创建 App Apartment 实例