android layout布局
2012年第12期福建电脑
基于Android的物业收费管理系统设计与实现
蔡园园,夏海江,赵晓伦,刘家旺
(温州大学物理与电子信息工程学院浙江温州325035)
【摘要】:近年来随着Android系统广泛的被用于手机当中,为了方便物业管理人员上门办理物业收费相关业务,在Eclipse平台上,采用Java语言,设计实现基于Android物业管理软件。描述该软件设计与实现,重点阐述了软件功能模块的设计、应用程序设计以及实现过程中所使用的关键技术。
【关键词】:Android;物业管理;手机
Android是一种以Linux为基础的操作系统,主要用于便携设备如手机、平板电脑等。随着Google及其开放手机联盟其他成员的大力推进,Android平台智能手机的市场占有率与日俱增,2011年Android在全球的市场份额超过Symbian,跃居全球第一。因此,基于Android平台的软件开发具有广阔的应用情景[1]。
随着我国经济发展和城市化的推进,人们对住房的需求逐渐增多,住宅物业管理日益为人们所关注[4]。然而信息化发展进程的不断推进,通过纸笔记录的时代早已远去,更多的是通过PC机来代替纸笔,因此今年
来也出现了很多在PC机上进行物业管理的软件。这些软件在很大程度上解决了物业管理工作流程的繁杂性、多样化、管理复杂、收缴费用与设备维护繁琐,但还不能完全满足用户的需要。随着智能手机的普及,手机的功能越来越接近PC机,同时手机还有便于携带这个特[2]。如果我们能将物业管理软件安装在手机上,物业管理人员就可以随时随地方便的查看物业信息,同时及时催促住户缴纳物业费用。因此,研究基于Android系统的物业管理软件必然具有一定的实际价值和现实意义。
1、Android系统
1.1Android系统架构
Android是Google公司于2007年正式推出的一款新的手机系统平台。Android系统跟其他操作系统一样,采用分层架构[5]。从架构图如图1看具体分为四层,从高到低依次为应用程序层、应用软件框架层、Android系统运行库层和Linux内核层。
(1)Linux内核层:Android是运行在Linux kernel之上,但并不是简单的GNU/Linux。Android 的Linux kernel控制包括安全,存储器管理,程序管理,网络堆栈,驱动程序模型等。该层以C语言进行开发,位于硬软件之间的抽象层,它隐藏了具体硬件细节而为其上层提供了统一的底层服务。
(2)Android系统运行库层:该层包含一些C/ C++库,这些库能被Android系统中不同的组件使用。它
运行在Linux内核层之上,是由函数库Libaries和运行时Runtime构成的中间层,Run-time包含了Android核心库提供了Java编程语言核心类库中可用的功能。
(3)应用框架层:该层包含了应用软件及框架设计,提供包含UI程序中所需要的各种控件,它是一个应用程序的狂接,为应用程序层的开发者提供APIS。
(4)应用程序层:该层涉及用户界面和交互,通常以Java语言编写,其中还包含各种资源文件。Android开源的巨大潜力体现在应用程序的开发者可以使用应用程序框架层的API实现自己的程序。
2、物业管理软件的系统设计
2.1整体功能结构
为了方便业主和物业管理人员更好更快的开展各项物业管理业务,根据小区的实际需要,主要
图1Android
结构
97
福建电脑2012年第12期
设计了住户信息管理、物业信息管理、收费人信息管理、收费信息管理等功能,具体功能结构如图2所示[7]。该物业管理软件本质上就是有各种信息管理构成的,通过各信息管理模块的E-R 图可以清晰的看出个信息管理中所要管理的信息[6]。这些信息就是通过布局文件显示在界面上,使用SQLite 保存在数据库中。
3、系统实现的关键技术3.1数据管理
每个应用程序都会涉及到数据的管理,An -droid 应用程序也不例外,相较于很多别的应用程序要用不是自带的数据库而且这些数据库往往占据很大的空间,Android 优势在于使用开源的、与操作系统无关的SQL 数据库-SQLite 。它是一款轻量级数据库,它的设计目的是嵌入式的,占用资源非常的低,只需几百K 的内存。SQLite 和其他数据库不同的是SQLite 是无类型的,在创建表时无需指定数据类型,SQLite 会自动到相应的数据类型。SQLite 体系结构图如图3。该软件在设计过程中使用SQLite 管理信息的存储。
3.2BroadcastReceiver 的运用
广播是一种广泛运用在程序之间传输信息的机制,而BroadcastReceiver 是对发送出来的广播进行过滤
接收并响应的一类组件。BroadcastRe -ceiver 自身并不实现图形用户界面,但它接收到
某个通知时,它就会启动Activity 作为响应。每次广播到来时,会重新创建BroadcastReceiver 对象,并且调用OnReceive()方法,执行完以后,该对象即被销毁。该软件就是运用了BroadcastReceiver 的生命周期短、启动Activity 作为响应来解决程序设计中出现的同步问题。我们在住户信息视图和住户缴费视图所在的Activity 中设置广播接收函数,在此函数里实现Activity 刷新,然后在收费和增加删除记录过程中设置广播发送函数。这样一旦数据被修改,系统会将此信息以广播的形式发送出去,而设置了广播接收函数的Activity 接收到这些通知后会自动刷新自己的Activity ,这样就实现了同步问题。
4、核心功能设计与实现4.1界面设计
该软件设计的界面较多,下面以“主界面到添加用户界面”为例,介绍界面设计过程。
Android 提供了几种布局管理方式,其中最常用的是LinearLayout 、RelativeLayout 和TableLay -out 三种。LinearLayout 是线性布局,是最常用并且最实用的一种布局形式,它也可以嵌套Linear -Layout 、RelativeLayout 和TableLayout 。该软件设计过程中主要采用LinearLayout 方式[8]。
界面设计步骤如下:
(1)布局文件的设计,布局文件就是我们看到的显示界面,布局文件存在layout 文件中。
(2)在src 文件中TenementmanagerActivity.java 数据包通过setContentView(R.layout.布局文件名)读取布局信息并显示在界面上。
(3)在TenementmanagerActivity.java 中,为按钮设计,在中使用Intent 在多个Activity 之间传递参数和信息,同时绑定和按钮。
(4)在TenementmanagerActivity.java 中创建选项菜单,通过选项菜单把主界面和添加用户界面联系起来。
4.2数据库设计
物业管理软件涉及到住户信息、物业信息等的管理,我们需要的信息都要存储在数据库中,以便查询出所需要的信息。为此使用SQliteOpen -Helper 类访问数据库,调用getReadableDatabase()或getWritableDatabase()获取SQLiteDatabase 的对象,通过onCreate(),onUpgrade()创建数据表和更新数据表中的信息。对于数据库的查询、修改,SQlite 对标准的SQL 语句做了一些改变,使用rawQuery ()直接调用SELECT 语句从SQLite 数据库中检索
图3SQLite
体系结构图
图2
物业管理整体功能
98
2012年第12期福建电脑
数据,使用SQLiteDatabase对象上的insert()、up-date()和delete()方法实现数据的修改。[3]
在实现本系统的过程中,涉及到大量的数据库操作。下面具体介绍一下本系统实现过程中的数据库操作[9]。
1.SQliteOpenHelper(android.database.sqlite. SQLiteOpenHelper)是一个用来管理数据库的创建和版本的辅助类,可以使用继承该类来获取它的方法实现数据库操作。
public class DataBaseServer_HouseInfo extends SQLiteOpenHelper//SQliteOpenHelper的继承,实质就是调用数据库。所以我们要在此基础上创建表
public void onCreate(SQLiteDatabase db){db. execSQL(CREATE_TABLE_SQL);}//第一个使用数据库时自动建表
然后通过public void onUpgrade(SQLite-Database db,int oldVersion,int newVersion)实现数据的更新。
2.SQLiteDatabase(android.database.sqlite. SQLiteDatabase)是一个包含数据的增加、删除、查、修改的类。在进行数据操作的时候只要通过SQLiteDatabase WritableDatabase();或SQLiteDatabase ReadableDatabase();获取数据库数据之后进行具体操作。
3.Cursor(android.database.Cursor)是Android/ SQLite数据库中的指针。不管如何查询都要返回一个Cursor,使用指针可执行以下操作:通过get-Count()查看结果中有多少行,通过moveToFirst()、moveToNext()和isAfterLast()迭代行,通过get-ColumnNames()查列表名称,通过getColumnIn-dex()将这些列表名转换为列编号,通过getString ()、getInd()等方法从给定列的当前行获取值,通过requery()重新执行创建了指针的查询,通过close()释放指针的资源。在本系统中我们用到了Cursor cursor=db.rawQuery("select*from HouseInfo where ZH_RoomNum like?",new String[] {ZH_RoomNum});查询楼层信息。还可以在Sim-pleCursorAdapter或其他实现中包装Cursor,然后将得到的适配器提交给ListView或其他选择部件。
4.3Adapter设计
Android是完全遵循MVC模式设计的框架, Activity是Controller,layout是View。Layout种类繁多,很多数据都不能直接绑定上去,因此Android 引入了Adapter这个机制作为复杂数据展示的转换载体,各种Ada
pter转换的方式和能力不一样。Adapter是连接后端数据和前端数据的适配器接口,是数据和UI(View)之间的一个重要纽带,在常见的View(ListView,GridView)等地方都需要用到Adapter。
本系统的视图由ListView容器呈现,为了实现ListView中单选按钮及全选按钮的功能就要用到Adapter。本系统中用到ArrayAdapter,它由BaseAdapter派生而来,要修改显示样式,就必须重写ArrayAdapter适配器。系统中实现过程中涉及了按钮功能的实现,在视图上很难获取单选按钮的状态,这个操作在Adapter中就可以很容易实现。重写Adapter适配器时,创建一个HashMap 类型的对象数组。这样在重写适配器的GetView 函数时判断按钮状态,如果按钮被选中,HashMap 数组相应位置被置1.在应用程序中通过判断HashMap数组相应位的数值得到按钮状态。
5、结束语
随着Android应用市场的不断扩大,Android 已在智能家居,手机系统等方面有突出的成绩。为此我们顺应时代的需要,设计了基于Android的物业管理系统,进一步扩大了Android的应用领域。该物业管理软件的使用能够提高工作效率和服务质量,实现物业管理的自动化,同时破除了物业管理的地点限制,只要有一款Android系统的手机就可以轻松进行物业管理。
参考文献:
[1]Google.Android official website[EB/OL].[2011-05-10]. www.android/
[2]王中华,强珏娴.Android手机理财软件的设计和实现[J].上海:宜春学院学报,2011(12).
[3]戈改珍,解争龙,张琨.基于Android的火车时刻表查询系统设计与实现[J].现代电子技术,2012(2).
[4]李丽,高峰.小型小区物业管理软件的设计[J].广州大学,2007.
[5]顾聪,陈益强,刘军发,周经野.基于Android平台的室内LBS系统设计与实现[J].北京:中国科学院,计技术研究所,2012.
[6]刘红芳,徐伟.智能化住宅小区物业管理系统软件设计与实现[J].2007.
[7]崔蕾蕾,刘宣杰.房地产公司物业财务管理系统软件的设计与实现[J].长春:长春大学学报,2010.
[8]赵亮,张维.基于Android技术的界面设计与研究[J].电脑知识与技术,2009,29(5):8183-8185.
[9]Mark L.Murphy,Beginning Android2[M].POSTS&Tele-com PRESS.2010.12
99

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。