标题 | 基于Android平台的食尚生活APP设计与开发 |
范文 | 周贤领+白磊 摘要:基于位置的服务可让用户便捷地检索自己附近的兴趣点,而全景展示技术让用户更直观地查看兴趣点周边的实景。“食尚生活”APP是一个专注于向用户推荐吃、喝、玩、乐好去处的Android应用程序,它很好地结合了以上两项技术,向用户推荐其附近的商家,同时配合360度实景展示技术,让用户获得身临其境的感受,从而提升商家的业务量。 关键词:Android;LBS;全景展示;移动互联网;餐饮娱乐 中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)29-0039-03 1 概述 生活在变,世界在变。移动互联网让互联网的触角延伸到世界的每一个角落,成为真正的“泛在网络”。 随着科技的不断发展,计算机与软件的进步,新一代的移动智能终端针对应用软件的可操作性以及软件操作的舒适性等方面提出了更高的要求[1]。自从2007年iPhone、Android发布以来,智能手机的使用量迅速上升,随着智能手机的逐步普及,手机端上网的用户群已不可小视。 Android作为一款新型智能手机操作系统,由于其开源性而迅速抢占智能手机市场,开发基于Android平台的手机用户软件,具有强大的应用潜力[2]。 在今天,我们去到一个陌生的地方,不再用为了吃、住、玩、乐,找不到地方而发愁。因为移动互联网为我们提供了便利,我们只要通过移动终端的网络打开地图应用,就可以查到美食店、旅馆、交通路线等信息,省去了很多麻烦和劳累。对于去旅游和出差的人们来说,有更多时间去享受生活,而不是把时间浪费在其他繁琐的地方。手机已经不仅是一个打电话、写短信的工具,而是转变为一种为人们提供了娱乐和信息的手段[3]。随着手机互联网的不断普及,手机已经成为继报纸、广播、电视、互联网之后的“第五媒体”[4]。 食尚生活APP服务的是人们的生活,通过手机可让用户方便地搜索到周边吃、喝、玩、乐的好去处,更能360度全景查看兴趣点的实景,同时也为商家争取更多的客源提供了一个良好的渠道。 2 开发环境介绍 2.1 Android系统 Android是基于Linux的自由及开放源代码的操作系统,运用于移动终端,例如:手机、平板电脑。是由Google公司和开放手机联盟合作起来领导及开发的。Android系统具有开放性、丰富的硬件支持、方便开发、与谷歌的无缝连接等优点[5]。 2.2 MySQL数据库 MySQL由瑞典MySQL AB公司开发,目前属于 Oracle 旗下产品,是目前应用广泛的关系型数据库管理系统之一。 2.3 Tomcat Apache Tomcat是目前较流行的Web 应用服务器之一,其性能稳定,深受Java 开发者的喜爱并且获得了大部分软件开发商的认可和肯定。 3 应用分析与设计 3.1 系统设计 3.1.1 首页菜单 首页本着界面简洁的理念,用新闻列表的形式,展示出相关吃、喝、玩、乐等信息的优惠资讯,把比较受欢迎的相关消费信息展示在首页,让用户在打开软件的时候就能在看到比较好的消费信息。 3.1.2 专题菜单 专题页面设置为4个页面分别对应吃、喝、玩、乐的详细信息,在页面开始以轮播图的形式展现出比较受欢迎的消费信息的图片,然后以新闻列表的形式展示出具体对应的信息。让用户在不知道选择消费什么的时候可以在对应的页面观看然后选择。 3.1.3 周边菜单 周边页面主要以百度地图展示在页面上,我们可以在主页和专题页面选择要去的消费地点以后,只要点击在对应页面的去这里的按钮就可以调到地图页面导航,还可以点击地图上面的在我的位置搜索周边按钮,然后输出要搜索的信息,在地图上展示出来,用户点击展示出来的地点,弹出对应的信息。 3.1.4 我的菜单 我的页面主要呈现,用户模块,足迹模块,系统模块,生活助手模块。用户模块:实现用户的注册、登录、个人资料上传修改、头像上传。论坛模块:登录后的用户可以在足迹模块中发表状态,然后大家可以在里面相互交流,点赞,分享美食。系统模块:关于软件,软件反馈,系统通知,退出软件。生活助手模块:天气预报,通过定位城市,然后实时更新天气预报,健康助手,给大家不定时更新相关的健康信息。 3.1.5 特色功能 360全景图展示,在主页面,专题页面,地图页面,我设置了对应的全景图按钮,在我们点击进入详情页面的时候,只要点击这个按钮,就可以把消费场所的全景图展示出来,用户可以用手滑动,旋转然后浏览全景图。 3.1.6 系统功能结构 3.2 相关技术框架 3.2.1 xUtils xUtils包含了很多实用的Android工具,xUtils最初源于Afinal框架,进行了大量重构,xUtils支持大文件上传拥有全面的http请求协议支持、拥有灵活的ORM和事件注解支持并且不受混淆影响,xUtils最低兼容Android2.2。 DbUtils模块:android中的orm框架,每行代码就可以进行增删改查。支持事务,默认关闭。可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名)。支持绑定外键,保存實体时外键关联实体自动保存或更新。自动加载外键关联实体,支持延时加载。支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。 ViewUtils模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定。新的事件绑定方式,使用混淆工具混淆后仍可正常工作。目前支持常用的20种事件绑定。 HttpUtils模块:支持同步,异步方式的请求。支持大文件上传,上传大文件不会oom。支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求。下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件。返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。 BitmapUtils模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。支持加载网络图片和本地图片。内存管理使用lru算法,更好的管理bitmap内存。可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。 3.2.2 ViewPagerIndicator 分页指示部件兼容:viewpage的Android支持库和ActionBarSherlock。最初基于Patrik Akerfeldt ViewFlow。 當使用viewpage小部件并不总是显而易见的用户,有他们可以导航到相邻的看法。通过实现你这个小部件提供一个明确的指标,存在额外的内容,他们可以点击或滑动。 用ViewPageIndicator实现Tab标签很容易,而且ViewPageIndicator里面还有各种的指示器,相对于用ActionBarSherlock来实现,ViewPageIndicator更加灵活,而且修改ActionBarSherlock的样式比较复杂,如果你的项目中有用到ActionBarSherlock这个库,你可以使用来实现Tab分页,如果Tab上面还加导航条,ActionBarSherlock只能使用ActionBar来实现咯,而使用ViewPageIndicator我们可以更加灵活的使用自己的布局。 3.2.3 Share SDK ShareSDK是一种社会化分享组件,为iOS、Android、WP8 的应用程序提供社会化功能,并且ShareSDK集成了很多常用的类库和接口,大大缩短了应用开发者的开发时间,并且提供了社会化统计分析管理后台。 3.2.4 SimpleCropView 一个图片裁减库,可以自定义UI,非常不错。 3.2.5 ImageSelector 实现多图选择,支持单选和多选两种模式。 3.2.6 Android地图SDK 基于Android 2.1及以上版本设备的应用程序接口。开发适用于Android平台开发的移动终端的地图应用。只需要调用地图的SDK接口,开发者就可以轻松的访问到百度地图提供的服务和数据,然后构建功能丰富和交互性强的地图类功能APP。 3.3 技术难点(360全景图) 3.3.1 在android中使用OpenGL ES需要三个步骤 第一步创建GLSurfaceView组件,使Activity来显示GLSurfaceView组件。 第二步创建GLSurfaceView.Renderer实例,实现接口里的方法,如下:abstract void onDrawFrame(GL10 gl),Called to draw the current frame. abstract void onSurfaceChanged(GL10 gl, int width, int height):Called when the surface changed size. abstract void onSurfaceCreated(GL10 gl, EGLConfig config):Called when the surface is created or recreated. 第三步调用GLSurfaceView组建的setRenderer (GLSurfaceView.Renderer renderer) 方法并且指定Renderer对象,然后由Renderer对象完成GLSurfaceView里3D图形的绘制。 3.3.2 运行机制 程序开始:onSurfaceCreated —> onSurfaceChanged —> onDrawFrame —> onDrawFrame —> onDrawFrame。 程序后台唤醒:onSurfaceChanged—> onDrawFrame—>onSurfaceChanged —> onDrawFrame —> onDrawFrame。 onDrawFrame()在每帧中会被调用,用它来描述一个时时绘制的场景。还可以调用glclear去清空帧的缓冲,然后通过其他OpenGl ES的调用去绘制当前需要绘制的场景。 onSurfaceChanged()在surface的尺寸大小改变的时候会被调用,主要用来设置openGL的观察点并且你也可以在这里设置固定的Camera。 onSurfaceCreated()在你开始渲染的时候被调用,OpenGL ES在绘制上下文的时时候都会被重建(Activity暂停和恢复,绘制的上下文也会随之丢失和重建)。 onSurfaceCreated()用于创建持久的OpenGL资源。 3.4 页面效果 3.4.1 首页 首页的效果图包括:主页条目菜单页面,条目详情页面,和分享页面。 3.4.2 专题 专题菜单下面的四个子页面效果。 3.4.3 周边 周边菜单下面的地图页面,搜索页面,导航页面,详情页面。 3.4.4 我的 我的菜单下面的页面,包括了用户模块相关页面,足迹,生活助手。 4 结论 该应用程序基本实现了设计目标和要求的功能,为用户提供了一个比较真实,可靠,丰富,参考价值比较高的消费信息。来帮助用户选择周边的相关的吃喝玩乐服务,合理的安排自己的休息时间,享受生活。 参考文献: [1] 孙晓宇. Android手机界面管理系统的设计与实现[D]. 北京: 北京邮电大学,2010. [2] 刘党伟. Android手机用户定位系统的设计与实现[D]. 厦门:厦门大学, 2014. [3] Nisarg, Gandhewar, Rahila Sheikh. Google Android An Emerging Software Platform For Mobile Devices[J]. International Journal on Computer Science and Engineering, 2010,12(2):2-7. [4] 范丽娜. 中国手机市场移动互联网盈利模式探讨[D]. 北京: 北京邮电大学, 2009. [5] 明日科技. Android从入门到精通(2012年版)[M]. 北京: 清华大学出版社, 2012, 4-10. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。