基于Android的无忧出行应用软件设计与实现
作者:赖盛鑫 高建华
来源:《软件导刊》2018年第06
        要:移动互联网时代,用户可通过手机随时随地从互联网上获取信息。基于安卓手机系统和百度地图软件开发工具包,分析人们生活出行时的各种需求,充分运用九宫格手势密码、Java语言和SharePreference等基本技术,对无忧出行应用软件进行功能模块设计。该系统实现了二维码电子名片取代传统名片的发放,具备查询全国城市天气预报和公交车路线功能,能调用百度地图SDK获得周围商家数据信息。应用实验表明,该软件与同类APP相比,更加注重用户体验,使用方便,具有较强的通用性。
        关键词: 安卓应用程序;百度地图;二维码名片;天气预报
        DOI10.11907/rjdk.181061
        中图分类号:TP319
        文献标识码:A 文章编号:1672-78002018006-0106-05
        AbstractThe advent of the era of mobile Internet the user through the phone can access to real-time information from the Internet at any time anywhere. The article based on the android mobile phone system software development kit and Baidu map analyzes the diverse needs of people travel life uses of the Jiugongge gesture password Java language SharePreference and other basic theory of the functional module design. The application achieves a two-dimensional code electronic business card to replace the traditional business card issuance in the technical innovation Completed the query the national city weather forecast and the function of the bus route query Call Baidu map SDK to obtain merchants data and obtain corresponding stores information such as the telephone and so on. The application experiment shows that the software compared with the similar APP on the market pays more attention to user experience and easy to use strong commonality.
        Mobile phone users can obtain information from Internet anywhere at any time in this mobile Internet era. People's various travel needs are analyzed by Android mobile system and Baidu Map kit. Technologies including Sudoku gesture codes Java language and Sh
arePreference are employed for function module design of worry-free trip application software. Traditional business cards are replaced by two-dimensional code eletrical business cards in the APP. It also provides nationwide weather report and bus route query and employs Baidu Map SDK to obtain nearby merchants' information. According to the usability testing the APP is more focused on users' experience user-freindly and of stronger commonality compared with other similar APPs.
        Key WordsAndroid application App); Baidu map QR-core card weather forecast
        0 引言
        随着信息技术的迅猛发展,移动设备已成为日常交流的工具[1]Android平台凭借系统版更新周期短、开源等优势,吸引越来越多的开发者或企业参与到手机应用开发中,开发出了众多对生活出行非常实用的应用软件,如支付宝、大众点评、美团、百度地图等,但这些软件功能过于臃肿且植入广告众多,运行速度慢,用户体验不佳。鉴于以上不足,本文综合现有研究成果[2-4],利用Android studio工具环境[5-6],充分研究平台测试[7-8]、安全[9]
方面因素,设计并实现了一款更实用的系统软件。
        系统实现如下功能:九宫格手势解锁密码、电子二维码名片生成、城市天气查询、公交线路查询、搜索用户所在地点周围2km内所有商家和公共设施并显示路线地图。
        1)任何拥有Android智能手机的用户都可以使用该应用软件,为出行生活提供畅行无忧的贴心指导。
        2)九宫格手势密码设置,不仅提供独一无二的软件用户使用权,还能根据用户的喜好设置解锁图案,在用户手机上实现创建、修改、回密码功能,节省邮箱等验证回密码的时间,增强了用户体验感,提高了软件使用的安全性。
        3)二维码电子名片取代了传统的纸质名片,方便快捷,既顺应移动互联网电子二维码盛行的潮流,又符合当下低碳环保理念。
        4)用户可以随时随地查看全国各主要城市未来3天天气情况,全国各主要城市公交车线路情况,为人们提供出行参考。
        5)用户可查询附近所有的商家和公共设施详情,并通过地图规划选择最优路径。
        6)主页面周围商家图片生动形象,UI界面运行流畅,采用主流的主页切换模式,无商业广告信息。
        1 相关理论与关键技术
        1.1 九宫格手势密码原理
        本系统通过一个九宫格图案进行登录密码设置。九宫格图案是一个33列的二维矩阵[10],当用户指尖划过一个数字时,系统就记录了该数字,随后将该数字利用SharePreference存储技术保存到手机内存,在登录前进行数据比对验证。同类APP中大多建立后端数据库调取数据,在网络条件较差时常常出现调取失败现象,本文采用的技术与同类APP相比,提高了运行速度,避免了APP程序崩溃的风险。
        通常情况下,绘制一个九宫格图案最短的只绘制一个点,最长可以绘制连接9个点。根据数学排列组合原理可知,如果从只绘制一个点到9个点共有A9-9+A8-9+A7-9+A6-9+A5-9+A4-9+A3-9+A2-9+A1-9=986 409种绘制方法,增强了安全性。
        1.2 二维码生成原理
        二维码(Two-dimension code)是用矩阵符号组成的[11],并以特定的几何图形按一定规律在平面上(二维方向)分布的黑白相间的图形记录符号[12]。二维码主要分为堆叠式/行排式和矩阵式[13]。矩阵式中的QR-CODE,即快速回复二维码,是目前最为流行的一种。QR-CODE具有存储信息量大、识读速度快、纠错能力强等优点,广泛应用于支付生活等领域。
        本文设计的电子二维码即采用QR-CODE,对其编码并加以改进,通过识别并存储用户输入的数据字符,从而转换成二维数组。然后根据编码规范,使用绘图功能绘制二维码,最后生成标准的QR-CODE
        1.3 数据调取关键技术
        1.3.1 百度地图API及定位
        百度地图API主页[14]提供给开发者各种资源,其中百度地图Android开发功能板块提供了地图、定位、导航以及全景SDK
        手机定位分为4种方式:卫星定位(GPS、北斗、伽利略、Glonass);移动
定位;③WiFi辅助定位;④AGPS定位[15]。本文运用前3种定位技术实现本地定位:获本地天气和POI搜索必须先获取用户所在地的经纬度,可导入百度地图相关应用开发包(百度地图API可下载),然后通过运营商的数据流量、WiFi方式,调用开发包提供的类方法定位出经纬度。
        1.3.2 百度地图POI搜索及路径规划技术
        百度POIPoint of Interest:兴趣点)搜索:支持周边检索、区域检索和城市内检索。
        周边检索:以某一点(用户所在地)为中心,指定距离为半径(本文采用2km),根据用户输入的关键词进行POI检索,可获得附近的POI,如超市、餐厅、ATMKTV等信息;区域检索:在指定矩形区域内根据关键词进行POI检索;城市内检索:根据用户输入的关键字进行POI检索;POI详情检索:根据POIID信息检索该兴趣点详情。
        本系统可对公交详细信息进行查询:公交换乘查询:根据起、终点进行线路规划(支持设置途经点);步行路径检索:支持步行路径规划。
android属于什么软件
        1.4 即时获取近3天天气预报
        1)获取定位地址天气:高德地图虽然提供了获取天气预报接口数据信息,但更新十分缓慢或几乎不更新。考虑到百度地图地理位置反编码时和原有开发类包发生不兼容的现象,在技术实现过程中使用高德地图天气预报功能获取用户城市中文名称,根据高德地图获取到的中文城市名再到新浪天气平台获取详细天气信息。
        2)获取其它城市天气:从中国天气网接口获得省份及城市名称,从而获取查询的城市天气信息。
        2 系统软件设计
        2.1 MVC设计模式
        Android界面布局方式分为两种:直接在程序代码中对UIUser Interface:用户界面)进行布局;依据MVCModel View Controller:即模型-视图-控制器)模式进行设计(目前因其扩展性较好成为主流的布局方法)。
        本文设计的系统工程文件中有个res包,内容包括图片、颜、布局文件等资源,在不同的xml分布着各式各样的组件,各组件间具有严格的层次关系。布局完成之后在代码中利
setContentView()方法可以将xml加载到程序中,利用代码控制页面。图1是系统用到的所有XML文件。
        以上每一个xml并不都对应一个页面,有的实现一条分割线作用,有的只是实现下拉加载作用等。在功能设计上,以回密码页l为例说明。