Elastos Zygote

Download Report

Transcript Elastos Zygote

Android系统架构
Android 架构
• Linux Kernel Linux 内核
– 标准的Linux内核
– 优越的内存和进程管理功能
– 基于权限的安全模式
– 被认可的驱动模式
– 支持共享库,代码开源
– 内核优化
– Binder
Android 架构
• Native Libraries 本地库
– Bionic Libc
• 定制的C 库函数实现,为嵌入式应用做了优化
– Function Libraries
• Webkit\Media\SQLite
– Native Servers
• Surface Flinger
• Audio Flinger
– Hardware Abstraction Libraries
• 用户空间的C/C++库
• 定义了Android 对硬件驱动要求的接口实现
• 将Android 的平台逻辑和硬件接口分离
Android 架构
• Android Runtime Android 运行时
– Dalvik
•
•
•
•
为嵌入式开发环境设计的特有的虚拟机实现
支持多虚拟机进程
高度CPU 优化的字节码解释程序
以优化的.dex 文件格式运行, 能够高效的使用运行
时内存
• Jave 的.class / .jar 文件在编译时转化为.dex
– Core Libraries 核心库
• 核心的Java 语言API
Android 架构
• Application Framework 应用程序框架
– Core Platform Services 核心平台服务
•
•
•
•
•
•
Activity Manager 活动管理
Package Manager 包管理
Window Manager 窗口管理
Resource Manager 资源管理
Content Providers 内容管理
View System 视窗系统
– Hardware Services 硬件服务
• 提供对底层硬件访问的API、一般通过本地Manager
对象访问
Android系统评估
• Android
– 应用程序框架更优
– 开源
– 使用Java开发
• Java语言本身具有元信息,可以进行动态适配
• Java程序的jni部分(c/c++)不具有元信息,无法进
行动态适配
• Android系统自适应性较Windows8弱
• C/C++层面需要元信息(COM/CAR)
Windows 8系统架构
Window8 Platform
– 创建了一套“Metro”应用程序框架
– Metro中的系统服务层,被称为
WinRT(Windows Runtime)
– WinRT是一组全新设计、与传统不兼容,并使
用改进的COM技术开发的API
– 标志着COM技术的回归,取代.Net技术重新成
为构建系统服务的基石。
Elastos操作系统
Elastos = Android + Win8 + CAR
•
Elastos Apps
Java
C++
Android RT
HTML/CSS
JavaScript
ELASTOS RT
Application Framework
Activity Manager
Window Manager
Content Providers
View System
Capsule Manager
Resource Manager
Location Manager
Notification
Manager
ELASTOS CORE LIBRARIES
3PART LIBRARIES
LINUX KERNEL
CAR RT
Elastos系统优势
• CAR构件技术的持续演进,将使系统发挥
巨大威力
– 使C++具有解释性语言相似的元信息描述与动
态特性
– 形成一套面向接口的C++系统类库
– 构件化
– 更高效、更安全
– 有巨大的潜在创新空间
Elastos系统优势
• 有自主特色的智能终端操作系统
– 更先进的本地应用框架
– 支持多种应用形态
• C++应用(Elastos应用)
• Java应用(Android应用)
• Html/css Javascript应用(firefox OS)
Elastos操作系统
• Elastos App runtime
– Dalvik VM  CAR runtime 运行时
– Core Lib  Elastos核心库
Elastos.core.libs&Elastos.framework.core
• Elastos Zygote 进程
– Android Zygote  Elastos Zygote
– Superexe
Elastos操作系统启动流程
•
•
•
•
•
启动init进程
启动Elastos Zygote进程
初始化runtime运行时进程
启动ServiceManager
启动System Server和本地Surface Flinger 、
Audio Flinger服务
• 启动Android 管理服务
• 启动Home Activity
Elastos操作系统启动流程
• init进程启动
– rc文件解析
• Actions, Commands, Services, and Options
– 启动Native服务
• Surface Flinger
• Audio Flinger
– 循环调用service_start,将启动后的service状态设置为
SVC_RUNNING。
– Init进程作为属性服务(Property service)维护这些
NativeService
Elastos操作系统启动流程
• 启动Elastos Zygote进程
– 此进程用来启动一个Elastos App Runtime实例
– 为应用或服务的请求加载类并监听套接字
– 生成创建管理进程的Elastos RT实例请求
– 通过写时复制来实现最大化的复用
Elastos Zygote
Elastos操作系统启动流程
• Elastos Zygote进程
– 在Elastos Zygote进程进入循环之前,调用startSystemServer( );
– 利用Socket通讯,接收请求,Fork应用程序进程,进入Zygote进
程服务框架中。
请求创建App Apartment
服务请
求
Elastos
App
Apartment
Elastos操作系统启动流程
• 初始化runtime运行时进程
– 初始化服务管理器
– 注册服务管理为默认的绑定服务上下文管理
Elastos Zygote
Elastos操作系统启动流程
• 启动System Server服务
– Elastos Zygote 为系统服务进程生成一个新的
Elastos App Runtime实例(含Elastos核心库)
并启动服务
Elastos Zygote
Elastos App RT
Elastos
Elastos操作系统启动流程
• 系统服务启动两个本地Surface Flinger 和
Audio Flinger
– 并向Service Manager注册成为IPC 服务对象
Elastos Zygote
Elastos App RT
Elastos
Elastos操作系统启动流程
• 启动Android 管理服务
– Elastos Zygote 为Android 管理服务进程生成一个新的Elastos
App Apartment (不含Elastos核心库)实例并启动和注册服务
Elastos
Elastos Zygote
Elastos App RT
Elastos
Elastos操作系统启动流程
• 当加载了所有服务后系统即准备完成
Elastos App RT
Elastos Zygote
Elastos操作系统启动流程
• 启动Home Activity
Elastos App
Apartment
Elastos App RT
Elastos Zygote
启动Home Laucher
请求创建App Apartment实例
Elastos App RT
Elastos Zygote
Elastos App
Apartment