ADT(Android Development Tools)Plug-in,这是Android在Eclipse上的开发工具。安卓官网为了方便开发者,在Android SDK中包含了Android应用程序开发的全套工具。
2.1.2 AVD和Android模拟器
AVD的全称是Android Virtual Device,就是Android运行的虚拟设备,它是Android的模拟器识别。建立的Android要运行,必须创建AVD,每个AVD上可以配置很多的运行项目。通过AVD可以启动Android模拟器,进行程序的调试。
本论文后面的测试环节,正是基于AVD,才可以在PC上使用Android虚拟机运行安卓程序,进行测试工作[3]。
2.2 Android系统介绍
2.2.1 Android平台构架
Android系统采用分层的架构实现,总体可分为四层结构,分别是应用程序层、应用程序框架层、系统运行库层以及Linux内核层。它采用一种被称为软件叠层(Software Stack)的方式进行构架,使得层与层之间互相分离,明确各层的分工。这种分工保证了层与层之间的低耦合,当下层的层内或层下发生改变时,上层应用程序无须任何改变。Android系统体系结构如下图2.1所示。
图2.1 Android系统体系结构[4]
1.应用程序层
Android系统将会包含系列的核心应用程序,这些程序包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人等。这些应用程序都是用Java编写,并且都是可以被开发人员所开发的其他应用程序替换,这点不同于其他手机操作系统固化在系统内部的系统软件,更加灵活和个性化。用户开发的Android应用程序和Android的核心应用程序是同一层次的,它们都是基于Android的系统API构建的。
2.应用程序框架层
应用程序框架层是开发者从事Android应用开发的基础,很多核心应用程序也是通过这一层来实现其核心功能,该层简化了组件的重用,开发人员可以直接使用它提供的组件进行快速的应用程序开发,也可以通过继承而实现个性化的拓展。
3.系统运行库层
Android系统运行库层主要分为系统库和Android运行时环境两部分。
(1)系统库:系统库是应用程序框架的支撑,是连接应用程序框架层与Linux内核层的重要纽带。
(2)Android运行时环境(Run Time Context): Android应用程序时采用Java语言编写,程序在Android运行时环境中执行,运行时环境可分为核心库和Dalvik虚拟机两部分。
4.Linux内核层
Google选择了Linux作为Android的底层支撑系统。当前的 Android系统是基于Linux2.6内核,其核心系统服务如安全性、内存管理、进程管理、网路协议以及驱动模型都依赖于Linux内核。当然,除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、Wi-Fi驱动、蓝牙驱动、电源管理。
本课题程序运行在安卓系统体系结构的最上层,即应用程序层。也正是因为有这种架构,最上层的程序,包括本系统,才可以在手机当中正常工作[5]。
2.2.2 Android应用组件
应用组件是构建安卓程序的基础。 每一个组件都是系统与程序交互的一个通道。并不是所有的组件都有实际的入口点,有一些虽然互相依赖,但是各自都作为自己的实体存在,并且扮演特殊的角色:每一个都是一个唯一的构建块,用于定义程序的一些行为。
一共有四种应用组件.每一种类型都用于不同的目的,有不同的生命周期来定义组件的建立和销毁。
1.Activity 组件
Activity是Android应用程序中最为基本也是最为重要的组件之一,在Android应用程序中,手机屏幕上显示的每个窗口都是一个Activity,用户主要通过Activity组件与应用程序交互。下图2.2是Activity 的生命周期。
图2.2 Activity的生命周期[6]
2.Service组件
服务没有可视化的用户界面,而是在一段时间内在后台运行。比如说,一个服务可以在用户做其它事情的时候在后台播放背景音乐、从网络上获取一些数据或者计算一些东西并提供给需要这个运算结果的Activity使用。每个服务都继承自Service基类。
3.BroadcastReceive组件
广播接收器是一个专注于接收广播通知信息,并做出对应处理的组件。很多广播是源自于系统代码的──比如,通知时区改变、电池电量低、拍摄了一张照片或者用户改变了语言选项。应用程序也可以进行广播──比如说,通知其它应用程序一些数据下载完成并处于可用状态。
应用程序可以拥有任意数量的广播接收器以对所有它感兴趣的通知信息予以响应。所有的接收器均继承自BroadcastReceiver基类。
4.ContentProvider组件
内容提供者将一些特定的应用程序数据供给其它应用程序使用。数据可以存储于文件系统、SQLite数据库或其它方式。内容提供者继承于ContentProvider 基类,为其它应用程序取用和存储它管理的数据实现了一套标准方法。
本程序就是使用这四大组件,设计实现的[7]。
2.3 系统的重要技术介绍
2.3.1 XML介绍
XML的全称为可扩展标记语言 (Extensible Markup Language) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
XML能够更精确地声明内容,方便跨越多种平台的更有意义的搜索结果。它提供了一种描述结构数据的格式,简化了网络中数据交换和表示,使得代码、数据和表示分离,并作为数据交换的标准格式,因此它常被称为智能数据文档。
在本次Android开发中,使用XML布局文件控制UI界面,所有XML文件保存在res/layout目录下,Activity中使用setContentView(R.layout.XXX)显示XML文件中布局内容,这样就实现了前台界面与运行代码的分离[8]。
2.3.2 SQLite数据库介绍
Android系统集成了一个轻量级的数据库:SQLite。SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源世界著名的数据库管理系统来讲,它的处理速度比他们都快。
基于以上的原因,SQLite可以在安卓系统中很方便的被本程序所使用,不用其他任何附加条件[9]。
2.3.3 Jxl.jar包
Java Excel 是一开放源码项目,通过它 Java 开发人员可以读取 Excel 文件的内容、创建新的 Excel 文件、更新已经存在的 Excel 文件。使用该 API 非 Windows 操作系统也可以通过纯 Java 应用来处理 Excel 数据表。因为是使用 Java 编写的,所以我们在 Web 应用中可以通过 JSP、Servlet 来调用 API 实现对 Excel 数据表的访问。
基于以上Jxl.jar的优良特性,本系统使用此包实现了将数据库中理财信息导出的功能[10]。导出格式为.xls的文件,该文件可在电脑上使用Excel打开。
2.3.4 AChartEngine.jar包
AChartEngine是为Android应用而设计的绘图工具库。可用于绘制多种图标,目前该绘图工具库的最新稳定版本是1.0.0。AChartEngine支持的图表类型:折线图、区域图、散点图、时间图、柱状图、饼状图、气泡式图表、环形图、高低交替图。
本程序在使用AChartEngine.jar包的基础之上,将数据库中的财务信息转化为图像的功能[11]。
第三章 总体设计
3.1 主要技术问题
本系统帮助我们进行日常的理财活动,要对个人理财信息进行收集、汇总、整理和显示。因此本课题的主要技术问题如下:
1. 数据汇总问题:本课题中的用户收支管理功能就是程序接受用户理财信
上一篇:
我们一直被这些坑了多少年?
下一篇:
记录文件6:基于IOS的易车新闻客户端