第3章Android系统框架 杨刚 中国人民大学
第3章 Android系统框架 杨刚 中国人民大学
本章学习目标: ■了解Android的软件系统框架 ·了解Android应用程序架构 ·认识软件架构的思想 ■延伸软件设计的层次模块设计
本章学习目标: n 了解Android的软件系统框架 n 了解Android应用程序架构 n 认识软件架构的思想 n 延伸软件设计的层次模块设计
对比主流手机OS的架构 Vin Phone框架 Windows Phone Frameworks Device Camera Launchers Windows Phone Integration Choosers Controls PhoneApplicationFrame PhoneApplicationPage PushNotification WebBrowserControl Sensors Silverlight Presentation and Media XNA Frameworks for Games Controls Drawing IsolatedStorage Drawing GamerServices Shapes Markup Media Navigation Media Input Graphics Audio Content Application Object Common Base Class Library Runtime Resources Globalization Reflection Location Text 10 Net Diagnostics Security Threading Collections ComponentModel Configuration ServiceModel Linq
Win Phone 框架 对比主流⼿机OS的架构
对比主流手机OS的架构 Mac OS X框架 User Experience Aqua Dashboard Spotlight Accesssibility Application Frameworks Cocoa Carbon Java Graphics and Media CoreAnimation Core Image Core Video QuickTime OpenGL Quartz Core Audio Darwin
Mac OS X 框架 对比主流⼿机OS的架构
一、Google Android软件架构 APPLICATI▣NS Home Contacts Phone Browser 年中 APPLICATI▣N FRAMEW▣RK Activity Manager Window Content View Notification Manager Providers System Manager Package Manager Telephony Resource Location GTalk Service Manager Manager Manager LIBRARIES ANDROID RUNTIME Surface Manager Media SQLite Core Libraries Framework OpenGL|ES FreeType WebKit Dalvik Virtual Machine SGL SSL libc LINUX KERNEL Display Camera Driver Bluetooth Flash Memory Binder(IPC) Driver Driver Driver Driver USB Driver Keypad Driver WiFi Driver Audio Power Drivers Management
一、Google Android 软件架构
Android系统基础架构 ■Android系统架构和其操作系统一样,采用了 分层的架构。系统架构分为四个层,从高层到 低层分别为 口应用程序层、 口应用程序框架层、 系统运行库层 口Linux核心层
Android系统基础架构 n Android系统架构和其操作系统一样,采用了 分层的架构。系统架构分为四个层,从高层到 低层分别为 q 应用程序层、 q 应用程序框架层、 q 系统运行库层 q Linux核心层
1.Linux内核 Android的核心系统服务依赖于Linux内核, 如安全性,内存管理,进程管理,网络协议 栈和驱动模型。Linux内核也同时作为硬件 和软件栈之间的抽象层
1. Linux内核 Android 的核心系统服务依赖于Linux内核, 如安全性,内存管理,进程管理, 网络协议 栈和驱动模型。 Linux 内核也同时作为硬件 和软件栈之间的抽象层
Android Linux内核与Linux的区别 Android建立在linux内核之上,但是Android不是linux 没有支持本地窗口系统 没有支持glibc.运行库 没有包含完整的linux内核 LINUX KERNEL BrRer Camera Driver Flash Memory Driver BingvPC) USB Driver Keypad Driver WiFi Driver 6 Power Management
Android Linux内核与Linux的区别
Binder: ·驱动程序加快进程之间的通信 ·通过共享数据提高性能 ·对于处理请求,每个进程有单独的线程池 ·引用计数和对象引用进程间映射 ·进程间同步调用 LINUX KERNEL Brver Camera Driver Bluetooth Flash Memory Binder (IPC) Driver Driver Driver USB Driver Keypad Driver WiFi Driver Audio Power Drivers Management
Binder: • 驱动程序加快进程之间的通信 • 通过共享数据提高性能 • 对于处理请求,每个进程有单独的线程池 • 引用计数和对象引用进程间映射 • 进程间同步调用
Binder in Action Android Application User Client IPC 55e#::322 Server Service Manager Space ioctl ioctl open loctl Kernel Space Binder Driver /dev/binder Android Platform Binder的通信模型 ·Client和Server是存在于用户空间 。 Client-与Server:通信,是Binder驱动在内核空间上实现 SM作为守护进程,处理clienti请求,管理全部服务项,并向 Client提供查询Server接口的能力
Binder in Action Binder的通信模型 • Client和Server是存在于用户空间 • Client与Server通信,是Binder驱动在内核空间上实现 • SM作为守护进程,处理client请求,管理全部服务项,并向 Client提供查询Server接口的能力