东北大学秦皇岛分校毕业设计(论文)
第 5 页
2 安卓平台介绍
2.1安卓平台介绍
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。Android的架构图如图2.1所示。
图2.1 Android的架构图
Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android分为四个层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。
东北大学秦皇岛分校毕业设计(论文)
2.2 安卓结构具体分析 1、应用程序
第 6 页
Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。 2.、应用程序框架
开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。
隐藏在每个应用后面的是一系列的服务和系统, 其中包括;丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。
内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。
通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
活动管理器(Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
3、系统运行库
Android包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过Android应用程序框架为开发者提供服务。以下是一些核心库:
(1) 系统C库——一个从BSD继承来的标准C系统函数库Libc,它是专门为基于Embedded linux的设备定制的。
(2) 媒体库——基于PacketVideo OpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4、 H.264、MP3、AAC、AMR、JPG、PNG等。
东北大学秦皇岛分校毕业设计(论文)
第 7 页
(3) Surface Manager——对显示子系统的管理,并且为多个应用程序提供了2D和3D图层的无缝融合。
(4) LibWebCore ——一个最新的Web浏览器引擎用,支持Android浏览器和一个可嵌入的Web视图。 4、安卓运行时库
Android包含一个核心库的集合,提供大部分在Java编程语言核心类库中可用的功能。每一个android应用程序是Dalvik虚拟机中的实例,运行在自己的进程中。Dalvik虚拟机被设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是dex,dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。
Dalvik虚拟机依赖于Linux内核提供基本功能,如线程和底层管理。 5、Linux内核
Android基于Linux version 2.6内核来提供系统的核心服务,例如:安全机制,内存管理,进程管理,网络堆栈和驱动模块。该内核还扮演着一个虚拟的中间层,该层介于硬件和其余的软件堆栈[2]。 2.3 Android系统的四大组件
在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些
是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。下面分别介绍四大组件:
(1) Activity 简介
在Android系统中Activity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。
(2) Service 简介
顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件 注册,通过
(3) Broadcast Receiver 简介
东北大学秦皇岛分校毕业设计(论文)
第 8 页
Broadcast Receiver 顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent。Intent(意图)主要是解决Android应用的各项组件之间的通讯。
Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。
因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。
例如,在一个联系人维护的应用中,当我们在一个联系人列表屏幕(假设对应的Activity为ListActivity)上,点击某个联系人后,希望能够跳出此联系人的详细信息屏幕(假设对应的Activity为detailActivity)。
为了实现这个目的,ListActivity需要构造一个 Intent,这个Intent用于告诉系统,我们要做“查看”动作,此动作对应的查看对象是“某联系人”,然后调用startActivity (Intent intent),将构造的Intent传入,系统会根据此Intent中的描述,到ManiFest中找到满足此Intent要求的Activity,系统会调用找到的 Activity,即为detailActivity,最终传入Intent,detail Activity则会根据此Intent中的描述,执行相应的操作。
(4) Content Provider简介
Content Provider 用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。Android 为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的Content Provider。它们被定义在Android.provider包下面。通过这样定义好的Content Provider 我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定Content Provider共享我们的数据,方便用户的访问[4]。
东北大学秦皇岛分校毕业设计(论文)
2.4 安卓开发环境搭建 2.4.1 Java环境搭建
第 9 页
Android支持Windows XP以上操作系统。首先,需要有Java环境。方法很简单。第一步,登陆http://java.sun.com,下载最新版本的jdk安装jdk和jre两个部分。选择目录,安装(最好将两部分放在同一个盘符)。点击下一步即可。我这里安装在C盘目录下。第二步,需要配置环境变量。右击“我的电脑”,在弹出的窗口中选择属性,在左边高级系统设置点击环境变量按钮,点击右下角的新建按钮变量名:JAVA_HOME,值C:\\jdk(你的jdk安装目录),点击确定输入。
以同样的方法新建变量名为;CLASSPATH,值为:.;%JAVA_HOME%\\lib。注意,点号表示当前目录,不能省略。如图2.2
图2.2 环境变量配置
然后在系统变量中找到“path”,并点击修改,在其对应的最后面追加
“%JAVA_HOME%\\bin;”,一直点击确定按钮,直到所有的窗口关闭。如图2.3。这样Java