武汉工程大学邮电与信息工程学院毕业设计(论文)
第2章 Android技术简介
Android这个名字对于人们已经不陌生了,大家都知道是手机上的安卓操作系统,但是它的由来很少有人知道。Android这个词最早出现在美国科幻小说中,翻译过来的意思是“机器人”。在2005年,从Google并购一家成立仅22个月的手机软件开发商—Android开始,在这之后Google又并购手机交友网站Dodgeball,开通Short Message Service(SMS)短信搜寻功能,参与竞标700MHz通信频带的使用权。直到2007年11月5日,Google发表Android SDK (Software Development Kit)软件开发组件之后,Android便开始走进了人们的生活。[3]
2.1 什么是Android
Android,中文翻译为“安卓”,是一款基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。它采用软件堆层(Software Stack,又名软件叠层)的架构,主要分为三部分:底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机Virtual Machine,由C++开发。最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分,不存在任何以往阻碍移动产业创新的专有权障碍。[4]
对于设备制造商来说,Android是一个免费的平台。对硬体开发厂商来说,Android是个开放的平台。只要厂商有能力,可以在这个平台上自由加入特有的装置或功能,不受手机作业系统厂商的限制。对于手持装置的开发者来说,Android是个先进的平台。平台上的应用程式可相容于各种型号的Android 手机,免去为各种不同手机机型开发的困扰。Android平台支援各种先进的网络、绘图、3D 处理能力,可以用来提供更好的使用者体验。Android它的开放性就优于其它封闭式的手机系统,因此,任何人都可能根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。
对于这样的一个免费并且开放的手机开发平台,实现了开发商、硬件商和消
3
武汉工程大学邮电与信息工程学院毕业设计(论文)
费者之间的双赢。Android的出现绝对是21世纪初期的一大绝响。
2.2 Android系统架构
Android是以Linux为基础建构的手机操作系统,因此Android延续了嵌入式Linux系统的结构特点。其系统架构包含了四个主要层次。Android操作系统的底层是Linux Kernel,采用Linux Kernel 2.6版,负责硬件的驱动程序、网络、电源、系统安全以及内存管理等功能。往上的第二层是Library(函数库)部分,由大多数开发源代码的函数库组成,例如标准的C函数库Libc、OpenSSL、SQLite等,网页函数库WebKit负责Android网页浏览器的运行,另外还有2D SGL/3D OpenGL图形与多媒体函数库分别支持各种影音与图形文字的播放,例如MPEG4、H.264、MP3、AAC、AMR、JPG和PNG等多媒体文件格式。
和第二层函数库并行的是Android Runtime,在此提供Android特有的Java内核函数库与可转换Java运行码Bytecode,为Android专属的Dalvik Executable(.dex)文件格式的Dalvik虚拟机器,可以通过Java语言编写Android应用程序,并在Android平台上同时运行多个Java应用程序。
第三层则是Application Framework(应用软件架构),它是所有Android重点应用程序Framework API的总集合,主要的目的是让程序开发者可以方便地使用这些常用的应用程序进行设计架构,以便快速地开发Android应用程序,而这些常见的API有显示功能(如消息方块、条列消息、按钮、内嵌式浏览器等)、消息提供功能(如访问信息,分享信息)、资源管理(如图形、地方化字符串、布局文件等)、提示消息(主要用来显示警告消息,特别是当使用者操作错误时)等。
[5]
在Android系统架构的最上层则是Java应用程序,例如Google Maps、E-mail、
即时通信工具、计算机、浏览器、通讯本、MP3播放器等应用程序。如图2.1所示。
4
武汉工程大学邮电与信息工程学院毕业设计(论文)
Application(应用程序) 文件管理 通讯本 电话 浏览器 照相程序 Application Framework(应用软件架构) Activity Manager Windows Manager Content Providers 位置管理 View System 提示管理 软件组件 电话管理 资源管理 Library(函数库) Surface Manager Media Framework SQLite Android Runtime Android Libraries OpenGL FreeType WebKit Dalvik 虚拟机器 SGL OpenSSL Libc Linux Kernel 硬件驱动 电源管理 Wi-Fi网络 内存管理 相机驱动 图2.1 Android系统架构
2.3 应用程序组件
对于一个Android应用程序来说,是由Activity、Service、Broadcast Receiver、Content Provider四部分组成,但并不是每一个Android应用程序都必须由这四部分组成。在应用程序中使用时,需要在配置文件
5
武汉工程大学邮电与信息工程学院毕业设计(论文)
AndroidMainfest.xml中进行配置。这个配置文件是每个Android应用程序所必需的,用于定义应用程序的组件、组件的功能以及必要条件等。
1. Activity(活动)
Activity是构成应用程序中最重要的构造块, 在Android应用程序中Activity主要负责的就是创建与用户进行交互的显示窗口,一个或多个Activity组成一个用户界面,你可以在这些窗口里通过调用setContentView(View)方法来显示你自己的用户界面,但是每个Activity都是独立的,并且继承Activity类。活动(Activity)在系统中以活动栈的形式进行管理。当一个新的活动启动后,被放到了栈顶,成为了运行活动,而新活动之前的活动在活动栈里总位于新活动之下,直到新的活动退出才重新回到前台。[6]Activity生命周期如图2.2所示。 User navigates back to your activity Process is Other application need memory Activity is shut down 图2.2 Activity生命周期图
Activity starts onCreate() onStart() onResume() Activity is running New activity is started onPause() Your Activity is no long visible Onstop() onDestroy() Your Activity comes to the foreground Your Activity comes to the foreground onRestart() killed 6

