安卓系统研究报告.docx
- 文档编号:29808580
- 上传时间:2023-07-27
- 格式:DOCX
- 页数:21
- 大小:845.92KB
安卓系统研究报告.docx
《安卓系统研究报告.docx》由会员分享,可在线阅读,更多相关《安卓系统研究报告.docx(21页珍藏版)》请在冰豆网上搜索。
安卓系统研究报告
《操作系统》课程设计说明书
---安卓系统研究报告
目录
一、操作系统简介1
二、安卓系统研究2
2.1Android系统起源2
2.2Android系统架构图2
2.3系统的发展史4
2.4Android设计理念5
2.5Android的主要特点5
2.6Android硬件要求6
2.7系统特性7
三、安卓应用开发SDK与应用程序的组成8
3.1AndroidAPI级别8
3.2Android应用程序的组成10
四、安卓系统的人性化设计12
4.1安卓系统易用性12
4.1.1屏幕尺寸12
4.1.2按键12
4.1.3屏幕13
4.1.4手指操作与设计13
4.2设计的先进性14
4.2.1软件程序设计的先进性让交互更便捷14
4.2.2桌面和主菜单的设计充分考虑了产品的易用性原则15
五、Android系统的优缺点发展趋势16
5.1优点16
5.2缺点17
5.3操作系统发展趋势18
六、解析安卓易用性与消费心理的关系19
七、市场趋势19
参考文献20
一、操作系统简介
操作系统(Operating System)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
操作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。
操作系统的功能包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。
操作系统的种类相当多,各种设备安装的操作系统可从简单到复杂,可分为智能卡操作系统、实时操作系统、传感器节点操作系统、嵌入式操作系统、个人计算机操作系统、多处理器操作系统、网络操作系统和大型机操作系统。
按应用领域划分主要有三种:
桌面操作系统、服务器操作系统和嵌入式操作系统。
智能手机上的操作系统基本上都属于嵌入式操作系统。
嵌入式操作系统是应用在嵌入式系统的操作系统。
嵌入式系统广泛应用在生活的各个方面,涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。
在嵌入式领域常用的操作系统有嵌入式Linux、Windows Embedded、VxWorks等,以及广泛使用在智能手机或平板电脑等消费电子产品的操作系统,如Android、iOS、Symbian、Windows Phone和BlackBerry OS等。
二、安卓系统研究
2.1Android系统起源
Android英文原意为机器人,AndyRubin于2003年在美国创办了一家名为Android的公司,其主要经营业务为手机软件和手机操作系统"Google于斥资四千万美元收购了Android公司,并于2007年11月5日正式推出了其基于Linux2.6标准内核的开源手机操作系统,将之命名为Android手机操作系统是首个为移动终端开发的真正的开放的和完整的移动软件。
Google提出让移动通讯不依赖设备甚至平台的移动发展目标,奉行发展与全球各地的手机生产商和移动服务运营商的战略合作伙伴关系,开发具有吸引力且实用性强的移动服务并加以推广的移动发展战略"Google将android作为自身企业发展战略的重要组成部分,逐步向Google制定的企业目标—随时随地为每个人提供信息0推进",随着手机等移动终端设备在国内的普及度以及人们对获取信息的需求度越来越高,android己经引起用户!
开发者以及专家学者的广泛关注"因为Google的技术实力以及开源技术安全免费且易于开发的特点,国内外的许多移动设备制造商和业务提供商都开始展开对android的研究与开发"专家认为无线互联是移动发展的趋势,Andro记操作系统也将会是移动通讯发展的趋势"。
2.2Android系统架构图
(图2-2)
分析:
第一层:
Linux操作系统和驱动(Linux kernel):
由C语言实现。
Android核心系统服务依赖于Linux2.6内核,包括:
安全性、内存管理、进程管理、网络协议、驱动模型。
Linux内核也作为硬件和软件栈之间的抽象层。
除了标准的Linux内核外,Android还增加了内核的驱动程序:
Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、电源管理。
第二层:
本地框架和(LIBRARIES和ANDROIDRUNTIME)地框架是有C/C++实现。
包含C/C++库,被Android系统中不同组件使用,它们通过Android应用程序框架为开发者进行服务。
系统C库:
(libc)从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式Linux的设备定制的库。
多媒体库:
基于PackerVideo的OpenCore;该库支持多种常用的音频、视频格式回放和录制,支持多种媒体格式的编和解码格式。
Suface Manager:
显示子系统管理器,并且为多个应用程序提供2D和3D图层的无缝融合。
LibWebCore:
一个最新的Web浏览器引擎,支持Android浏览器,以及一个可嵌入式的Web视图。
SGL:
Skia图形库,底层的2D图形引擎。
3D libraries:
基于OpenGL ES1.0 API的实现;该库可以使用硬件3D加速(如果可用),或者使用高度优化的3D软加速。
FreeType:
位图(bitmap)和矢量(vector)字体显示。
Android运行环境(ANDROID RUNTIME):
提供了Java编程语言核心库的大多数功能,由Dalvik Java虚拟机和基础的Java类库组成。
Dalvik是Android中使用的Java虚拟机,每个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Dalvik被设计成一个可以同时高效运行多个虚拟机实例的虚拟系统。
执行后缀名为.dex的Dalvik可执行文件,该格式的文件针对小内存使用做出了优化。
同时虚拟机是基于寄存器的,所有的类都是有Java编译器编译,然后通过SDK中的“dx”工具转化为.dex格式由虚拟机执行。
Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。
第三层:
Android应用框架(ANDROID FRAMEWORK)
在Android系统中,开发人员也可以完全访问核心应用程序所使用的API框架。
第四层:
Android应用程序(APPLICATIONS) ,注意:
Android应用程序都是有Java语言编写的。
用户开发的Android应用程序和Android的核心应用程序是同一层次的,它们都是基于Android的系统API构建的。
2.3系统的发展史
1)2008年9月22日,由HTC代工生产T-Mobile定制的HTCG1正式面世,Android系统(Android 1.1)终于面向世人。
2)2009年4月30日,官方1.5版本的Android 1.5 (Cupcake)(基于Linux Kernel 2.6.27)发布。
3)2009年9月15日,Android1.6(Donut)(基于Linux Kernel 2.6.29)版本软件开发工具包发布。
4)2009年10月26日,Android2.0/2.0.1/2.1(Eclair)(基于Linux Kernel 2.6.29)版本软件开发工具包发布。
5)2010年5月20日,Android 2.2/2.2.1 (Froyo)(基于Linux Kernel 2.6.32)版本软件开发工具包发布。
6)2010年12月7日,Google正式对外发布了他们的下一代智能手机操作系统Android 2.3 (Gingerbread)。
7)谷歌在2011年2月3日发布了专用于平板电脑的Android 3.0 (Honeycomb)系统。
8)Android 3.1 与2011年5月11日在Google I/O开发者大会宣布发布。
9)谷歌2011年7月13日发布了Android 3.2操作系统。
10)2011年10月19日上午十点,谷歌与三星联手在中国香港举办发布会,公布有关Android4.0系统信息。
11)北京时间2012年6月28日00:
30在GoogleI/O2012开发者大会上发布Android4.1系统。
12)2012年10月30日谷歌通过其官方博客发布了全新的Android4.2系统。
13)北京时间2013年7月25日凌晨,谷歌正式对外发布了Android4.3。
14)北京时间2013年9月4日谷歌凌晨对外公布了Android新版本Android4.4。
15)北京时间2014年6月26日0时,GoogleI/O2014开发者大会在旧金山正式召开,发布了Android5.0的前身L(Lollipop)版Android开发者预览。
2.4Android设计理念
GOOGLE的Android系统最初也是为手机开发的,在后来的演变中,也表现出了很多与iOS非常类似的特征。
最初,Android是GOOGLE为了在智能手机领域于苹果公司和其他对手所抗衡而开发的一款手机操作系统。
GOOGLE的目的是通过JAVA的跨平台性,利用现代码统一,易开发的特点,在未来的移动互联网竞争中实现以量取胜。
为了对抗众多的竞争对手,Android系统从诞生开始,秉承了两个非常重要的设计思路,一是代码完全开源,二是使用完全免费。
任何厂商和个人以及社区都可以对系统进行定制和修改。
这两条设计思路为GOOGLE赢得了巨大的竞争力,通过开源,一方面,各个厂商和社区可以制造出自己的定制版Android,增强旗下产品在市场中的竞争力,另一方面GOOGLE公司可以从互联网上各种不同的修改版来观察第三方修改代码,从而掌握系统升级的动向和修改思路。
而通过免费策略,在Android诞生起,就拥有了大量的合作伙伴,仅通过极短的时间,就达到了非常高的占有率。
总体来讲,Android的系统设计思路几乎是跟iOS系一模一样。
无论是从用户界面,还是操作方式,都大相径庭。
从外部看来,GOOGLE几乎是在学习iOS的情况下,在系统细节上进行差异化创新。
2.5Android的主要特点
Android操作系统的主要特色:
(1)Android使用BionicLibc作为系统的C函数库,大约有200KB的大小,更加适合嵌入式系统使用;
(2)多媒体功能丰富,支持多种图片!
视频和音频文件格式,新版本的android系统多媒体功能更加强大,android2.2版本可以支持rmv等视频格式的文件;
(3)支持2D、3D图像显示,在游戏开发和界面显示方面具有优势;
(4)Android提供多国语言支持;"
(5)具备内置轻量级的数据库系统(SQLite);
(6)完善的应用程序框架,支持应用程序开发;
(7)Android具有能够完全模拟硬件手机设备的模拟器;
(8)Android网络功能强大,支持无线网络!
蓝牙和wifi等功能;
(9)对android提供支持的开发环境丰富,可以在目前主流操作系统上搭建应用开发环境,例如Windows!
Mac!
Li~等"
2.6Android硬件要求
虽然Android系统的平台适用性很强,但是硬件设备需要满足一定的条件,才能提供足够的硬件资源让android系统顺利运行,所以android系统对于运行的硬件平台有一定要求"Android操作系统对目标端最低硬件要求如表2-6-1所示:
Android硬件要求
硬件
要求
CPU
ARM系统架构的CPU处理器
RAM
128MB存储容量
Flash
128MB存储容量
表2-6-1
虽然android操作系统要求硬件设备Flash存储器至少要有128M容量,但是在实际研究过程中,发现一个基本的a耐roid操作系统实际的运行环境大约需要50至IOOM,本课题通过将文件系统存储在外存储设备的方法,让一个基本的android操作系统稳定的运行在Flash存储器容量为64M的硬件平台"
2.7系统特性
Android提供的核心服务,如安全,内存管理,进程管理,网络堆栈和驱动器,是基于Linux2.6的。
作为软件和硬件层之间的抽象层,Linux内核隐藏硬件执行的细节,并为上层提供综合服务。
Dalvik虚拟机和Java核心库都包含在Android运行层,提供Java核心库的大多数功能。
这些库包含了应用于Android组件的一系列C/C++库。
这些库集成了应用框架层,然后提供给开发人员。
应用程序框架层为程序的初始化提供了各种模块,以简化元件的使用,让开发商为所欲为,并提供其他服务软件,当然,在安全性上有所限制。
主流应用程序位于应用层,包括电子邮件,短信,日历,谷歌地图,网页浏览器
等用户可以直接与此层交互。
Android的新版本提出一些新的特点。
它们是:
(1)支持10.1版本的Flash,使用户可以在手机上观看Flash。
(2)网页浏览器中的V8 JavaScript引擎使得互联网数据传输更加迅速。
(3)网络共享上有大的进步,你可以将手机作为3G网卡或将3G信号转换为Wi-Fi信号。
(4)支持自动软件更新。
(5)软件可安装到SD卡以扩展储存空间。
3、安卓应用开发SDK与应用程序的组成
3.1AndroidAPI级别
当你开发你的Android应用程序时,了解该平台API变更管理的基本方法和概念是很有帮助的。
同样的,知道API级别标识以及该标识如何保障你的应用与实际硬件设备相兼容对于开发及后续的发布、维护都是有益的。
本节内容告诉你API级别的知识,以及它如何影响你开发和使用的应用。
关于如何使用“以API级别进行过滤”来使用API参考手册,从本文末尾的文档过滤(Filteringthedocumentation)中可以得到更多信息。
API级别是什么?
API级别是一个整数值,它唯一标识了一个具体版本的Android平台,及其框架的API的版本。
Android平台提供了一套框架API,使得应用程序可以与系统底层进行交互。
该框架API由以下模块组成:
一组核心的包和类
清单(manifest)文件的XML元素和属性声明;
资源文件的XML元素和属性声明及访问形式;
各类意图(Intents)
应用程序可以请求的各类授权,以及系统中包含的授权执行每个Android平台的后续版本会包括它提供的更新的Android应用程序框架的API。
该框架的API的更新设计,使高版本的API与早期版本兼容。
也就是说,在新版本API中大多数都是新增功能,和引进新的或替代的功能。
作为API的部分升级,老的替换的部分已过时,但不会从新版本中删除,使得已有的应用程序仍然可以使用它们。
在极少数情况下,旧版本API的部分可能被修改或删除,通常这种变化是为了保障API的稳定性及应用程序或系统的安全。
所有其他早期版本的API将不做修改的保留。
一个Android平台提供的框架API,被指定一个整数标识符,称为“API级别”。
每一个版本的Android平台只支持有一个API级别,虽然该支持是隐含地包括了所有早期的API级别(一直到API级别1级)。
Android平台的最初版本提供的框架API级别是1级,随后的版本依次递增。
下表说明了具体平台版本和支持的API级别的对应关系。
平台版本API级别
Android3.011、Android2.3.310、Android2.39、Android2.28、Android2.17、Android2.0.16、Android2.05、Android1.64、Android1.53、Android1.12、Android1.01
在Android中使用API级别
API级别标识为保证用户和应用程序开发者的最佳体验,起了关键作用。
它使得系统可以在硬件设备上安装应用程序时能够检查版本是否匹配,使得版本不兼容的应用程序不会被错误安装在设备之上.每个版本的Android平台都在其内部存储了自己的API级别标识。
应用程序可以用框架API提供的清单文件元素—
三种属性分别描述如下:
android:
minSdkVersion—指明该应用程序可以运行的API最低版本。
默认是“1”。
android:
targetSdkVersion—指明该应用程序设计时期望运行的目标API版本。
在某些情况下,这允许应用程序使用目标API级别下定义的清单元素或行为,而不是只限于使用最低API级别定义的内容。
android:
maxSdkVersion—指明该应用程序可以运行的最高API级别。
重要声明:
使用该属性之前请阅读
比如,要指明一个应用程序能够运行的最低API级别,应当在该应用程序的清单文件的
minSdkVersion属性。
android:
minSdkVersion的值是一个正整数,对应的是该应用程序能够运行的最低平台的API级别标识。
用户尝试安装一个应用程序,或者在系统升级后重验证应用程序的时候,Android系统首先会检查应用程序的清单文件中的
系统只有在满足下列情况时才允许进行应用程序安装:
如果声明了android:
minSdkVersion属性,其属性值必须小于或等于该系统的API级别对应的整数值。
如果未声明,系统会默认该应用程序运行需要的最低API级别是1。
如果声明了android:
maxSdkVersion属性,其属性值必须等于或大于该系统的API级对应的整数值。
如果未声明,系统会默认该应用程序没有最高API级别限制。
请通过阅读文档
应用程序清单文件中声明该属性后,
minSdkVersion="5"/>... 这样做的主要原因是,应用程序会通过android: miniSdkVersion声明的API级别来告知系统——该应用程序使用的API是指定引入的API级别。 假如没有这种属性声明,一个应用程序如果因为某些不知名的原因被安装在低级别API系统之上,那么该应用程序会在运行时因为尝试访问不存在的API而崩溃。 为此,Android系统通过不允许应用程序被安装在不满足其最低API级别要求的目标硬件上来防止此类结果发生。 例如,android.appwidget类包是在API级别3中开始引入的。 如果一个应用程序使用了这个API,就必须通过指明android: minSdkVersion属性为3来声明运行的最低要求。 于是,该应用程序就可以在Android1.5(API级别3级)、Android1.6(API级别4级)等平台上安装,但是在Android1.1(API级别2级)和Android1.0平台(API级别1级)上却是无法安装的。 欲知关于如何声明应用程序API级别需求的更多信息,请阅读文档中关于清单文件的 3.2Android应用程序的组成 对于一个Android应用程序来说,主要的4大组件分别为: 活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供商(ContentProvider)。 但不是必须的,有时需要组合来用。 活动(Activity): Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity可以算是开发者遇到的最频繁,也是Android中最基本的模块之一。 在Android的程序中,Activity一般代表手机屏幕的一屏。 如果把手机比作一个浏览器,那么Activity就相当于一个网页。 在Activity中可以添加一些Button、Checkbox等控件。 当一个新的屏幕打开后,前一个屏幕将会暂停,并保存在历史堆栈中。 用户可以返回到历史堆栈中的前一个屏幕。 当屏幕不再使用时,还可以从历史堆栈中删除。 默认情况下,Android将会保留从主屏幕到每一个应用的运行屏幕。 服务(Service): Service是Android系统中的一种组件,它跟Activity的级别差不多,只能后台运行,并且可以和其他组件进行交互。 Service是没有界面的长生命周期的代码,Service是一种程序,它可以运行很长时间,但是它却没有用户界面。 比如打开一个音乐播放器的程序,这个时候若想上网了,那么,打开Android浏览器,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首地播放。 其实这个播放就是由播放音乐的Service进行控制。 当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。 Service可以在多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录地理信息位置的改变等等。 广播接收器(BroadcastReceiver): 在Android中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。 而BroadcastReceiver是对发送出来的Broadcast进行过滤接受并响应的一类组件。 可以使用Broad-castReceiver来让应用对一个外部的事件做出响应。 例如,当电话呼入这个外部事件到来的时候,可以利用BroadcastReceiver进行处理;当下载一个程序成功完成的时候,仍然可以利用BroadcastReceiver进行处理。 BroadcastReceiver不能生成UI,也就是说对于用户来说不是透明的,用户是看不到的。 BroadcastReceiver通过NotificationManager来通知用户这些事 情发生了。 内容提供商(ContentProvider): 应用程序能够将它们的数据保存到文件中、SQL数据库中,甚至是任何有效的设备中。 当你想将你的应用数据与其他的应用共享时,ContentProvider将会很有用。 一个ContentProvider类实现了一组标准的方法,从而能够让其他的应用保存或读取此ContentProvider处理的各种数据类型。 四、安卓系统的人性化设计 4.1安卓系统易用性 4.1.1屏幕尺寸 自从触屏时代的到来,给手机也带来了划时代的变化,在前
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 系统 研究 报告