Android 架构 必读
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
增强支持OpenGL ES 2.0 支持Flash 10.1 APP2SD将支持软件安装到存储卡 修复多点触摸传感器的问题 激活轨迹球闪光色彩设置 增加FM收音机支持
9
Android 2.3
北京时间12月7日凌晨,Google正式发布了代号为 Gingerbread的Android 2.3平台。 谷歌Nexus S将是第一款搭载Android 2.3姜饼系统的机型。 特点
全新的JIT编译器
Just In Time动态翻译 允许实时地将解释型程序自动编译成本机机器语言,以使程序执行的速 度更快 在适当的情况下实施低级代码优化
常量重叠、拷贝复制、取消范围检查、取消常规副表达式以及方法内联等
额外的可用RAM
内核从2.6.29升级到2.6.32,可以寻址更大的RAM
•
提供全系统的表面“设计器”,将所有表面渲染动作处理
后传递到帧缓冲
•
可以结合二维和三维的表面,或者多个应用的表面
43
Audio Flinger
• • •
控制所有的视频设备 处理多视频流进行PCM视频输出路径 控制视频到不同的输出
44
Hardware Abstraction Libraries
4
软件
wenku.baidu.com
与gphone互动
Google TV
Google TV采用Android 2.1系统
观看来自Hulu、YouTube、Netflix的视频以及NBC等电视台 的节目 Google的整合搜索技术
在视频网络里查找某个视频进行搜索,浏览海量的网络视频
可下载各种应用软件 Chrome浏览器 照片浏览器 游戏 音乐播放
45
Hardware Abstraction Libraries
• • •
C/C++库文件层
定义Android的驱动接口
将Android逻辑平台从硬件接口中分开
46
Android Runtime
• •
Dalvik 虚拟机
核心库
47
Dalvik 虚拟机
•
完全为Android定制的虚拟机,基于QEMU
Chrome OS笔记本
2011出 测试Chrome OS系统的笔记本
12寸,支持WiFi和3G,8小时续航和8天待机 需要签约两年,每月100M流量
合作推广Chrome OS笔记本
Chrome OS特点
速度
Chrome系统不支持普通硬盘,只支持速度更快的固态硬盘。 Chrome系统优化了启动过程,直接从固件引导优化过的内核。 Chrome系统启动过程仅需数秒 Chrome系统里所有的应用软件都是网络化的,整个系统界面就是 一个Chrome 浏览器。 所有的数据都会存储在云端,即使机器丢失不会对数据造成损失, 而且在所有电脑上的操作都是类似的。 Chrome系统启动的每个步骤都需要验证安全签名。任何一个步骤 验证失败,系统都会自动重启,重新下载干净的系统。 Chrome系统所有执行的程序都会在加密的Sandbox模式下执行。 所有本地用户数据都会加密,大部分数据都存储在云端。
2
Android背景
移动用户爆 炸增长,已 经大大超过 了PC用户
3
谷歌TV
2010年5月19日发布,百万个电视台 硬件
英特尔的Atom CE4100 SoC(2009年发布的产品)
支持 1080p 影片播放、Blu-ray 支持 MPEG-4、3D绘图
Sony的电视机 罗技的遥控器 Android 2.1 支持Flash 10.1 支持Android market的软件 Android手机当遥控器来操作Google TV 手机上正在看的东西,可以丢到google TV上播放
简单
安全
Chrome OS vs Android
googleTV当时可以选择两者中的任一个 Android是用于手机和平板电脑的;Chrome OS是用 于上网本的 Chrome OS运行不了Linux桌面或Android的应用 Chrome OS可以不断地更新
Android系统基础篇
• • •
提供应用程序可移植性和运行环境的一致性 运行优化的dex格式文件和Dalvik字节码 Java .class/.jar 在创建的时候就被转换成为了 .dex
•
为嵌入式环境设计
• • •
支持每设备多个虚拟机进程
高度CPU优化的字节码解释器 高效内存使用
48
核心库
针对Java语言的APIs提供了一个强大,然而简单 的开发平台
Google Reader Gmail
Android系统深入篇
一、进程管理
进程
当应用程序的第一个组件需要运行时,Android就创建一个只包 含一个线程的Linux的进程 默认情况下,应用程序的所有组件都在这个进程中的线程中执行 每一个进程都被一个manifest file控制 当内存资源很紧张的时候,Android会暂时中止掉一些优先级较 低的进程 在一个进程的主线程中,所有的组件都将被初始化。 可以通过Java传统的Thread类进行创建 Android操作系统会尽量长时间的保持线程
Android汽车导航仪设备
通过MapAPI及其它方式提供的地图功能 提供广泛的地图数据和其它相关数据 ConnectedDrive升级包
为用户想去的地方提供图片说明 谷歌已经拥有了大量的图像资料,包括本地图片、卫星图像、街道视 图以及大量用户自己创建的照片
对设施实行三维及图像显示 车载装置中配置Android电话 车载导航仪能与云计算(Cloud Computing)设备连接, 便可经由通信网络进行服务升级,使导航仪达互联网速度
29
Binder in Action
30
电源管理:问题
移动设备通过电池提供电力 电池的容量十分有限
31
电源管理:解决方法
• • • •
建立在标准的Linux Power Manager(PM)之上
更激进的能耗管理策略
组件通过“唤醒锁”发出保持开机的请求 支持多种类型的唤醒锁
32
Android PM in Action
革新的输入方式
全新的拼写检查机制 对虚拟组合键的支持 类似iOS效果的一键复制粘贴功能
电源管理
更为丰富的电源管理选项 简化了动态壁纸效果延长待机时间
全新的交流方式
原生支持VoIP/SIP功能 支持前置摄像头 支持NFC近场通讯技术
游戏支持能力提升
增加了新的垃圾回收和优化处理事件 原生代码可直接存取输入和感应器事件、EGL/OpenGL ES、OpenSL ES 新增多个API和包括陀螺仪在内的新传感器类型 新的管理窗口和生命周期的框架。
• • • •
数据结构 实用类 文件访问
……
49
应用程序框架
•活动管理器 •包管理器
•窗口管理器
•资源管理器 •内容提供器 •视图系统
•通知管理器
•电话管理器 •各种服务
AJAX
网页应用程序 <canvas>使JavaScript可直接绘图 DOM可以创建UI特效 Android目前不支持HTML5,但有Gears
37
Function libc
• • •
Webkit
Media Framework
SQLite嵌入式数据库
38
WebKit
• • •
建立在开源的 WebKit之上 网页渲染以桌面视图模式完整显示 完全的支持 CSS, Javascipt, DOM, AJAX
•
支持单栏和自适应视图渲染
39
Media FrameWork
25
Linux内核
26
Linux内核
27
Binder:问题
应用与服务可以运行在不同的进程中,但是 相互必须通信且共享数据
IPC会带来巨大额外处理开销和安全
28
Binder:解决方法
•
• • • •
驱动程序加快进程之间的通信
通过共享数据提高性能 对于处理请求,每个进程有单独的线程池 引用计数和对象引用进程间映射 进程间同步调用
ANDROID
架构
Android概述
Android 手机操作系统是2007年11月5日由美国 Google公司基于Linux整合开发的嵌入式系统,后 开源并由后由开放手机联盟Open Handset Alliance)开发 在全世界范围内,Moto、HTC(多普达)、联想、 三星等众多公司都已经推出Android手机产品和上 网本产品,而且有越来越多加速上升的趋势。 2009年2月 android 1.1 2009年5月 android 1.5 Cupcake 2009年9月 android 1.6 Donut 2009年10月 android 2.0/2.1 Eclair 2010年5月 android 2.2 Froyo 2010年12月 android 2.3 Gingerbread
Android概述
应用程序构建模块
活动 用户界面部件通常对应一个屏 幕
意向接收
服务 内容提供
设置并回应提示或状态改变, 并激活应用程序
没有前端界面的后台任务 应用程序可以共享数据
23
Android开源开发
•
•
• • • • • • •
软件栈在Apache 2.0协议下开源 第一步手机发布后源码即公开 人人都可以编译构建系统镜像 用户能控制自己的体验 他们决定安装何种程序 他们可以配置默认的设置 无需繁杂的发布程序的过程 没有隐藏或特权的框架API 可以集成、扩展、替换已有的组 件
Netflix、Pandora、Twitter、 Youtube和索尼的Qriocity串流 视频服务
32英寸联网电视售价799.99美元, 46英寸的1399.99美元
6
Google车载系统
Google的地图服务(GoogleMaps)
“Google Maps”、“Google Earth”及“Streetview”
35
Bionic libc
• • •
BSD协议,使得GPL不出现在用户空间
体积小,代码路径短,会在每个进程中加载
自定义的pthread实现,十分快速而简洁
36
Bionic libc
• •
不支持某些POSIX特征 与标准的GNU glibc库不兼容
•
所有的本地程序必须依照bionic库进行编译
多媒体功能提升
新增VP8和WebM视频格式支持 提供AAC和AMR宽频编码 提供了新的音频效果器,比如混响、均衡、虚拟耳机和低频 提升。
Chrome OS
Chrome OS及Chrome应用商店
2010年12月8日,谷歌宣布正式发布桌面操作系统 Chrome OS操作系统以及Chrome应用商店 云操作系统 Chrome OS会持续不断地更新, 主要面向上网本市场
• • •
建立在PacketVideo OpenCORE平台之上
支持标准的视频,音频格式
支持硬件/软件解码插件
40
SQLite
• •
轻量级事务数据存储
多数平台数据存储的后端
41
本地服务器
•
表面抛射器 Surface Flinger
•
音频抛射器 Audio Flinger
42
Surface Flinger
7
谷歌无人驾驶汽车
已经行驶了14万英里的里程、只发生过一次车祸 计算机视角:
使用视频摄像头、雷达传感器,及激光测距器来了解周围的交通 状况 谷歌自己的地图导航 通过谷歌的数据中心来实现
数据中心能处理汽车收集的周围地形相关的大量信息
2013-7-10
浙江大学计算机学院 8
Android 2.2版本,10年5月19日发布
全新的UI界面 革新的输入方式 更好的电源管理 全新的交流方式 游戏支持能力提升 多媒体影音功能提升
全新的UI界面
对经典的动态界面进行了简化,然后上面的 通知栏和下面弹出的菜单也从原来的灰色变 成了黑色,保持界面的一致性。 使得手机使用中的耗电量降低,有助于提升 待机时间,同时对手机的运行速度有所提升
33
本地库
• • • •
Bionic Libc 函数库(Funtion Libraries) 本地服务(Native Servers) 硬件抽象库(Hardware Abstraction Libraries)
34
Bionic Libc
• •
什么是Bionic Libc 定制库应用,优化嵌入式的应用
英特尔Atom芯片 盈利模式
在11个有线电视网络销售广告位
5
谷歌上网电视
索尼的互联网电视
无线(Wi-Fi-ready)方式与网络 连接 谷歌的Android平台 英特尔的Atom芯片 机顶盒 蓝牙播放器 遥控器:双手操纵的遥控器配备了 光学鼠标和QWERTY键盘
预先安装的程序