android的前世今生
1 android的诞生
Android的创始人Andy Rubin很喜欢机器人,并把公司起名叫Android。Rubin最初想把Android打造成一个可以对任何软件设计人员开放的移动终端平台。2005年被谷歌收购,后来被评为谷歌“历史上最成功的交易”。
Andy Rubin
2 android的优点
2.1 开放性
1 开放底层操作系统。
2 开放上层应用程序。
3 开放用户界面。
4 无需授权与费用。
2.2 应用程序平等
核心应用与第三方应用运行在一个虚拟机上,虚拟机提供应用与硬件资源的通信API。故所有应用间为平等的。
核心应用是指拨号通信等应用,都可以被替换。
2.3 应用程序间无界限
1.开发人员可以把Web上的数据与本地的联系人、日历、位置信息结合起来,创造全新的用户体验。
2.应用程序同样支持声明其功能可以供其他应用使用。
2.4 快速方便的应用程序开发
提供大量的实用库和工具,开发人员可以快速地创建自己的应用程序。如:几行代码就可以实现地图信息的应用。
3 android与移动因特网
android是从传统因特网进入移动因特网。人们会慢慢从PC桌面系统为中心转向以网络为中心。google的真正目标是取代个人PC或企业数据中心,成为全球计算机。把传统因特网的“云”也带到移动因特网上,因为因移动互联是未来的必然趋势。
4 android系统架构
4.1 应用程序
Android平台默认包含了一系列核心应用程序,包括mail、短信、日历、地图、浏览器等,这些应用程序都可以用java语言编写,也可以用自己编写的应用进行替换。替换是由应用程序框架来保证的。
4.2 应用程序框架
4.2.1 视图系统
丰富的、可扩展的视图集合,可用于构建一个应用程序。包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器。
4.2.2 内容提供器
使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据
4.2.3 窗口管理器
管理所有窗口程序
4.2.4 活动管理器
管理应用程序生命周期,提供通用的导航回退功能
4.2.5 通知管理器
使所有的应用程序能够在状态栏显示自定义警告,状态栏通常在顶部。
4.2.6 资源管理器
提供访问非代码资源,如本地化字符串、图形和布局文件
4.2.7 位置管理器
提供位置服务。
4.2.8 电话管理器
管理所有移动设备的功能。
4.2.9 包管理器
系统内的程序管理。
4.3 android运行时
4.3.1 核心库
其包含二部分内容:一部分为绝大数JAVA程序语言所需要调用的功能函数,另一部分为Android的核心库如android.os、android.net、android.media等。与标准JAVA不同,每个android应用程序都有一个自有进程,android不是用一个Dalvik虚拟机来同时执行多个应用程序,而是每个Android应用程序都使用自有Dalvik虚拟机来执行。
4.3.2 Dalvik虚拟机
Dalvik虚拟机是一种基于寄存器的JAVA虚拟机。为移动设备而设计,优化同时执行多个虚拟机的特性。执行dex文件,是由dx工具转换的java类。
4.4 系统库
4.4.1 媒体函数库
以OpenCORE为基础,该函数可以播放、录制多种常见的影音格式。
4.4.2 Surface Manager
在同时执行多个应用程序时,负责管理显示与存取操作间的互动,另外负责将2D绘图与3D绘图进行显示合成。
4.4.3 WebKit
网页浏览器引擎,也可以提供内内嵌网页显示效果。此为开源项目。
4.4.4 SGL
提供Android在2D绘图方面的绘图引擎。
4.4.5 OpenGL ES
依据OpenGL ES API标准实现的3D绘图函数库。
4.4.6 FreeType
提供点陈字、向量字的描绘显示。
4.4.7 媒体框架
对各种音频、视频的支持。
4.4.8 SQLite
一套轻量级的数据库引擎,可供其他应用程序调用。
4.4.9 Libc
针对移动设备而优化了的C库。
4.5 linux内核
基本linux的内核,包括了显示驱动、摄像头驱动、FLASH内存驱动、Binder(IPC)驱动、键盘驱动、Wifi驱动、Audio驱动、电源管理。