什么是Android
——Android平台简介
Keyword: Google Android,Linux内核,开源,应用领域,开放手机联盟(Open Handset Alliance)
在网上看到有“Android平台”和“Android框架”的概念,首先要清楚的是:“Android框架”只是“平台”的一部分而已。
Android早期由Andy Rubin(Android之父)创办,Google于2005年收购了成立公22个月的Android公司,开始了短信、手机检索、定位等业务,进入了基于Linux平台的开发。Google公司在2007年11月5日正式公布了这个平台,之后由开放手机联盟(Open Handset Alliance)开发。Open Handset Alliance组织由一群共同致力于构建更好的移动电话的公司组成。这个组织由Google领导,包括移动运营商、手持设备制造商、零部件制造商、软件解决方案和平台提供商以及市场营销公司。
Android平台的更新速度很快,第一个版本是Android 1.5 Cupcake(蛋糕杯)接下来是Android 1.6 Donut(甜甜圈)、Android 2.0/2.0.1/2.1 Eclair (法式奶油夹心松饼)、Android 2.2/2.2.1 Froyo(冻酸奶)、Android 2.3 Gingerbread (姜饼人)、Android 3.0 Honeycomb(蜂巢)。3.0是为平板电脑优化的版本。还有流传的Android 2.4 Ice Cream Sandwich(冰激凌三明治)和Android ?? Jelly Bean(胶质软糖) 。可以发现一个有趣的事情,就是每个发布代号都是一个甜品名称,并且是从字母C开始顺序向后排。
从Android的发展看来,它已经不再局限于移动应用领域了,还可以关注一下Google TV
(运行Android系统的电视机=,=),试想一下还有可能出现安装有Android的汽车、微波炉、电冰箱......
来看看到底什么是Android吧,它是一个平台、是一个操作系统、使用Linux内核、包含一套开发框架、各种运行库(Media、SQLite、OpenGL ES等)、Dalvik虚拟机,提供了Android SDK,包含丰富的(还算丰富=,=)工具集(有调试器、库、手机仿真器、文档、示例代码和教程),还有Android Development Tools(ADT),是基于Eclipse的开发辅助插件
下图显示了Android操作系统的架构。
从上图中可以清楚的看出:
-
最上层是面向用户的Application(应用程序),包括电话程序、联系人程序、浏览器、地图、Email等。
-
下面是Application Framework,为开发人员提供访问核心组件所使用的API,包含了丰富的View组件、Content Providers(内容提供器)用来访问另一个应用程序的数据(如联系人),或者共享它们自己的数据、Resource Manager(资源管理器)提供对资源的访问(如本地字符串,图形,布局文件等)、Notification Manager(通知管理器)、Activity Manager(活动管理器)等等。
-
第三层是系统运行库,包含程序库和Android运行库。
一、程序库中包含了一些C/C++库,通过应用框架为开发者提供服务,如:Libc(从BSD继承来的标准C系统函数库)、媒体库、SGL(2D图形引擎)、3D libraries(基于OpenGL ES 1.0 APIs实现,可以使用硬件或软件3D加速)、SQLite(数据库引擎)等等。
二、Android运行库包括一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalivk被设计成一个设备可以同时高效地运行多个虚拟系统。Dalivk虚拟机执行.dex文件(Dalvik的可执行文件),该格式文件针对小内存使用做了优化。同时虚拟机是基于寄存器的,所有类都经由Java编译器编译,然后通过SDK中的dx工具转化成.dex格式,由虚拟机执行。Dalivik虚拟机依赖于linux内核的一些功能,比如线程机制和底层内存管理机制。
-
接下来一层是Hardware Abstract Layer(硬件抽象层),你在早期的架构图中看不到这一层。2008年,Patrick Brady就提出了Android HAL架构,它是为了把Linux kernel与上层框架完全隔开,让Android不至于过度依赖Linux kernel,可以让Android Framework的开发能在不考虑驱动程序的前提下进行。HAL仍以*.so形式存在,Stub向HAL“提供”操作函数,Runtime则是向HAL取得特定模块的操作(operations)。2010年2月3日,Linux内核的开发者,将Android的驱动程序从Linux内核Staging tree(状态树)上去除,从此,Android与Linux核心开发就分开了。
-
最下面一层是Linux核心,Android的核心系统依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Android的Linux kernel也不是GNU/Linux。Android将驱动程序移到userspace,使得Linux driver与Linux kernel分开。
Android平台五大优势特色
这些找工作的时候可能会被问到吧=,=
一、开放性
在优势方面,Android平台首先就是其开发性,开发的平台允许任何移动终端厂商加入到Android联盟中来。显著的开放性可以使其拥有更多的开发者,随着用户和应用的日益丰富,一个崭新的平台也将很快走向成熟。
开发性对于Android的发展而言,有利于积累人气,这里的人气包括消费者和厂商,而对于消费者来讲,随大的受益正是丰富的软件资源。开放的平台也会带来更大竞争,如此一来,消费者将可以用更低的价位购得心仪的手机。
二、挣脱运营商的束缚
在过去很长的一段时间,特别是在欧美地区,手机应用往往受到运营商制约,使用什么功能接入什么网络,几乎都受到运营商的控制。自从iPhone上市,用户可以更加方便地连接网络,运营商的制约减少。随着EDGE、HSDPA这些2G至3G移动网络的逐步过渡和提升,手机随意接入网络已不是运营商口中的笑谈。
三、丰富的硬件选择
这一点还是与Android平台的开放性相关,由于Android的开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。功能上的差异和特色,却不会影响到数据同步、甚至软件的兼容。好比你从诺基亚Symbian风格手机一下改用苹果iPhone,同时还可将Symbian中优秀的软件带到iPhone上使用、联系人等资料更是可以方便地转移。
四、不受任何限制的开发商
Android平台提供给第三方开发商一个十分宽泛、自由的环境。因此不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。但也有其两面性,血腥、暴力、情色方面的程序和游戏如可控制正是留给Android难题之一。
五、无缝结合的Google应用
如今叱诧互联网的Google已经走过10年度历史。从搜索巨人到全面的互联网渗透,Google服务如地图、邮件、搜索等已经成为连接用户和互联网的重要纽带,而Android平台手机将无缝结合这些优秀的Google服务。
以上是总结的一些关于Android平台的简介,以后对于Android的学习,会从Android Application Fremawork开始,逐步的深入底层。
经常在网上看到或听到一些关于Android好坏的评论,由其是关于Android手机方面的,因为还有个Iphone嘛,本人并不想偏向哪边,以目前来说,苹果的系统是很棒,我甚至在用苹果的PC。至于“Android就是手机的未来”这种说法也思考过,也许Android不会成为手机操作系统的未来,但希望开源与分享的精神最终能为未来的生活增添色彩。
参考资料:
http://www.ibm.com/developerworks/cn/opensource/theme/android/
http://www.top-e.org/jiaoshi/html/?250.html
http://zh.wikipedia.org/wiki/Android
http://baike.baidu.com/view/1241829.htm
http://www.gsmcdma.com/a/ruanjiankaifa/xitongjiagou/2010/0515/19.html
- 大小: 128 KB
- 大小: 16.6 KB
分享到:
相关推荐
Android——okhttp的封装,Android——okhttp的封装,Android——okhttp的封装,Android——okhttp的封装,Android——okhttp的封装
【Android——本息计算器】是一个基于Android平台的计算器应用,主要功能是帮助用户计算贷款的本息情况。在金融领域,此类计算器对于个人理财和企业管理都具有很高的实用价值。通过这款应用,用户可以输入贷款金额、...
这个压缩包文件"Android源码——数据库SQLite.zip"可能包含了关于Android中SQLite数据库的源码分析、使用示例以及相关的图像资源,如1-120912223R80-L.png,可能用于解释或展示SQLite在Android中的工作原理。...
Android——贝塞尔曲线动画——直播平台点赞效果.rar,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
标题“深入浅出Android——Android开发经典教材”表明这是一本专注于Android开发的教学书籍,旨在帮助读者从基础开始学习,逐步深入到Android开发的各个方面。从描述中我们可以得知,这本书适合初学者,它通过详细的...
标题"android——多线程"和描述"android——Handler与多线程应用范例"暗示我们将深入探讨如何在Android中使用Handler来管理多线程。 Android系统默认运行在一个单线程环境中,即主线程,也被称为UI线程。主线程主要...
在本项目中,"AndroidStudio————实战演练——仿美团外卖菜单"是一个专注于使用Android Studio开发的应用程序实战案例,目标是创建一个类似于美团外卖的菜单功能。这个项目涵盖了多个Android开发的关键知识点,...
Android学习笔记(一)——创建第一个Android项目 Android学习笔记(二)android studio基本控件及布局(实现图片查看器) Android学习笔记(三)android studio中CheckBox自定义样式(更换复选框左侧的勾选图像) ...
这个压缩包文件"安卓Android源码——android相册系统(用Matrix实现).zip"包含了一个使用Matrix类来实现的相册系统源码。Matrix是Android图形库中的一个关键类,它允许开发者对图像进行平移、旋转、缩放等变换操作。...
"安卓Android源码——GpsTracker源码.zip" 提供的是一个针对Android平台的GpsTracker应用的源代码。GpsTracker通常是一个用于追踪和记录GPS定位数据的应用,它可以帮助开发者了解如何在Android系统中利用GPS服务进行...
在安卓(Android)平台上,日历和日程管理是用户常用的功能之一,涉及到系统的底层机制和API接口。本文将深入探讨安卓Android系统日历日程的操作,基于提供的"安卓Android源码——安卓Android系统日历日程操作.rar...
在Android开发领域,掌握基础知识是至关重要的。这份"Android教材"包含了关于Activity生命周期、Service使用以及Content Provider的讲解,这些都是Android应用开发的核心概念。 首先,我们来深入理解第六讲——...
毕业设计开题报告“android——推箱子”是针对软件工程专业的学生进行的一项实践性学习任务,旨在通过设计和开发一款基于Android平台的推箱子游戏,深入理解和掌握Android游戏开发的相关技术。以下是该开题报告涉及...
"基于Android ——MyDate 好看的日历,效果明显。.rar" 这个标题表明我们关注的是一个Android平台上的应用,名为MyDate,它是一款设计美观、显示效果显著的日历应用。从标题我们可以推测,这个压缩包可能包含了该...
物联网智能插座 AndroidApp部分——本科毕业设计项目源码物联网智能插座 AndroidApp部分——本科毕业设计项目源码物联网智能插座 AndroidApp部分——本科毕业设计项目源码物联网智能插座 AndroidApp部分——本科毕业...
在本项目"Android项目之——漂亮的平台书架"中,我们关注的是开发一款美观且功能齐全的Android应用程序,它能够模拟一个在线书籍展示平台。这个项目涵盖了多个Android开发的关键知识点,包括用户界面设计、数据存储...
《解析Google Android SDK——智能手机开发范例手册》是一本深入探讨Android应用开发的书籍,它提供了丰富的实例,帮助开发者理解并掌握Android SDK的各种工具和技术。本文将基于书中的章节命名,如c3、c12等,来...