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-MOBILEG1Android1.5发布于2009年5月代表手机:摩托罗拉CILQAndroid1.62009年9月发布代表手机:索尼爱立信X10Android2.02009年10月26日代表机型:摩托罗拉XT800,HTCG6Android2.0/2.1EclairAndroid2.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(法式奶油夹心甜点)一样,Android2.3和2.4将会共享Gingerbread(姜饼)代号。这两个版本之间的变化不会太大,但是会有不少功能更新。目前已知的Android2.4带来的更新包括更多的动画特调、更快的运行速度、软件通话降噪、视频聊天等。Android2.4系统不会是之前一直谣传的Android3.0,其真正的版本号将会是Android2.4。蜂巢将会在2011年发布,尤其是在Android之父“AndyRubin(安迪鲁宾)”秀了搭载该系统的摩托罗拉平板机之后就更加确信这一点了,不过蜂巢究竟在何时发布,同时还会有别的什么设备一同面世,蜂巢之后又是什么系统,这些问题我们都不知道答案。发布时间预计是2011年的2月14日至17日在巴塞罗那举办的MWC2011移动通信世界大会中。Android3.0Honeycomb2011年2月3日凌晨,谷歌正式发布了专用于平板电脑的Android3.0Honeycomb系统。这是首个基于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系统来决定的,不由具体的应用的线程左右。当应用要求在没有界面显示的情况还能正常运行,(要求有后台线程,而后台线程是不会被系统回收,直到线程结束)这个时候就需要用到ServiceContentProvider可以说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.SQLiteSQLite是Android中提供的内置数据库,据说比MySql更轻巧。SQLite也是开源产品。数据库的操作方式主要有以下俩中:SQL语句直接操作,插入、更新、删除都可以直接写SQL语句,调用execSQL()就可以,而查询需要使用rawQuery()来完成,查询结果返回是一个可滚动的结果集,Cursor在对Cursor操作前,需要将其游标移动到第一位,每取一个结果向下移一位。四、Android硬件要求五、Android技术分析系统构架:下图显示的是Android操作系统的主要组件:Android系统构架由5部分组成,分别是:LinuxKernel、AndroidRuntime、Libraries、ApplicationFramework、Applications。1、LinuxKernelAndroid基于Linux2.6提供核心系统服务,例如:安全、内存管理、进程管理、网络堆栈、驱动模型。LinuxKernel也作为硬件和软件之间的抽象层,它隐藏具体硬件细节而为上层提供统一的服务。2、AndroidRuntimeAndroid包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。两种架构各有优劣,一般而言,基于栈的机器需要更多指令,而基于寄存器的机器指令更大。dx是一套工具,可以将Java.class转换成.dex格式。一个dex文件通常会有多个.class。由于dex有时必须进行最佳化,会使文件大小增加1-4倍,以ODEX结尾。Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层内存管理。3、LibrariesAndroid包含一个C/C++库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(applicationframework)暴露给开发者。下面列出一些核心库:系统C库——标准C系统库(libc)的BSD衍生,调整为基于嵌入式Linux设备媒体库——基于PacketVideo的OpenCORE。这些库支持播放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4、H.264、MP3、AAC、AMR