基于Android的掌上广州

2017-09-20 03:13武千惠温川雪
现代计算机 2017年22期
关键词:景点页面百度

武千惠,温川雪

(1.广州医科大学信息管理系,广州511436;2.广东省广晟财务有限公司,广州510623)

基于Android的掌上广州

武千惠1,2,温川雪1

(1.广州医科大学信息管理系,广州511436;2.广东省广晟财务有限公司,广州510623)

设计一款名为“掌上广州”的移动App,是基于Android的便捷的广州旅游信息软件。其在Android Studio开发环境下,具有友好生动的界面,信息量丰富,具有购物、景点、医疗、美食、住宿等丰富的栏目。此外,系统在百度地图API的基础上上进行二次开发,把百度地图的定位和导航功能与旅游软件的特色功能进行了融合。经测试,该App在多个版本的Android平台上均能流畅地运行。

Android;广州;手机

0 引言

Android系统是第一个为移动终端打造的真正开放和完整的移动软件操作系统,其开源性、占有率高、适用范围广等特点,较其他系统不可替代的优异性[1-2]。

本App对广州的美食、餐饮、医疗、景点进行等进行了介绍,对众多的外来人员来说是一款非常实用的App。它利用Java语言和Android Studio编辑工具开发[3-4],采用Android开源系统技术,还涉及到Android SDK、Dalvik等相关理论及技术,目的是让用户全方位地、更加方便快捷地了解广州的各种信息,以便用户安排计划出行、娱乐、生活、工作等[5]。

1 系统结构设计

1.1 启动页面

App启动后首先进入的是一个启动页面,然后给主功能页面出现提供一个缓冲。其一般的功能是为App做一些系统信息的配置,例如检查App更新,为主动登录的App做用户登录等[6]。

1.2 注册登录页面

软件的功能是公共的,数据属于个人私有的,因此本软件为了保护用户隐私,在使用本软件时必须注册自己的独立账号才能登录。

1.3 首页

用户可以点击美食、景点、住宿、医疗、购物、交通、气候等功能按钮,查询广州著名的小吃、菜肴,欣赏广州各大著名景点,查看有名的大型购物商场、了解广州各大医院的基本信息,还可以查看酒店住宿信息等,可以让用户们更加快速了解广州并更加便捷的生活,为来广州旅游、生活、工作的外地人带来了极大的快捷。

图1 首页用例图

1

1.4 搜索页面

在搜索板块中,本软件提供了搜索建议框与本应用中的动态列表选项。点击搜索框,可链接到百度地图接口,引用百度地图进行地点搜索;用户也可以搜索到本应用中已有的信息,并快捷搜索到相应界面,在动态列表选项中用户可以左右上下滑动来翻看信息,选定指定页面。

1.5 我的页面

可以设置个人头像,头像设置是使用本地相册取图裁剪,再保存图片路径到数据库。还可以查看更多关于本软件的消息以及包括了清除缓存功能,让用户更好的体验使用软件的乐趣[7]。

图2 掌上广州系统的网络拓扑图

图3 掌上广州系统类图

2 系统设计与实现

2.1 启动页面的实现

App启动后首先进入的是一个启动页面,如图4所示,是个全屏页面,隐藏了默认的状态栏ActionBar。页面的主布局,是一个LinearLayout的控件,图片是通过属性设置的。当点击App进入,自动开启一个计时任务,让这个页面显示3秒后开启主界面[8]。

图4 启动页面

图5 登录界面

2.2 登录、注册功能的实现

用户注册实现的过程主要有几个步骤,用户从键盘向输入框输入用户信息,当用户点击确认按钮从输入框提取信息。首先会对信息做判空验证,如果验证通过,就将数据写入本地数据库。本地数据库保存的数据结构如表1。

表1 数据库用户数据结构

用户登录实现的过程主要有几个步骤,用户从键盘向输入框输入用户信息,当用户点击确认按钮从输入框提取信息。首先会对信息做判空验证,如果验证通过,就根据用户名和密码去本地数据库提取用户信息,数据库如果存在该用户,登录成功,否则给出用户不存在的提醒。用户登录和注册的实现界面如图5、6。

2.3 首页模块的实现

用户登录成功后就会进入App主界面,设计为购物、景点、美食、文化、医疗和住宿信息的功能选项模块。界面实现的布局结构,由上往下,由左往右,分别是TextView,一个自定义的滑动View,这个View继承自ViewPage,在原生View的基础上面开启了定时任务,每过5秒切换图片,然后就是为这个View设置点击事件,处理当用户点击后的功能。再下面是一个GridView分开的六个模块,六个模块是通过适配器放入数据。底部导航栏是三个按钮,按钮是ImageView控件设置了点击事件。滑动模块的设计可以是手动滑动,还可以通过下方按钮的点击切换模块[9-10]。首页如图7所示。

图6 用户注册面

图7 首页界面

2.4 页面跳转的实现

当用户点击一些设置了点击事件的控件后就会处理一些点击事件。比如登录界面,当点击登录按钮后就是从登录界面跳到首页界面。

跳转的主要通过Intent实现。Intent是一个将要执行的动作的抽象的描述,由Intent来协助完成An⁃droid各个组件之间的通讯。比如调用Activity实例化对象的startActivity()来启动一个activity,或者由broad⁃caseIntent()来传递给所有感兴趣的BroadcaseReceiver,或者由startService()/bindservice()来启动一个后台的service。可见,intent主要用来启动activity或者ser⁃vice[11]。

2.5 购物、美食、文化、医疗、住宿模块的实现

本应用程序的购物、美食、文化、医疗、住宿界面都是一个继承Activity的类。当一个新的页面打开后,前一个页面将会暂停,并保存在历史堆栈中。用户可以返回到历史堆栈中的前一个页面。当该页面不再使用时,还可以从历史堆栈中删除。默认情况下,Android将会保留从主页面到每一个应用的运行页面。

当从分块模块点击进入后,用户就会进入对应的页面,开启对应的Activity。出于界面的复用,减小代码的复杂度,购物、美食、文化、医疗、住宿的界面和他们的详情页面相似,所以他们的页面是写在同一个Ac⁃tivity的,根据点击后传递的数据类型加载不同的数据。图8、9是住宿的功能实现界面。

图8 具体酒店界面

图9 住宿列表界面

点击右上角可以跳转至该酒店官网。官网按钮是一个文本框实现的,给这个文本框添加了点击事件监听,点击后发起酒店官网的请求,打开网页。

所有购物、住宿、文化、美食、医疗等详细信息页面的数据加载过程是一个网页的加载过程,为了页面的排版的多样美观,将数据生成了本地HTML文件。本地HTML文件的生成过程是先在Word排版,然后另存的时候选择保存一个HTML文件[12]。

2.6 景点模块的实现

景点模块主要采用了百度地图的API,页面的加载过程由于和其他页面的加载过程区别比较大,所以是以单独的界面存在。进入后首先看到的是有一个地图页面,看到的是当前用户所在的位置。搜索框具备搜索广州景点的功能,输入信息后按搜索就可以列出匹配景点。

景点按钮会以列表形式列出所有景点,绿色定位图标按钮可以把常见景点标在地图上面,最后的按钮是定位按钮,当位置偏移后用户可以重新定位当前位置。图10到图11景点模块的功能实现界面。

图10 景点主页面

图12 地图标出所有景点

图13 地图布局

图11 景点列表页

百度地图的集成过程如下[13]:

(1)百度地图官网Key申请

打开百度地图开发者平台,注册账号完成登录,然后创建使用百度地图服务的App,根据包名和SHA1,申请对应的百度地图开发KEY。

(2)Android配置文件权限、Key配置:

(3)百度地图需要的第三方架包,导入百度地图的jar包和so文件

(4)Application中对百度地图SDK初始化:SDKI⁃nitializer.initialize(this);

(5)布局文件的配置如图13所示。

(6)位功能实现

首先创建百度地图的视图MapView,然后创建百度地图的对象Baidu'Map。接着需要创建定位对象Loc⁃Client,然后为定位设置坐标类型,定位时间间隔等参数,最后发起定位。

定位成功后,在回调参数中取到一系列的地理信息,例如经纬度,然后设置到地图上面。

(7)地点搜索

百度地图中用到的地图搜索称为POI搜索,就是完成输入信息的地理搜索。根据用户的搜索,从百度服务器获得搜索相关的数据,标到地图上面。

2.7 搜索模块、功能的设计实现

搜索模块的目的主要是为了用户快速开启景点搜索模式,为用户提供一些热门小吃景点等信息的快捷方式。

布局文件由上而下,由左往右,依次是一个搜索输入框和一个自定义的推荐框。推荐框就是在基础的view上放了10个文本框,随机设置文本框,并设置动画。

输入框点击后就会调用startActivity方法,由当前页面跳转到景点页面。页面初始化的时候会为自定义View设置数据,完全进入页面时开启动画,为用户展示飞入效果[14]如图14。

图14 搜索界面

图15 我的功能界面

2.8 我的模块的实现

我的功能模块里主要是设置用户的个人信息,用户可以自由设置自己的头像,可以在本地相册中选择喜爱的图片。还可以清除缓存、查看本软件制作人信息等功能。

默认的登录用户是没有头像的,当用户设置头像时就会从本地相册选取图片剪切后保存到本地文件,将本地文件路径保存到数据库。头像数据的加载利用了一个第三方图片加载框架Glide[15]。

缓冲清理的功能即把程序运行时产生不需要的数据或者临时数据清理掉,不清理的话就会占用内存,浪费容量,清理后令其运行更快速。

制作人的详细信息展示主要利用了Toast的功能。图15-图17是实现界面[16]。

图16 更多界面

图17 关于界面

3 系统测试与分析

3.1 系统U I U I测试

首先把测试手机开启开发者模式,打开“设置”,进入“更多”,连续点击版本号开启开发者模式。然后勾选开发者选项中的USB调试,和显示边界布局,以及勾选显示CPU使用情况。进入系统,开始界面测试,如图18所示,首先观看各个界面的整体布局和开始预想的界面是否一致,其次观看每个界面控件布局,是否整体规范,符合逻辑。

3.2 性能测试

首先还是使用开发者工具的工具进行性能测试,测试的主要方向是界面是否存在过度绘制,还有页面显示的每一帧是否存在暂用内存过大的问题。

GPU过渡绘制:对于过渡绘制的测试主要通过人工进行测试,这也是发现应用软件过渡绘制的首选途径。通过打开开发者选项中的显示GPU过度绘制(三星手机:设置—更多–开发者选项–显示GPU过渡渲染-显示CPU使用情况)来进行测试(只有Android4.2及以上的版本才具备此功能)。颜色标识:从好到差:蓝-绿-浅红-红。根据界面的性能分析情况作界面和功能的调整,保证应用的流畅性,提供良好用户体验,如图19所示。

图18 边界布局

图19 GPU绘制和资源界面

3.3 功能测试

(1)系统登录

测试各用户在输入帐号、密码后是否能顺利进入各自的界面。

(2)浏览首页

测试用户能否对首页信息进行浏览。

(3)搜索功能

测试各用户在登录系统后是否能搜搜景点。

(4)个人设置

测试用户能否进行个人设置。

在上述根据系统测试结果表所示,本系统在满足用户需求的前提下各功能均能运行,各功能满足系统设计的目标及功能需求。

4 结语

基于Android的掌上广州手机App是一个便捷的移动广州旅游信息宝典,界面友好性高,里面包含了广州衣食住行等方面的主流信息,还拥有百度地图搜索、定位系统,可以实现流畅的页面跳转和信息加载。本App还拥有登录注册功能,使用户之间先相互透明,可以保护不同用户隐私,也方便个性化设置,操作起来十分简单,整体的设计和开发基本满足了预定的需求,也得到了试用者的良好评价。

参考文献:

[1]郑健,贺超.Android和Chrome的发展与未来[J].移动通信,2010,34(11):80-82.

[2]张正政,林耀荣.基于Android系统的影音播放器开发[J].现代电子技术,2011,34(2):5-8.

[3]董士海.人机交互的进展及面临的挑战[J].计算机辅助设计与图形学学报,2004,16(1):1-13.

[4]傅志红,陈兴璐.深入浅出Google Android[J].北京:人民邮电出版社,2009:85-90.

[5]付永刚,张凤军,戴国忠.双手交互界面研究进展[J].计算机研究与发展,2005,42(4):604–613.

[6]郭志宏.Android应用开发详解[M].北京:电子工业出版社,2010.

[7]公磊,周聪.基于Android的移动终端应用程序开发与研究[J].计算机与现代化,2008:86-89.

[8]R.Rogers.Android应用开发[M].李耀亮,译.北京:人民邮电出版社,2010.

[9]马越.Android的架构与应用[D].中国地质大学,2008.

[10]郭宏志.Android应用开发详解[M].北京:电子工业出版社,2010.

[11]S.Conder,L.Darcey著,张魏译.Android移动应用开发从入门到精通[M].北京:人民邮电出版社,2011.

[12]苏志同,石绍坤,李晋宏.手机游戏开发架构的研究[J].计算机工程与设计,2010,31(7):1631-1634.

[13]李凯.Android操作系统分析与移植[D].华南理工大学,2011.

[14]张利国,龚海平,王植萌.Android移动开发入门与进阶[M].人民邮电出版社,2009.

[15]盖索林.Google Android开发入门指南(第二版)[M].北京:人民邮电出版社,2009.

[16]MeierR.Android Application Development[J].Indianapolis:Wiley Publishing.,2009.

PocketGuangzhou Based on Android

WUQian-hui1,2,WENChuan-xue1
(1.Departmentof Information Management,Guangzhou MedicalUniversity,Guangzhou 511436;2.Guangdong Rising Finance Co.,Ltd.,Guangzhou 510623)

Designsa PocketGuangzhou App,which is convenient Android-based travel information about in Guangzhou.Ituses Android open source system technology and isdeveloped in the Android Studio.App has friendly and lively interface and rich information,with shopping,attrac⁃tions,medical,food and other various columns.In addition,the system makes second development based on the Baidumap API.It inte⁃grates Baidumap positioning and navigation featureswith travel software features.The App is tested to run smoothly in a number of ver⁃sionsof the Android platform.

武千惠,女,学士,研究方向为移动开发、管理学领域

温川雪,女,硕士研究生,讲师,研究方向为物联网、移动通信、教育技术

2017-07-27

2017-08-03

国家自然科学青年基金项目(No.61603106)、广州市属高校科研项目(No.1201630320)

1007-1423(2017)22-0079-06

10.3969/j.issn.1007-1423.2017.22.019

Android;Guangzhou;Mobile Application

猜你喜欢
景点页面百度
刷新生活的页面
答案
让Word同时拥有横向页和纵向页
Robust adaptive UKF based on SVR for inertial based integrated navigation
打卡名校景点——那些必去朝圣的大学景点
百度年度热搜榜
不懂就百度
英格兰十大怪异景点
没有景点 只是生活
景点个股表现