基于android平台的沙坪坝新世界商场的app开发_第1页
基于android平台的沙坪坝新世界商场的app开发_第2页
基于android平台的沙坪坝新世界商场的app开发_第3页
基于android平台的沙坪坝新世界商场的app开发_第4页
基于android平台的沙坪坝新世界商场的app开发_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全日制本科生毕业论文 题 目: 基于Android平台的沙坪坝新世界商场的APP开发学 院: 计算机与信息科学学院 专业年级: 信息管理与信息系统 2011级 学生姓名: 柳宾 学号: 20110516357指导教师: 吴华 职称: 教授 2015 年 5 月 6 日基于Android平台的沙坪坝新世界商场的APP开发计算机与信息科学学院 信息管理与信息系统专业 2011级 柳宾指导教师 吴华摘 要:本文对沙坪坝新世界商场室内APP的开发流程以及技术经验进行了总结,重点介绍了Android的开发流程、当前流行的开发技术以及一些全新的开发类库。开发出的APP的UI能够兼容不同尺寸的手机,但只能运行于带有蓝牙4.0及以上的手机。关键词:Android;Java;室内定位;shareSDK;混合APPAbstract:In this paper, development process and technical experience of indoor positioning APP produced by Ren Hua Media Technology Co are summarized. It highlights the Android development process, the current popular development technologies as well as some new development library. After testing, the development of APPs UI is compatible with mobile phones of different sizes, but can only run on phones with Bluetooth 4.0 and above.Key words:Android;Java; Indoor Positioning;shareSDK;MIX APP窗体顶端窗体底端随着互联网+的提出,以及对人工智能化的追求,很多公司改变了传统的营销模式,将产品与互联网相结合,使产品更加人性化、智能化,极大的提高了用户体验1。APP、微信是最常用的结合手段。腾讯、百度、阿里巴巴纷纷将自己产品的接口开放出来供开发者使用来丰富APP的功能,其中用得最多的就是微信SDK。近几年,随着html5技术日渐成熟和完善,webAPP与混合APP流行起来,巧妙地运用html技术,可以很容易的实现跨平台的开发,并且不用顾虑底层适配的繁琐以及语言跨平台开发遇到的兼容性问题。 移动APP的版本迭代周期非常短,平均不到一个月,APP的用户必须不断的更新,或者不断的重新下载,消耗大量的时间和流量。而Web App不用重复下载和更新,只要html5页面的地址不变,就可以动态升级2。本APP则是采用了源生+web的混合。同时,智石科技公司研发了可同时用于iPhone和Android手机的Bright Beacon,运用蓝牙通讯,实现室内定位、物品绑定以及蓝牙支付等功能。本APP则是使用Beacon实现定点推送h5页面3。1 需求分析一个用于商场的室内购物APP,是利用蓝牙通讯实现商品与手机的“互动”,让客户购物更加方便快捷。打开APP后自动开启蓝牙,通过识别范围内brightbeacon的唯一设备码,推送相应商家的h5页面。由于Android手机型号、屏幕尺寸众多,所以,在设计APP时必须满足以下几个需求:第一 界面必须能够自适应各种屏幕。第二 要让客户能够找到这个商场。第三 要让客户能够在接近商品时接到详情页的推送。第四 要让客户能够收藏喜欢的商品或商家。功能概览如图1-1。图1-1 首页功能概览2 系统分析2.1 推送原理 bright beacon会将信息通过蓝牙发送出去,有效距离小于等于10米,其中包括唯一的设备ID号、商品或者公司的信息等,手机通过蓝牙接收该ID并转发给服务器,服务器将ID对应的h5页面网址传给手机,APP用一个webview加载该页面。推送流程如图2-1。图2-1 推送流程2.2 APP功能分析APP的第一个Activity必须包含所有主要功能能的入口,包括:导航入口(调用百度地图)、感应Beacon的入口、订阅按钮以及详情页的入口,为了方便使用,设值、收藏、退出等辅助功能入口全部放在仿QQ的侧滑菜单中。首页设计图如图2-2。3 开发所用技术3.1 Java Sun公司开发,用于服务器的发开以及Android开发。2-2 首页设计图3.2 百度地图API百度公司将百度地图的各类接口免费开放给开发者,其中包括用于网页开发的JS接口、安卓版的接口、IOS版接口以及LBS(Location Based Service)等多种开发工具和服务4。运用这些接口可以实现地图的展示、基本的定位功能、云端存储功能以及简单的室外导航和旅行线路的规划,并且这些接口可以在个人电脑、手机、乃至服务器上使用,并且兼容各种操作系统。这里用到的是Android导航SDK。3.3 ShareSDKShareSDK是一个功能组件,兼容IOS、安卓以及windows phone,主要为移动应用提供社会化功能。在开发文档的帮助下开发人员只需要几分钟就可以在APP中集成社会化功能。运用ShareSDK可以实现第三方平台的登录、将内容分享到第三方平台以及获取第三方平台的用户资料等功能,同时在第三方平台收集的信息将被统计和分析,并生成折线图反馈给开发人员,从而了解用户的需求、爱好等,为APP的运营模式和推广方式提供了非常重要的参考依据,并且为APP提供了可观的社会化流量5。3.4 SlidingmenuSlidingmenu是基于安卓平台的一个开源且免费的项目,用于方便快捷的开发现在流行的左右滑动菜单,类似于较新版本的手机QQ6。4 开发以及测试环境4.1 Eclipse首先安装JDK,安装路径:X:java,在计算机中新建环境变量,变量名为JAVA_HOME,变量值为X:Javajdk1.*.*,修改Path,将JDK的bin目录添加到PATH目录下7。%JAVA_HOME%bin;%JAVA_HOME%jrebin;将java环境配置完毕后才可以正常的运行Eclipse,并且JDK和Eclipse必须都是32位或者64位,否则将报错。4.2 HBuilder安装HBuilder前端开发工具,用于H5页面的前端开发。4.3 WampServerWampServer是用于PHP开发的方便快捷的Apache-Mysql集成环境,Android的后台开发和h5的后台开发也可以采用PHP。4.4 Photoshop从Adobe官网下载PS的安装包解压并断网安装,并用注册机去掉试用期。4.5 夜神模拟器/海马玩模拟器主要推荐夜神模拟器和海马玩模拟器,两款模拟器都可以去各自官网上下载。夜神模拟器官网:/海马玩模拟器官网:/5 项目实施5.1 绘制设计图用Photoshop画好APP每个Activity的设计图,并用切片工具切好要用到的icon和图片,测量容器、组件的width(宽)、height(高)、padding(内边距)以及margin(外边距)等的像素值,并在Android上换算成dp单位,在h5前端页面上换算成rem单位。5.2 界面自适应处理0px设值法配合layout_weight是目前最为推荐的Android多屏幕自适应解决方案。Layout_weight属性指的是权重,决定了该布局或者组件在父级容器中显示的比例。权重属性一般用在Linearlayout现行布局当中,并且权重和本身大小成反比,也就是说,权重越小,对应布局或组件的优先级和大小越大。在横向的线性布局中,权重决定了layout_width宽度的大小,在纵向的线性布局中,权重决定了layout_height高度的大小8。传统的安卓自适应方法是将组件宽高都设置成fill_parent再由权重决定其显示的大小和比例。由于权重和本身大小成反比,在一个容器中如果组件有很多且大于三个的时候,即使将子组件的显示比例完全由权重去控制,该组件的大小也是很难确定的。在传统的方法上做出改进,将width=0px或height=0px与权重属性配合使用,是现在比较流行的适配安卓屏幕的办法。该方法能使通过权重控制大小的组件成正比例显示,这也是解决安卓开发中很难解决的碎片化问题的有效方法。 首先建立一个style_layout.xml,之后每个layout布局都通过权重与0px设值法得到自适应屏幕宽度的目的。 fill_parent fill_parent wrap_content wrap_content 0px 0px 然后每个layout根据需求引用style_layout.xml下的资源,每个layout下的控件通过设置自身的layout_weight控制自身的宽高。使用流程如图5-1。图5-1 layout_weight使用流程5.3 slidingmenu的使用slidingmenu使用流程如图5-2。首先你需要在下载两个开源库两个zip格式的文件9。(1)Slidingmenu下载地址为:/jfeinstein10/slidingmenu,下载其中中的SlidingMenu-master.zip(2)Actionbarsherlock开源项目下载地址:中的JakeWharton-ActionBarSherlock-4.4.0-0-g4a79d53.zip(3)然后分别解压这两个文件的得到:SlidingMenu-master.zipJakeWharton-ActionBarSherlock-4.4.0-0-g4a79d53.zip将这两个文件夹下面的工程导入eclipse:SlidingMenu-master下面的library工程,JakeWharton-ActionBarSherlock-4.4.0-0-g4a79d53文件夹下面的actionbarsherlock。然后将library库添加到你的项目中去,步骤:右键你的工程propertiesAndroidAdd选library库然后ok10。图5-2 slidingmenu使用流程Slidingmenu的引用方法如下:新建xml布局,slidingmenu.xml代码如下:在对应的Activity中进行初始化,并设值样式。5.4 百度地图sdk的使用百度地图使用流程如图5-3。图5-3 baiduMap使用流程首先申请密钥,地址为:/apiconsole/key每个Key仅且唯一对于1个应用验证有效,即对该Key配置环节中使用的包名匹配的应用有效11。因此,多个应用【包括多个包名】需申请多个Key,或者对1个Key进行多次配置。在新建的android工程里的assets目录添加BaiduNaviSDK_Resource_X_X.png, BaiduNaviSDK _X_X.png和chanel文件(demo工程里面assets目录有),在libs目录添加BaiduNaviSDK_X_X.jar, httpmime-4.1.2.jar 在libs/armeabi目录添加so库,libapp_BaiduNaviApplib.so、libapp_BaiduVIlib.so、libcurl.so、libgnustl_shared.so、libbds.so、 libbd_etts.so 、libBDSpeechDecoder_V1.so。在AndroidManifest.xml文件中添加所需的权限。增加百度LBS密钥,将下面的key值修改为在LBS开放平台申请的AK。定位用的service:在使用SDK前,应该先进行百度服务授权和引擎初始化。private void initNavi() BaiduNaviManager.getInstance().init(this,mSDCardPath, APP_FOLDER_NAME,new NaviInitListener() Override public void onAuthResult(int status, String msg) if (0 = status) authinfo = key校验成功!; else authinfo = key校验失败, + msg; BNDemoMainActivity.this.runOnUiThread(new Runnable() Override public void run() Toast.makeText(BNDemoMainActivity.this, authinfo, Toast.LENGTH_LONG).show(); ); public void initSuccess() Toast.makeText(BNDemoMainActivity.this, 百度导航引擎初始化成功, Toast.LENGTH_SHORT).show();public void initStart() Toast.makeText(BNDemoMainActivity.this, 百度导航引擎初始化开始, Toast.LENGTH_SHORT).show();public void initFailed() Toast.makeText(BNDemoMainActivity.this, 百度导航引擎初始化失败, Toast.LENGTH_SHORT).show();, null /*mTTSCallback*/);5.5 sharesdk的使用ShareSDK使用流程如图5-4。第一步:添加权限 图5-4 shareSDK使用流程 第二步,添加Activity信息 第三步:如果APP需要集成微信、易信、新浪微博、支付宝的分享功能,需要添加activity进行回调使用12: 第四步:添加分享代码。5.6 Android数据库分析本APP不需要太多的数据存储,所以采用mysql数据库来存储数据。要用到的数据包括becon上绑定的数据,以及用户的收藏信息。如图5-5是beacon的E-R图。图5-5 Beacon表E-R图如图5-6是收藏的E-R图。图5-6 收藏内容E-R图数据关系如图5-7。图 5-7 Android数据关系图5.7 h5页面数据库分析h5页面也是采用mysql作为数据库。数据库中存储了产品信息、评论信息。如图5-8是产品的E-R图。图5-8 产品内容E-R图如图5-9是评论的E-R图。图5-9 评论内容E-R图数据关系如图5-10所示。6 总结该APP是本人在公司实习期间独立完成的一整套项目,从原型设计-UI设计,到前端架构,到后台实现,花费了2个月的时间。实习期间体验了产品开发的各个流程,对Andr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论