存在着一些系统应用,例如电话、联系人、短信息等。同时,开发人员开发的第三方应用也存在于该层。应用程序的开发使用Java语言。
1.2应用程序框架层
开发人员可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。用户可以对系统提供的一些基础控件进行重新设计,以实现多样化、定制化的效果。图1系统整体框架
3系统功能简介及其实现
3.1服务器端功能3.1.1数据存储功能
1.3系统运行库层
服务器端提供数据的存储功能,存储每一菜品的详细信
84无线互联科技
市场纵横·
息、消费记录、推荐记录等数据。同时该系统向用户提供
注册功能,注册的客户可登录后对“我的菜单”进行定制,以方便客户的多次消费。3.1.2数据处理功能服务器端会将客户端的请求信息进行解析,然后将处理后的数据返回给客户端。本系统的大部分操作都将由服务器端进行,例如对菜单的排序处理等操作。客户端专注于界面的显示效果,以提供良好的用户体验。由于服务器端与客户端位于局域网中,因此,其
通信的延时非常小。3.1.3管理员职责管理员负责维护菜单信息,如根据餐厅的实际信息增删菜单项或更改价格等。同时,管理员负责即时更新顾客已点菜品的状态。例如,顾客已点的菜品如果处于正在烹饪状态时,顾客不得执行退菜操作。
3.2客户端功能3.2.1客户端框架
在Android系统中,程序布局由Layout文件夹中的XML文件设置。图2为客户端基础框架图。
ActivityUI
图3数据更新流程图作。由于移动终端的内存限制,对XML的解析本系统采用SAX方式。SAX方式可以高效的使用内存,因为SAX只是顺序的读取XML文件的内容,并不会将XML文件完全加载。3.2.3点餐功能首先,所有菜品按不同属性进行分类,如今日推荐、凉菜类、热菜类、汤类等。同时,该系统还支持菜单
搜索功能,顾客可根据关键词进行搜索。菜单
列表用ExpandableListView控件向顾客展示。ExpandableListView包含了一个二级菜单,定制化方便。一级列表中显示菜品的分类名称,二级列表中显示菜品的缩略图、菜名和价格。菜单列表右侧显示当前选中菜品的详细信息,包括图片、主要原材料及历史推荐次数、历史消费次数、当前已点次数等信息。用户点击菜单列表中的其他菜品时,菜单详细信息部分以动画特效退出和进入。该特效的实现由Animation类实现,该类包含了四种基本的特效,以淡入淡出效果为例,实现代码如下:AlphaAnimationaa1=newAlphaAnimation(1.0f,0.0f);aa1.setDuration(500);finalRelativeLayoutrl=(RelativeLayout)findViewById(R.id.rl);rl.startAnimation(aa1);aa1.setAnimationListener(newAnimationListener(){@OverridepublicvoidonAnimationStart(Animationanimation){}@Override
Service
1.
SQLite
2.
图23.2.2初始化功能
客户端基础框架图
程序首次运行时,由工作人员设定客户端的ID号码,该ID号码与餐桌号码一一对应,如无特殊需要,该ID号设置一次即可,无需多次设置,且该设置工作只能由工作人员完成,顾客无设置权限。该设置通过SharedPreferences方式进行存储,客户端的每次请求都将读取该设置中的ID值,将之作为参数传递给服务器端。数据更新功能,该工作应由工作人员完成,顾客看到的永远都应该是最新的数据。该功能的流程如图3所示。首先,判断是否联网,如没有联网则提示用户设置网络,连接不成功则退出程序;如已联网则从服务器下载默认的XML文件,解析后判断是否有更新,有则下载数据并存储在本地;否则直接读取本地文件,解析并显示给用户