完整版Android调研报告.docx
- 文档编号:4535573
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:14
- 大小:149.58KB
完整版Android调研报告.docx
《完整版Android调研报告.docx》由会员分享,可在线阅读,更多相关《完整版Android调研报告.docx(14页珍藏版)》请在冰豆网上搜索。
完整版Android调研报告
Android系统调研报告
学校:
北京邮电大学
学院:
计算机学院
姓名:
杨志锋
班级:
07409班
学号:
071217
指导老师:
许可
时间:
2011年2月28日
Android系统调研报告
摘要:
Android手机操作系统自Google公司推出以来,经过两年的发展,已经成长为仅次于Aymbian的巨头,成为众多移动终端生产商和应用程序开发者青睐的选择。
这次调研分析了Android系统的特点,介绍了Android系统构架、市场占有率、各版本的更新,以及对硬件的要求。
简单分析了Android能取得成功的原因,以及Android的发展面临的困难和问题。
关键字:
Android、智能手机系统、Android系统构架、Android版本、Android发展问题
一、Android简介
Android是Google历经数年和投资数亿美元开发出来的智能手机系统,是基于Linux内核的操作系统,是Google公司在2007年11月5日公布的手机操作系统。
Google也发起了围绕Android的组织——开放手机联盟,其英文全称为“OpenHandsetAlliance”。
它采用了软件堆层(softwarestack,又名以软件叠层)的架构,主要分为三部分。
底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java编写。
随着各大移动终端生产商大力开发和生产基于Android的移动智能设备,Android迅速得到业界和社会的认可,并成为整个产业的热点,基于Android平台的各类人才逐渐成为各大企业竞相争夺的焦点。
而且Android是一个开放的系统,不管是企业还是个人都可以参与来表达自己的创意和想法。
二、Android发展历程
Android1.1
发布时间:
发布于2009年2月
代表手机:
T-MOBILEG1
Android1.5
发布于2009年5月
代表手机:
摩托罗拉CILQ
Android1.6
2009年9月发布
代表手机:
索尼爱立信X10
Android2.0
2009年10月26日
代表机型:
摩托罗拉XT800,HTCG6
Android2.0/2.1Eclair
Android2.1:
2009年10月26日,又一个主要版本升级以创纪录的速度放出。
这次,大版本升级到了Android2.1“Eclair.”
Android2.2Froyo
谷歌于北京时间2010年5月20日晚上10:
30点在旧金山Moscone会展中
心举办
GoogleI/O2010大会第二天的会议,Google正式发布了代号是“froyo冻酸
奶”的
Android操作系统2.2版。
相对于上一版本的改变:
1、整体性能大幅度的提升
2、3G网络共享功能。
3、Flash的支持。
4、App2sd功能。
5、全新的软件商店。
6、更多的Web应用API接口的开发
Android2.3Gingerbread
北京时间12月7日凌晨,Google正式对外发布了他们的下一代智能手机
操作系统Android2.3也就被大家所熟知的AndroidGingerbread系统。
虽
然在版本号方面Android2.3相对于前作而言的提升并不算多,但是从功
能以及界面的变化上来看还是十分明显的。
虽然是一个较为重大的更新,但是Android2.3在界面方面的改变相对于之
前的Android2.2而言其变化并不算明显,其主要的变化来自于界面的配色
方面。
Android2.3在配色方面更多的使用了绿色配色,例如状态栏、通话
图标以及其他的一些功能图标。
另外全新的系统在界面的反应速度方面相
对于前作也有了一定程度的提升,现在大家使用Android系统将会觉得使
用起来更为流畅。
Android2.3在文字输入方面做了改进,以提高输入速度。
首先改进了虚拟
键盘,按键的颜色做了调整,更易于辨识。
增强了输入法联想功能。
数字
输入的时候可以不用切换键盘,通过组合键来输入。
之前Android系统具
备文本复制功能,但是操作方式不是很易用,这次做了改进。
长按文本时
会跳出选择范围的拨杆。
Android2.4
就像Android2.0和2.1版本都使用Eclair(法式奶油夹心甜点)一样,Android
2.3和2.4将会共享Gingerbread(姜饼)代号。
这两个版本之间的变化不会
太大,但是会有不少功能更新。
目前已知的Android2.4带来的更新包括更多的动画特调、更快的运行速度、
软件通话降噪、视频聊天等。
Android2.4系统不会是之前一直谣传的Android3.0,其真正的版本号将会
是Android2.4。
蜂巢将会在2011年发布,尤其是在Android之父“AndyRubin(安迪鲁宾)”秀了搭载该系统的摩托罗拉平板机之后就更加确信这一点了,不过蜂巢究竟在何时发布,同时还会有别的什么设备一同面世,蜂巢之后又是什么系统,这些问题我们都不知道答案。
发布时间预计是2011年的2月14日至17日在巴塞罗那举办的MWC2011移动通信世界大会中。
Android3.0Honeycomb
2011年2月3日凌晨,谷歌正式发布了专用于平板电脑的Android3.0
Honeycomb系统。
这是首个基于Android的平板电脑专用操作。
首款采用
Android3.0系统的是MOTOXOOM。
该机是摩托罗拉移动在2011年1月
5日,在美国拉斯维加斯就CES电子消费展推出的旗下首款平板电脑。
3.0系统特性
专用于平板电脑
全新设计的UI增强网页浏览功能
n-apppurchases功能
经过优化的Gmail电子邮箱;
全面支持GoogleMaps
三、Android特点
Android手机操作系统的推出,大大受到广大编程人员的喜爱。
那么它究竟有什么出色的特点吸引着人们的眼光呢?
这里总结了一些Android特点,以供对此有兴趣的朋友参考学习。
1.Android是什么?
Android是一个平台,主要包括Linux微内核,中间件(SQLite等),关键应用(电话本、邮件、短消息、GoogleMap、浏览器等),提供的Java框架,以及Android中的JVM。
2.Android特点之关键类
视图,ContentProviders(应用交互管理类)、ResourceManager非编码资源管理类、NotificationManager(通告管理类)、ActivityManager(生命周期管理类)。
3.Android特点之界面开发
这一块主要讨论了Android的界面开发机制,可以讲组件的初始化抽取出来放到配置文件中,组件更新用编码方式来处理。
4.应用构成
Android的应用一般由以下四个关键部分构成Activity、IntentReceiver、Service、ContentProvider。
其中Activity是必要部分。
应用场合:
Activity每个应用都是必须得,Activity代表一个应用的一个具体的界面管理类,其本身并不显示。
IntentReceiver可使应用对外部事件做出响应,比如,当应用正在执行,突然有了来电,这个时候可使用IntentReceiver做出处理是应用更健壮。
ServiceAndroid应用的生命周期是由Android系统来决定的,不由具体的应用的线程左右。
当应用要求在没有界面显示的情况还能正常运行,(要求有后台线程,而后台线程是不会被系统回收,直到线程结束)这个时候就需要用到Service
ContentProvider可以说ContentProvider封装很多Android当中的上下文环境,包括SQLite,这就使得在不同应用之间交互成为可能。
5.Android特点之布局管理
FrameLayout:
左上角只显示一个组件。
LinearLayout:
线性布局管理器,分为水平和垂直俩中,只能进行单行布局。
TableLayout:
任意行和列的表格布局管理器。
其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。
AbsoluteLayout:
绝对布局管理器,坐标轴的方式,左上角是(0,0)点,往右x轴递增,往下Y轴递增。
RelativeLayout:
相对布局管理器,更具最近一个视图组件,或是顶层父组件来确定下一个组件的位置。
6.Activity交互
Intent方式:
Intent其实就是用来在Activity之间做交互用的,需要说明的是Intent有个意图说明,值得用深究,举个简单的例子,有种叫Intent.ACTION_CALL,可直接拨打电话。
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置。
SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,最终是以xml方式来保存,效率不如Intent,但是由于可以共享,所有可以再Acitivity之间交互。
但其效率比SQLite要高。
SQLite也就是数据库,这种方式不推介,因为其效率问题,如果是在不同应用之间交互,可以考虑SQLite。
或是永久存储的情况下。
7.Android特点之生命周期
理解Android生命周期非常重要,主要有以下几点
每一个Android应用都是以一个进程的方式运行的,其生命周期不是有自身控制,而是由系统根据运行的应用的一些特征来决定。
所有理解好Android生命周期对你的应用什么时候会被系统回收很重要。
理解好生命周期可提高应用的健壮性。
比如应用的初始化应该放到onCreate方法中,应用暂停的时候应用重写onPause方法来保存当前应用操作结果。
8.SQLite
SQLite是Android中提供的内置数据库,据说比MySql更轻巧。
SQLite也是开源产品。
数据库的操作方式主要有以下俩中:
SQL语句直接操作,插入、更新、删除都可以直接写SQL语句,调用execSQL()就可以,而查询需要使用rawQuery()来完成,查询结果返回是一个可滚动的结果集,Cursor在对Cursor操作前,需要将其游标移动到第一位,每取一个结果向下移一位。
四、Android硬件要求
五、Android技术分析
系统构架:
下图显示的是Android操作系统的主要组件:
Android系统构架由5部分组成,分别是:
LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。
1、LinuxKernel
Android基于Linux2.6提供核心系统服务,例如:
安全、内存管理、进程管理、网络堆栈、驱动模型。
LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。
2、AndroidRuntime
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。
每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。
Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。
Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。
两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。
dx是一套工具,可以将Java.class转换成.dex格式。
一个dex文件通常会有多个.class。
由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。
Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。
3、Libraries
Android包含一个C/C++库的集合,供Android系统的各个组件使用。
这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。
下面列出一些核心库:
系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备
媒体库——基于PacketVideo的OpenCORE。
这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG
界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层
LibWebCore——新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图
SGL——基本的2D图形引擎
3D库——基于OpenGLES1.0APIs的实现。
库使用硬件3D加速或包含高度优化的3D软件光栅
FreeType——位图和矢量字体渲染
SQLite——所有应用程序都可以使用的强大而轻量级的关系数据库引擎
4、ApplicationFramework
通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。
开发者可以自由地利用设备硬件优势、访问位置信息、运行后台服务、设置闹钟、向状态栏添加通知等等,很多很多。
开发者可以完全使用核心应用程序所使用的框架APIs。
应用程序的体系结构旨在简化组件的重用,任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能(需要服从框架执行的安全限制)。
这一机制允许用户替换组件。
所有的应用程序其实是一组服务和系统,包括:
视图(View)——丰富的、可扩展的视图集合,可用于构建一个应用程序。
包括包括列表、网格、文本框、按钮,甚至是内嵌的网页浏览器
内容提供者(ContentProviders)——使应用程序能访问其他应用程序(如通讯录)的数据,或共享自己的数据
资源管理器(ResourceManager)——提供访问非代码资源,如本地化字符串、图形和布局文件
通知管理器(NotificationManager)——使所有的应用程序能够在状态栏显示自定义警告
活动管理器(ActivityManager)——管理应用程序生命周期,提供通用的导航回退功能
5、Applications
Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。
所有应用程序都是用Java编程语言写的。
更加丰富的应用程序有待我们去开发!
从上面我们知道Android的架构是分层的,非常清晰,分工很明确。
Android本身是一套软件堆叠(SoftwareStack),或称为「软件叠层架构」,叠层主要分成三层:
操作系统、中间件、应用程序。
从上面我们也看到了开源的力量,一个个熟悉的开源软件在这里贡献了自己的一份力量。
Android开发
开发工具:
Google推出的SDK(softwaredevelopmentkit)。
开发环境:
Google已经发布了Android3.0,但是目前来说2.X仍然占据了市场最大的份额,达到了90%以上,因此开发环境推荐使用SDK2.2+Eclipse
开发语言:
Android的SDK是Java的,将来可能有其他语言版本。
六、Android成功的原因
1、Android普及
毫无争议的事实是,Android的普及是该操作系统成功的原因之一。
由于大量Android设备产品的存在,越来越多的用户也开始选择Android操作系统。
2、Google的重点关注
从一开始,Google就一直牢记一大主要目标,即尽可能快速有效地在市场竞争中获胜,为此,Google就开始在移动市场重点开发。
经过了这些努力,Google终于将其在搜索引擎领域内成功复制其移动战略之中。
3、摩托罗拉
摩托罗拉也Android操作系统的成功有着密不可分的关系。
摩托罗拉推出了Droid手机之后,该公司也由此迎来了在Android领域的大发展局面。
如今,摩托罗拉DroidX和Droid2等手机已经进入了Verizon的商店之中,因而也将更多的使用价值送到了用户手中。
展望未来,摩托罗拉将可能进一步加大对Android操作系统的投资。
4、苹果的失错误
苹果可能也会迎来巨大成功,但是该公司近几年已经犯下了许多错误,这种错误恰恰又帮助Android深受用户欢迎,例如,苹果一直拒绝部分特定应用进入苹果应用商店(AppStore),此举令一些用户感到非常恼火。
另外,苹果长期以来一直不愿意在其产品中提供多任务功能,此举也导致一些用户流向其它设备。
另外,苹果仍未停止与美国电报电话公司之间的独家合作,这些错误也就推动了更多用户奔向了基于Android操作系统的手机。
5、Verizon
Verizon一直被认为是手机领域内的顶尖运营商,该公司拥有数量最多的用户,也具有在美国市场最好的用户,但是该公司却一直依重Android,此举也拉动了Android近几年来的市场份额越来越高。
6、NexusOne
Google的NexusOne手机曾一度被认为是最失败的一款手机,但无论如何,此款手机已经停产。
尽管如此,一个不争的事实上,正是NexusOne将Android操作系统带进了人们的视野之中。
7、iPhone4的天线问题
尽管苹果已经成功地让业界不再重点关注iPhone4的天线问题,但这种问题还是对Android操作系统产生了重大影响。
消费者颇感的担忧的是,iPhone4的通话仍面临中断的风险。
受此影响,用户们也开始渐渐放弃iPhone4,而是选择基于Android系统的手机。
8、Android的巨大改进
Android最初推出以来,该操作系统也面临着诸多的问题。
例如不具有iOS系统中的诸多功能,也缺乏用户想要的一些使用功能。
但时过境迁,Google已经将Android操作系统打造得更具使用价值,如今,Android操作系统也具有了超过iOS的功能,正因为如此,消费者也开始趋之若鹜,纷纷购买Android系统的手机。
9、Google与开发者保持良好关系
苹果近几年来在与开发者的关系方面已经出现了诸多问题,例如禁止一些开发者的应用进入其商店。
不过,Google一直未仿效苹果的这种举措,而是与开发者保持着良好关系,这种应用的开放性也吸引了诸多消息者使用基于Android操作系统的设备,而不是选择iPhone。
10、RIM的失败
RIM也帮助Android操作系统取得了成功。
在苹果与Google进军移动市场之前,RIM一直在移动市场占据主导地位,但是,该公司目光短浅,未能在苹果和Google进入该市场时采取及时的措施。
总而言之,在过去的几年中,RIM懒散的态度的确助长了Android操作系统的成功。
Google让驱动变动不牵动上层,变动成本低,客户容易接受改版。
Google为了获得底层供应商的支持,必须避开GPL的限制,将驱动程式移到UserSpace。
于是驱动开发者(底层供应商)就有利可图,因而日益茁壮,且大力支持Google,Google在手机操作系统的强龙地位自然形成。
七、Android的优劣势
优势:
1.平台源代码开源
●各种设备适用,各个厂商可以修改开源的代码来适用在自己开发的设备上,这在还没有开发的新产品和已经开发完毕的产品(比如M8)中都可以应用。
●免费,不需要缴纳例如wm或苹果或nokia的授权费用,可以省去一部分成本,使自己的设备更便宜,从而让更多的人去购买,让自己的产品广泛使用。
●开发优势,开发软件时可以调试源代码,根据源代码进行软件的bug修改,性能调优等。
2.后台过硬,联盟效应
●google作为后台,具有最好的开发人员,最先进的思想,未来前景不容置疑。
相对于chrome平台,android更具有便携端的优势(比如触摸,性能等)。
虽然pc不会消失,但未来将会是便携设备的天下。
●迄今为止最为广泛的移动生产商联盟,包括三星,联想,moto,htc。
更多的生产商肯定会有更多的手机销售量,会带来更多的用户群。
同时,以众击寡的局面也会令苹果难堪。
3.开发优势
●用java+eclipse开发,易学易用,入门门槛低。
●google提供现成的丰富api类库,并且有googledoc,calendar等免费好用应用的api。
●大量的开源代码可以借鉴。
4.国内发展前景乐观
●山寨厂商开始在手机上用android系统,这是一个很好的消息,低端用户群是一个最广大,最普遍的群体。
●移动,联想在国内都推出了自己的android手机,他们肯定会下大力气推广。
虽然是各自定制,但是开发软件如果兼容性好的话,通用性不成问题。
正是因为Android拥有这些得天独厚的优势,才使得Android后来居上,成为智能手机操作系统的巨头,下图为Android市场占有率(2009&2010)
通过对比可以发现2010年是Android的大丰收年,2011年有着更光明的前景。
劣势:
1.审核机制不完善
Android开发门槛低,所以涌入了大量低层次的开发者,这也导致应用
水平参差不齐。
googlemarket审查机制不严,会使开发的软件淹没在
大潮中。
在软件的推广上要制定一套自己独特可行的办法。
当然appstore
的审核对用户来说则显得有些过了,如何寻找平衡点需要Google想办法。
2.操作复杂
对于普通大众来讲,Android手机的易用性和稳定性和苹果iPhone的
确有较大差距,某些Android手机还不具备多点触控,使用体验就更差,
有人说刷机就可以改善这些功能,但是不能指望所有的普通大众都会刷机,
如果一个厂商将本来应该自己做的事情转嫁给用户,那就显得不负责任了。
3.开发者得不到足够利益
Android平台终于创造出它的第一个百万财富故事,遗憾的是主角仍是让人审美疲劳的《愤怒的小鸟》,此时据首款Android手机发布已过去整整两年。
iOS上第一款月收入过百万美元的应用已不可考,但一夜暴富的故事至今屡见不鲜。
最新上位者是2010年12月9日才开始发售的InfinityBlade,这款售价5.99美元的游戏发售4天销量就突破20万,总收入超过160万美元。
苹果iOS平台始终是Android的对标对象,而iOS上最火爆的应
始终是游戏。
过去两年它已向全球开发者累积分成10亿美元,最近走红
的剑术格斗游戏InfinityBlade,显著提升了iOS游戏画面精致程度的
上限。
但这些在Android平台上都难以复制。
相比iOS,Android平台开发难度低很多,运行效率却是瓶颈。
游
戏程序运算量极大,对系统平台、CPU和内存等软硬件支持要求较高。
Android手机硬件配置本身就逊于iPhone且规格不统一,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 Android 调研 报告