绝想首页

Android ,百科全书第一章:了解 Android

陈睿 [甜蜜] 2013-04-06 06:24:14 星期六 晴天 查看:102 回复:0 发消息给作者




什么是Android
Android是基于Linux内核的软件平台和操作系统,是Google在2007年11月5日公布的手机系统平台,早期由Google开发,后由开放手机联盟(英语:Open Handset Alliance)(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。 Android在未公开之前常被传闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google始发表自家品牌手机电话的Nexus One。

历史







第一台上市的 Android 手机

开发
Google于2005年并购了成立仅22个月的高科技企业Android,展开了短信、手机检索、定位等业务,同时基于Linux的通用平台也进入了开发。

2008 Patrick Brady于Google I/O 演讲“Anatomy & Physiology of an Android”,并提出的 Android HAL 架构图。HAL 以 ●.so 档的形式存在,可以把 Android framework 与 Linux kernel 隔开。

公布前的传闻
Google的东南亚销售与营运常务董事Richard Kimber曾说:"At this point in time, we are very focused on the software, not the phone.(目前我们完全专注于软件而非电话)"。可是Google并未正式否认正在制作电话的传闻,Google可能与一家硬件生产商合作创作 Google Phone。

传言指出Google Phone将提供完全免费的服务,Google会通过广告获取收益。Google Phone的发布日期预期为2009年。

LG宣布将于2007年第二季开始在其手提电话产品中安装Google的软件。

升级
Android系统今后将继续每半年一次的升级步伐,分别定在每年的夏天和年终。每代Android系统都将以食物命名,比如1.5版叫做 Cupcake(纸杯蛋糕),1.6版为Donut(甜甜圈),然后是Eclair(法式奶油夹心甜点)和Flan(水果馅饼)。Donut将把社交网络功能作为升级重点,在“手机的各种体验中”都增加社交网络元素。
对手机行业的影响

已经与[Sony Ericsson]、[HTC]、NTT DoCoMo、KDDI、Motorola等世界移动领域34家公司于免费提供达成一致。今后对于移动通讯的影响势必会进一步体现出来。但是如此广泛公司的同盟是否能够有效运作及以持久值得拭目以待。

发布
1.5 (Cupcake)
基于Linux Kernel 2.6.27         2009年4月30日,官方1.5版本(Cupcake)的Android发布。主要的更新如下:

    ● 拍摄/回放视频,并支持上传到youtube
    ● 支持立体声蓝牙耳机,同时改善自动配对性能
    ● 最新的采用WebKit技术的浏览器,支持拷贝/粘帖和页面中搜索
    ● GPS性能大大提高
    ● 屏幕虚拟键盘
    ● 主屏幕增加音乐播放器和相框widgets
    ● 应用程序自动随着手机旋转
    ● 短信,Gmail,日历,浏览器的用户界面大幅改善,比如说Gmail现在可以批量删除邮件了
    ● 相机启动速度加快,拍摄图片可以直接上传到picasa
    ● 来电照片显示

1.6 (Donut)
基于Linux Kernel 2.6.29         2009年9月15日, 1.6(Donut)版本SDK发布。主要的更新如下:

    ● 完全重新设计的Android Market
    ● 手势支持
    ● 支持CDMA网络
    ● 文字转语音系统(TXT-2-speech)
    ● 快速搜索框
    ● 全新的拍照界面
    ● 应用程序耗电查看
    ● 支持VPN
    ● 支持更多的屏幕分辨率
    ● 支持OpenCore2媒体引擎
    ● 新增面向视觉或听觉困难人群的易用性插件

2.0/2.0.1/2.1
(Eclair)
基于Linux Kernel 2.6.29         2009年10月26日, 2.0(Eclair)版本SDK发布。主要的更新如下:[12]

    ● 优化硬件速度
    ● "Car Home"程序
    ● 支持更多的屏幕分辨率
    ● 重整界面
    ● 新的浏览器的用户界面和支持HTML5
    ● 新的联系人名单
    ● 更好的白色/黑色背景比率
    ● 改进Google Maps 3.1.2
    ● 支持Microsoft Exchange
    ● 支持内置相机闪光灯
    ● 数字变焦
    ● 改进的虚拟键盘
● 蓝牙2.1



应用程序

以Java为编程语言,使Android从接口到功能,都有层出不穷的变化,其中Activity等同于J2ME的MIDlet,一个 Activity 类(class)负责建立视窗(window),一个活动中的Activity就是在 foreground(前景)模式,背景运行的程序叫做Service。两者之间通过由ServiceConnection和AIDL链接,达到复数程序同时运行的效果。如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止(stopped),甚至被系统清除(kill)。

View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC的Android Hero手机即含有大量的widget。至于ViewGroup 是各种layout 的基础抽象类(abstract class),ViewGroup之内还可以有ViewGroup。View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。View 与事件(event)息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰(touch)的事件时,就要向Android框架注册View.OnClickListener。另外还有Image等同于J2ME的BitMap。

中间件
操作系统与应用程序的沟通桥梁,并用分为两层:函数层(Library)和虚拟机(Virtual Machine)。

Bionic是 Android 改良libc的版本。Android 同时包含了Webkit,所谓的Webkit 就是Apple Safari 浏览器背后的引擎。Surface flinger 是就2D或3D的内容显示到屏幕上。Android使用工具链(Toolchain)为Google自制的Bionic Libc。

Android采用OpenCORE作为基础多媒体框架。OpenCORE可分7大块:PVPlayer、PVAuthor、Codec、 PacketVideo Multimedia Framework(PVMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。

Android 使用skia 为内核图形引擎,搭配OpenGL/ES。skia与Linux Cairo功能相当,但相较于Linux Cairo, skia 功能还只是阳春型的。2005年Skia公司被Google收购,2007年初,Skia GL源码被公开,目前Skia 也是Google Chrome 的图形引擎。

Android的多媒体数据库采用SQLite3数据库系统。数据库又分为共用数据库及私用数据库。用户可通过ContentResolver类 (Column)取得共用数据库。

Android的中间层多以Java 实现,并且采用特殊的Dalvik 虚拟机(Dalvik Virtual Machine)。Dalvik虚拟机是一种“寄存器型态”(Register Based)的Java虚拟机,变量皆存放于寄存器中,虚拟机的指令相对减少。

Dalvik虚拟机可以有多个instance, 每个Android应用程序都用一个自属的Dalvik虚拟机来运行,让系统在运行程序时可达到优化。Dalvik 虚拟机并非运行Java Bytecode,而是运行一种称为.dex格式的文件

硬件抽像层
Android HAL 是为了将 Android framework 与 Linux kernel 隔开,降低对 Linux kernel 的依赖,以达成kernel independent。Android HAL 目前以 HAL stub 的形式存在,本身是.so 档,是一种 proxy 的概念。Android runtime 向 HAL 取得 stub 的 operations,再以 callback 的方式操作函数。

操作系统
Android 是运行于 Linux kernel之上,但并不是GNU Linux。因为在一般GNU/Linux 里的功能,Android 大都没有支持,包括Cairo, X11, Alsa, FFmpeg, GTK, Pango, Glibc等都移除掉了。Android又以bionic 取代Glibc, 以Skia 取代Cairo, 再以opencore 取代FFmpeg 等等。Android 为了达到商业应用,必须移除关于GNU Copyleft 的限制,例如Android将驱动程序移到 userspace,使得Linux driver 与 Linux kernel彻底分开

目前Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Managemeat),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。




蓝色部分:应用程序绿色及黄色部分:中间件 红色部分:操作系统内核



顶一下(32 写日记 1242393 232679
分享排行

 

 

留住已经逝去的峥嵘岁月 记住曾经绽现的万种风情 在记忆即将淡漠的时候 来把这些重新回味

Copyright (C) 2008-2014 www.juexiang.com, All Rights Reserved.

京ICP备2023001011号-3   京公网安备11010802011908号

客服QQ 1017160561 违法和不良信息举报电话 13148464312 邮箱 1017160561@qq.com