Android系统调研报告.docx
《Android系统调研报告.docx》由会员分享,可在线阅读,更多相关《Android系统调研报告.docx(15页珍藏版)》请在冰点文库上搜索。
Android系统调研报告
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发展历程
版本
备注
2008年9月发布的Android第一版
Android
Cupcake
(纸杯蛋糕)
2009年4月30日,官方版本(Cupcake纸杯蛋糕)的Android发布。
主要的更新如下:
1、拍摄/播放影片,并支持上传到Youtube
2、支持立体声蓝牙耳机,同时改善自动配对性能
3、最新的采用WebKit技术的浏览器,支持复制/贴上和页面中搜索
4、GPS性能大大提高
5、提供屏幕虚拟键盘
6、主屏幕增加音乐播放器和相框widgets
7、应用程序自动随着手机旋转
8、短信、Gmail、日历,浏览器的用户接口大幅改进,如Gmail可以批量删除邮件
9、相机启动速度加快,拍摄图片可以直接上传到Picasa
10、来电照片显示
Android
Donut
(甜甜圈)
2009年9月15日,(Donut甜甜圈)版本软件开发工具包发布。
主要的更新如下:
1、重新设计的AndroidMarket手势
2、支持CDMA网络
3、文字转语音系统(Text-to-Speech)
4、快速搜索框
5、全新的拍照接口
6、查看应用程序耗电
7、支持虚拟私人网络(VPN)
8、支持更多的屏幕分辨率。
9、支持OpenCore2媒体引擎
10、新增面向视觉或听觉困难人群的易用性插件
Eclair
(松饼)
2009年10月26日,(Eclair松饼)版本软件开发工具包发布。
主要的更新如下:
1、优化硬件速度
2、"CarHome"程序
3、支持更多的屏幕分辨率
4、改良的用户界面
5、新的浏览器的用户接口和支持HTML5
6、新的联系人名单
7、更好的白色/黑色背景比率
8、改进Google
9、支持MicrosoftExchange
10、支持内置相机闪光灯
11、支持数码变焦
12、改进的虚拟键盘
13、支持蓝牙
14、支持动态桌面的设计
Android
Froyo
(冻酸奶)
2010年5月20日,(Froyo冻酸奶)版本软件开发工具包发布。
主要的更新如下:
1、整体性能大幅度的提升
2、3G网络共享功能。
3、Flash的支持。
4、App2sd功能。
5、全新的软件商店。
6、更多的Web应用API接口的开发。
Android
Gingerbread
(姜饼)
2010年12月7日,(Gingerbread姜饼)版本软件开发工具包发布。
主要的更新如下:
1、增加了新的垃圾回收和优化处理事件
2、原生代码可直接存取输入和感应器事件、EGL/OpenGLES、OpenSLES。
3、新的管理窗口和生命周期的框架。
4、支持VP8和WebM视频格式,提供AAC和AMR宽频编码,提供了新的音频效果器
5、支持前置摄像头、SIP/VOIP和NFC(近场通讯)
6、简化界面、速度提升:
7、更快更直观的文字输入:
8、一键文字选择和复制/粘帖:
9、改进的电源管理系统:
10、新的应用管理方式:
Android
Honeycomb
(蜂巢)
2011年2月2日,(Honeycomb蜂巢)版本主要更新如下:
·优化针对平板
·全新设计的UI增强网页浏览功能
·n-apppurchases功能
Android
Honeycomb
(蜂巢)
2011年5月11日在GoogleI/O开发者大会宣布发布,版本主要更新如下:
Honeycomb蜂巢(改进)
经过优化的Gmail电子邮箱;
全面支持GoogleMaps
将Android手机系统跟平板系统再次合并从而方便开发者。
任务管理器可滚动,支持USB输入设备(键盘、鼠标等)。
支持GoogleTV.可以支持XBOX360无线手柄
widget支持的变化,能更加容易的定制屏幕widget插件。
Android
Honeycomb
(蜂巢)
2011年7月13日发布,版本更新如下:
支持7英寸设备
引入了应用显示缩放功能
Android
IceCreamSandwich
(冰激凌三明治)
2011年10月19日在香港发布,
(IceCreamSandwich冰激凌三明治)版本主要更新如下:
1、全新的ui
2、全新的ChromeLite浏览器,有离线阅读,16标签页,隐身浏览模式等。
3、截图功能
4、更强大的图片编辑功能
5、自带照片应用堪比Instagram,可以加滤镜、加相框,进行360度全景拍摄,照片还能根据地点来排序
6、Gmail加入手势、离线搜索功能,UI更强大。
7、新功能People:
以联系人照片为核心,界面偏重滑动而非点击,集成了Twitter、Linkedin、Google+等通讯工具。
有望支持用户自定义添加第三方服务。
8、新增流量管理工具,可具体查看每个应用产生的流量。
9、正在运行的程序可以像电脑一样的互相切换
10、人脸识别功能,同时前置摄像头可以进行面部解锁。
11、系统优化、速度更快
12、支持虚拟按键,手机可以不再拥有任何按键
13、更直观的程序文件夹
14、平板电脑和智能手机通用
15、支持更大的分辨率
16、专为双核处理器编写的优化驱动
17、全新的Linux内核
18、增强的复制粘贴功能
19、语音功能
20、全新通知栏
21、更加丰富的数据传输功能
22、更多的感应器支持
23、语音识别的键盘
24、全新的3D驱动,游戏支持能力提升
25、全新的谷歌电子市场
26、增强的桌面插件自定义
Android
JellyBean
(果冻豆)
继“冰激凌三明治”之后的下一版Android系统。
三、Android特点
Android手机操作系统的推出,大大受到广大编程人员的喜爱。
那么它究竟有什么出色的特点吸引着人们的眼光呢这里总结了一些Android特点,以供对此有兴趣的朋友参考学习。
1.Android是什么
Android是一个平台,主要包括Linux微内核,中间件(SQLite等),关键应用(电话本、邮件、短消息、GoogleMap、浏览器等),提供的Java框架,以及Android中的JVM。
特点之关键类
视图,ContentProviders(应用交互管理类)、ResourceManager非编码资源管理类、NotificationManager(通告管理类)、ActivityManager(生命周期管理类)。
特点之界面开发
这一块主要讨论了Android的界面开发机制,可以讲组件的初始化抽取出来放到配置文件中,组件更新用编码方式来处理。
4.应用构成
Android的应用一般由以下四个关键部分构成Activity、IntentReceiver、Service、ContentProvider。
其中Activity是必要部分。
应用场合:
Activity每个应用都是必须得,Activity代表一个应用的一个具体的界面管理类,其本身并不显示。
IntentReceiver可使应用对外部事件做出响应,比如,当应用正在执行,突然有了来电,这个时候可使用IntentReceiver做出处理是应用更健壮。
ServiceAndroid应用的生命周期是由Android系统来决定的,不由具体的应用的线程左右。
当应用要求在没有界面显示的情况还能正常运行,(要求有后台线程,而后台线程是不会被系统回收,直到线程结束)这个时候就需要用到Service
ContentProvider可以说ContentProvider封装很多Android当中的上下文环境,包括SQLite,这就使得在不同应用之间交互成为可能。
特点之布局管理
FrameLayout:
左上角只显示一个组件。
LinearLayout:
线性布局管理器,分为水平和垂直俩中,只能进行单行布局。
TableLayout:
任意行和列的表格布局管理器。
其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。
AbsoluteLayout:
绝对布局管理器,坐标轴的方式,左上角是(0,0)点,往右x轴递增,往下Y轴递增。
RelativeLayout:
相对布局管理器,更具最近一个视图组件,或是顶层父组件来确定下一个组件的位置。
交互
Intent方式:
Intent其实就是用来在Activity之间做交互用的,需要说明的是Intent有个意图说明,值得用深究,举个简单的例子,有种叫,可直接拨打电话。
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置。
SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,最终是以xml方式来保存,效率不如Intent,但是由于可以共享,所有可以再Acitivity之间交互。
但其效率比SQLite要高。
SQLite也就是数据库,这种方式不推介,因为其效率问题,如果是在不同应用之间交互,可以考虑SQLite。
或是永久存储的情况下。
特点之生命周期
理解Android生命周期非常重要,主要有以下几点
每一个Android应用都是以一个进程的方式运行的,其生命周期不是有自身控制,而是由系统根据运行的应用的一些特征来决定。
所有理解好Android生命周期对你的应用什么时候会被系统回收很重要。
理解好生命周期可提高应用的健壮性。
比如应用的初始化应该放到onCreate方法中,应用暂停的时候应用重写onPause方法来保存当前应用操作结果。
8.SQLite
SQLite是Android中提供的内置数据库,据说比MySql更轻巧。
SQLite也是开源产品。
数据库的操作方式主要有以下俩中:
SQL语句直接操作,插入、更新、删除都可以直接写SQL语句,调用execSQL()就可以,而查询需要使用rawQuery()来完成,查询结果返回是一个可滚动的结果集,Cursor在对Cursor操作前,需要将其游标移动到第一位,每取一个结果向下移一位。
四、Android技术分析
系统构架:
下图显示的是Android操作系统的主要组件:
Android系统构架由5部分组成,分别是:
LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。
1、LinuxKernel
Android基于Linux提供核心系统服务,例如:
安全、内存管理、进程管理、网络堆栈、驱动模型。
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、、MP3、AAC、AMR、JPG、PNG
界面管理——管理访问显示子系统和无缝组合多个应用程序的二维和三维图形层
LibWebCore——新式的Web浏览器引擎,驱动Android浏览器和内嵌的web视图
SGL——基本的2D图形引擎
3D库——基于OpenGLESAPIs的实现。
库使用硬件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已经发布了,但是目前来说仍然占据了市场最大的份额,达到了90%以上,因此开发环境推荐使用+Eclipse
开发语言:
Android的SDK是Java的,将来可能有其他语言版本。
五、Android的优劣势
Android性能之优点:
1.占用内存小
Android是一个多任务操作系统,最近运行过的程序都常驻后台,而在内存管理上则由系统选择性的自动杀掉占用内存的近期非活跃进程,不用像Symbian和WindowsMobile一样手动关闭程序。
2.运行速度
运行速度也是Google手机的强项之一,尽管其核心处理器的频率以及内存搭配并非最顶级的配置,但在Android平台中有着畅快淋漓的速度表现,许多试用过该机的人均对其流畅度赞不绝口。
有了速度的保障,对于其它丰富应用自然游刃有余。
另外据悉,Android平台对于手机的硬件配置要求并不高,因此不会出现Linux平台那样门槛较高的尴尬局面。
3.界面美观
首先是不亚于苹果iPhone的华丽UI界面,自由度更高的触控方式则诠释了手机超炫的操控性,加上QWERTY全键盘的附体,无疑迎合了更多用户的使用习惯。
对于Android版本操作系统,从目前归纳和总结的情况来看,相比之前版本主要有了比较重大改进,除了拥有全新的用户界面之外,新版本的改进还包括对原生的微软Exchange邮件服务支持和Facebook功能整合,以及浏览器的改进、完全更新后的地图应用程序等等。
具体来说,新系统的特性主要体现在以下几点:
1.操作系统整体运行速度有所提升
操作系统的整体运行速度更快,尤其是浏览器的表现更是得到了极大提升。
此外,浏览器现在也支持双击屏幕进行缩放。
2Facebook中的好友整合至联系人功能中,不需要再安装第三方软件
3整个系统许多地方都支持语音控制,并拥有独立的控制面板。
4谷歌地图服务更新
5原生支持微软Exchange邮件服务,并且还进一步完善了系统的邮件功能,比如整合多个不同帐户,提供统一的邮件收件箱,在使用上更加的便利和快捷。
而对于那些与人分享快乐的人而言,
6浏览器有了新的操作界面,同时URL地址输入框也重新制作,并可显示出Favicon图标。
不过,目前的版本还没有Flash10,但性能感觉比HTC自定义的浏览器稍好,有点接近iPhone3GS页面浏览速度了。
有些可惜的是,该版本的浏览器依然不支持多指触摸,只能是双击来实现缩放。
此外,针对驾车一族,拥有新的“CarHome”应用程序为各功能提供了易于操作的快捷链接,还能方便地使用语音控制功能,便于用户驾车时使用。
比如你可以用语音进行网络搜索,还可以查看地图、选择联系人、搜索你的手机。
当你开车时说一句“到加油站的地图”,你的手机就能通过GoogleMaps显示出当前到最近加油站的路线导航图。
Android性能在开发中的方便性:
1:
系统自带大量封装好的控件,而且可以自定义控件,使用方便,提高编程效率
2:
系统自带调试工具丰富,能够很好的满足调试和监视程序运行情况如:
内存使用
界面布局线程使用等。
3:
系统提供大量函数库,程序员可以把更多的精力放在业务逻辑上
Android性能之缺点:
Android缺点1、没有自带资源管理器。
或者叫文件管理器,这是手机很重要的一项功能,对比Symbian平台和WindowsMobile平台,后两者均有自带的文件管理器,而且这是系统最常用的功能之一。
虽然Android也可以容易地安装第三方文件管理器,但若能自带,自然会免去不少麻烦,而且这里面还有一个原因是,将来有很多定制化的Android平台智能机,可能不会带Market,这样安装第三方软件来实现也比较麻烦。
Android缺点2、没有自带任务管理器。
不能说Android平台完全没有自带任务管理器,长按主页键可以弹出最近打开的六个程序列表,并且可以方便地进行切换,但是却不具备关闭的功能,同样是一大痛。
这一问题同样也可以通过安装第三方任务管理器解决,但不是一样增加了麻烦么
Android缺点3、蓝牙传输文件不方便。
之前苹果iPhone中也有这样的问题,蓝也不允许传输文件。
现在Android内置的蓝牙功能是允许传输的,但也有一些限制,使用起来没有那么完美这一问题也亟需完善。
Android缺点4、缺少大型游戏软件。
在数量上,Android平台现在已经具有超过1万款的应用软件。
由于其中绝大部分为免费软件,同样也带来了“免费品质”,即功能相对简单,特别是在游戏部分,没有大型手机游戏,诸如手机版的极品飞车、实况足球等。
这些桌面端的巨型游戏都有在iPhoneAppStore中出现。
Android缺点5、界面定制不够简单。
现在手机的外观定制是很重要的,我们知道Symbian平台有非常丰富的主题软件,主题下载到手机之后,只需在相应的目录选择设定就可以了。
如果你是一个爱研究的用户,使用诺基亚的主题编辑软件还可以进行自定义的修改。
同样在WindowsMobile系统里,“今日”桌面设置同样可以方便地自定义桌面界面,这种自定地的方式有所不同的是,可以将不同的今日插件选择是否显示在桌面。
相比之下,现在Android的主题自定义方式还很繁琐,而且没有官方的主题格式推出。
应该说从Android,经过Android、Android、再到现在最新的Android,Android平台得到了长足的发展,但上面提到的几项不足依然非常明显,只有尽快改进,才能更好地进一步扩张市场。