设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
牵伴APP专业综合设计报告
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

1.个人分工

1.1需求分析阶段

1.撰写综合描述,包括产品状况、功能、设计与实现上的限制。

2.产品LOGO设计。

1.2系统设计阶段

1.撰写模块与代码设计,包括算法设计、数据结构设计等。

2.撰写软件测试。

1.3系统编码阶段

1.对于写废的一版,与佘华扬一起完成客户端开发工作。

2.对于引用第三方开发平台的一版:

(1)学习如何在第三方平台上集成。

(2)完成“牵伴”好友体系集成,包括获取好友列表,监听好友列表等。

(3)完成“牵伴”其他功能的收尾集成工作。

(4)与佘华扬一起完成UI美工。

1.4系统测试与交付阶段

1.与小组成员共同进行测试。

2.完成后续内部外部测试相关工作。

2.遇到的问题及解决办法

2.1Android环境搭建

JDK的安装和配置

JDK设置对应三个环境变量

Eclipse的安装

解压安装

Android的SDK文件的下载和安装

需把tool路径添加到path环境变量

Android 的ADT的安装

Eclipse的插件安装,把Eclipse和sdk关联起来

最后设置

Eclipse设置SDK安装位置;创建AVD(Android 虚拟器)

eclipse的版本与ADT、SDK的版本必须是匹配的。无论是低版本的eclipse安装高版本的ADT还是,高版本的eclipse安装低版本的ADT,在安装过程中都会出现conflict而导致不能安装,即使安装过程能够顺利通过,也属于安装不成功,因为在打开eclipse后,eclipse界面当中没有AVD安装成功后应出现的一组功能按钮。

如果eclipse安装了对应版本的ADT。而与SDK版本不匹配,则有可能出现在eclipse在新建android project项目时,找不到android平台版本的情况。

2.2平台选择

最初小组打算用Android studio进行开发,但是全部成员在安装AS之后电脑都卡,甚至有时打开一个项目需要一两个小时,而且作为新手被SDK版本更新之后出现的种种问题弄心力交瘁,恨不得把所有版本都一次下全,但是最终还是有一系列问题。

基于以上,小组最终还是选择了熟悉的Eclipse。虽然Eclipse不是专门针对Android开发的平台,一些功能的配置比较繁琐,但我们的电脑都“带的动”。

2.3模拟器

因安卓模拟器运行太慢,每次启动需要大量时间。

所以我们选择了VirtualBox+genymotion的方式进行运行测试。

2.3第一版

做第一版(最终废掉)时,在技术问题上遇到了较多难题。作为一个新手,我们对Android完全不了解。所以我组决定通过网络课程来学习安卓开发的基本流程。比如说学着先创建一个最简单的Hello world程序,然后大致了解应用程序的布局文件,java文件,配置文件等放在哪个文件夹等。

组员找到一本Android入门的电子书,我们按照着书上的代码,模仿学习。从写一个简单的页面开始,实现简单的事件。

下面将描述遇到的具体问题(不完全):

表2.2.1 问题1

报错:

android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

场景:

启动弹窗就报错

原因:

我的弹窗应使用系统级悬浮窗,但代码中使用了应用级的悬浮窗

解决方案:

换回合适定义的弹窗即可。

表2.2.2 问题2

报错:

java.lang.IllegalStateException: The application's PagerAdapter changed the adapter's contents without calling PagerAdapter#notifyDataSetChanged

场景:

一打开有viewpager的页面就报错

原因:

在更新adapter的内容后调用一下adapter的notifyDataSetChanged方法,否则在ADT22以上编译程序就会报错。

解决方案:

每次内容改变后都调用adater的 notifyDataSetChanged方法

表2.2.3 问题3

报错:

Link of class 'Landroid/support/v7/widget/RecyclerView;' failed

场景:

使用RecyclerView编译不报错,进入RecyclerView的界面就报错

原因:

详细细节暂时未知,v7和v4版本不对应,v7要用的部分类v4包没有,经导入v7源码到项目确认的,会有类引用不到。使用网上提供的demo包里面的jar包也会报错。

解决方案:

sdk\extras\android\m2repository\com\android\support\recyclerview-v7\22.1.1 目录下的recyclerview-v7-22.1.1-sources.jar 解压拿源码到src目录下

表2.2.4 问题4

报错:

Android界面布局层次过多问题

场景:

如题

原因:

使用了TabHost+activity比使用viewpager+fragment多三层布局,这三层布局主要是来自于activity三层父布局。

解决方案:

除了改用fragment之外还有其他一些技巧可以砍掉两层,最终内容上层布局只剩5层,而大部分手机能支持到12层左右,这样整个布局内容的限制就大大减少了

表2.2.5 问题5

报错:

Android handler 使用sendEmptyMessage发送消息时总是不会触发消息处理

场景:

如题

原因:

需要handleMessage这个方法才会处理题中提到的方法发出的消息,dispatchMessage才是对应Message.obtain(handler, “”).sendToTarget()这种方法的,而且一个handler里面不能同时继承这两个方法,这方面需要继续了解原因。

解决方案:

集成对应方法做处理即可。

表2.2.6 问题6

报错:

经常出现退出activity后退出桌面的问题

场景:

如题

原因:

应该和使用了getBaseContext方法获取Context并在启动activity时使用了intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)建了一个栈

解决方案:

使用Activity.this取代getBaseContext

表2.2.7 问题7

报错:

去除ScrollView,ListView,GridView边缘模糊效果

场景:

题中三种控件都默认带有边缘模糊效果,就是再这些控件滑动时,跟其他空间的交界处会出现一种半透明的模糊效果,这种效果默认比较宽,影响了原本界面的观感。

原因:

这个是系统控件默认的效果,我们可以通过设置去掉。

解决方案:

可以通过下面第一句代码设置竖直方向的模糊效果关闭,第二句可以设置颜色,第三句可以设置宽度。

setVerticalFadingEdgeEnabled(false);

setCacheColorHint(Color.RED);

setFadingEdgeLength(4);

也可以再xml中设置这个属性

android:fadingEdge=“none"

这个效果可以分开竖直和水平方向设置是否启用。

表2.2.8 问题8

报错:

ScrollView 嵌套 GridView最后一行被显示不全

场景:

如题

原因:

未知。

解决方案:

gridview设置一点paddingBottom可以解决问题,连paddingBottom都可以显示完整。

表2.2.9 问题9

报错:

Android 如何让EditText不自动获取焦点

场景:

EditText在进入界面后会抢占焦点,在界面再次显示后会再次抢占焦点。

原因:

未知。

解决方案:

android:windowSoftInputMode=“stateHidden" 再manifest.xml设置activity后第一次进入就不会在抢占焦点,但是要返回界面后不会再次抢占就需要 在EditText的父级的同级控件注意不是父级控件中找一个,设置成 android:focusable="true" android:focusableInTouchMode=“true”,这样就会截断其的抢占行为。

还有在实现发送语音消息上的问题,语音开发难点:

(1)低延迟,语音通话对延时非常敏感

(2)降低噪声、回声消除,静音检测(省流量)

(3)无服务器,去中心化,全双工P2P通信

我们在网上搜了一些关于语音功能的实现方式,但是在了解完其实现流程后,不能正确有效地与项目现有的功能结合,由于技术有限,在浪费大量时间后还是不能将语音功能和原来写好的功能完全融合。且最后发现选择的开发方式不合适,遂这版作废。惨!

2.4环信版

表2.3.1 问题1

报错:

android环信语音通话无法拨通bug

场景:

如题

原因:

当主叫这方拨打语音通话过程中,断网,导致ERROR_TRANSPORT(也会执行onCallStateChanged(DISCONNNECTED, ERROR_TRANSPORT))断开连接,之后  再连接上网络拨打电话,此时无法拨通对方,返回过来的ERROR 总是ERROR_BUSY和REJECTED。

解决方案:

关于断网挂断的问题,客户可以监控网络连接,当网络断开时,调用挂断API;但是另一方收不到挂断通知,所以还会保持通话状态,所以再连上网时无法拨通对方,因为对方还处在通话状态。

2.4.1集成登录以及集成登录

集成环信的时候,大部分的api基本都是以代理方法来实现,环信本来也是基于XMPPFramework框架来开发的。添加代理一定不要忘了移除代理。

当第一次登录的时,这个时候isAutoLogin的属性为NO,加载登录界面,当退出以后,在后台将这个应用程序退出(杀死),这时候再次进入,此时isAutoLogin的属性值为Yes那么直接加载主界面。

当自动登录时,是向服务器发送的异步请求,只有当自动登录成功以后,才会去显示主界面,才会去加载“联系人列表”“会话列表”等。

在环信的官网文档上也能看到环形给我们提供了一个代理方法,当我们自动登录无论是否成功,都会回调这个代理方法。

2.4.2集成环信的EaseUI

把EaseUI拖进来的时候会报错。

这个是因为用到了UIKit里的类,但是只导入了Foundation框架,这个错误在其他类里也会出现,可以手动修改Founfation为UIKit,但是我不建议这么做,第一这个做法的工程量比较大, 在其他类里面也要导入,二,不利于移植,当以后环信更新的时候我们还是需要做同样的操作,最好是创建一个pch文件,在pch文件里面导入UIKit。

2.4.3库冲突

在集成这个UI之前,就已经使用cocoapods导入了MBprogressHUD,这里又引入EaseUI,就会造成冲突,这个时候的解决方法其实很简单:把EaseUI中的MBProgressHUD删除就可以了。

2.4.4调用出错

在集成“EaseConversationListViewController”会话列表是时,继承自控制器DHConversationController,在这个里面试着去调用环信暴露出来的代理方法,数据源方法等,发现调用失败, 界面也不显示。

解决办法如下:

在DHConversationController添加如下代码

(void)viewDidLoad {

[super viewDidLoad];

[self tableViewDidTriggerHeaderRefresh];}

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
 上一篇文章:牵伴APP操作手册
  下一篇文章:APP开发专业综合设计日志
本类最新文章
选择榨汁机的诚实指南 通用回归神经网络在声呐目标分类中 工艺规程制订与并行工程
储油罐的变位识别与罐容表标定 DVD租赁优化方案 车灯线光源的优化设计方案
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!