0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

时间:2023-03-08 22:23:11

"数字口袋精灵app"二次开发

目录:

一、项目github总仓库推送

二、开发成员

三、分工与合作

四、各模块成果

五、心得墙

六、团队成员贡献分

内容:

一、项目github总仓库:

https://github.com/LiangZhilin/We-have-bing

二、开发人员:

223孙海林(商软2班)
225江志彬(商软2班)
256林集团(商软2班)
224颜文生(商软2班)
404曹嘉琪(商软1班)
142梁植淋(商软1班)

三、分工与合作:

林集团、颜文生:负责该安卓程序在Eclipse-adt及Android stdio上的部署工作,并整理出一套详细的教程文档。

孙海林、江志彬:负责对项目逻辑运算部分做多场景的单元测试,找出运算上的Bug等问题。

曹嘉琪:负责真机运行测试,从用户的角度分析应用。找出应用存在的一些用户体验问题,并提出改进的建议。

梁植淋:负责分析项目任务、团队协调及分工、总代码仓库的管理、统合各成员的成果、以及总博客的执笔

四、各模块成果:

1.在android studio上部署项目(模块负责人:林集团)

一、Android Studio 安装

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

步骤1 - 安装JDK并配置环境变量

jdk安装步骤请参考百度经验:

http://jingyan.baidu.com/article/7e440953f1ae532fc0e2efbf.html

步骤2 - 安装 Android Studio

1.打开Android Studio安装包,点击下一步

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

2.选择你的jdk路径
0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)
3.这个页面全部打勾:
0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)
4.指定SDK路径:

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

5.有点慢,不要方,坐等进度条即可:

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

6.出现以下界面,android studio就装好了,没错!就是这么简单:

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

二、部署“数字口袋精灵”app项目:

1.去总仓库把项目fork到自己的仓库中,然后下载项目

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

2.打开eclipse导入我们的clone下来的项目

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

3.导入“数字口袋”app项目

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

然后,你就可以对项目进行二次开发了,没错,就是这么简单

2.在eclipse-adt上部署项目(模块负责人:颜文生)

1.网上下载jdk

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

2.jdk的安装与配置环境变量:此步骤参考链接

http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html

3、Github上fork这个项目的源代码,截图如下:

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

4、将代码下载到本地

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

5.将项目导入到eclipse-adt里

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

摸索到这里,就这样项目部署完了,好像也挺简单

6、然而,还是出现了问题,运行不成功,运行时出现以下错误信息提示,正在努力解决中

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

3.对项目就行单元测试(模块负责人:孙海林、江志彬)

江志彬部分:


界面的内容就不多解释了
以下是算法的主要流程和数据流向:

PlayActivity
由随机数产生4种题目     共10题
0是普通题目,1 是阶乘 , 2是分数题目,3是带括号题目
0:普通题目  2-5个数的四则运算   负数加括号   被除数为0重新获取随机数
1:阶乘  直接随机数加!
2:分数题目  6个随机数组成3个分数加2个操作符
3:带括号题目  4个随机数3个操作符 随机个数括号 随机括号位置

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

每一题生成之后都会进行计算 保存在   String  staticanser[i]中
2:分数题目计算将跳转到Calculator类 计算
3个分数的计算 按 (1)a*b+c (2)a+b*c两种情况不同 传3个参数的先后顺序也不同 (1)先计算a b返回的值再和c计算
(2)先计算b c返回的值再和a计算

3:带括号题目计算将跳转到KuohaoCalc类 计算

Calculator
     由compute()方法作为与PlayActivity类的接口进入

执行顺序:

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

之后r1、r2的  numerator 和 denominator就分别有了分子分母的值
就拿加法运算如

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

r1 (1,2)
r2 (2,3)  的分数计算为 交叉相乘再相加为 新分子
两分母相乘为 新分母

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

KuohaoCalc

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

参数khdate的值为括号题目生成时的字符串 传去kuohaocalc类计算
1+(2+3)+4
先判断单括号的位置 然后截取括号内内容 进入interceptOperation()方法进行无括号四则运算
返回的值加上头和尾的数值形成新的字符串

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

直到不存在括号 进行无符号四则运算 返回结果

孙海林部分:


测试结果如下:
0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

注:

1、分数加减乘除计算和带括号的四则运算可以测试

2、阶乘和普通整数的加减乘除运算,由于作者写在同一个方法下,无法拆分,耦合度高 下

面是测试修改源代码的图:

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

3.对项目就行运行测试(模块负责人:曹嘉琪)

一、从质量保证的角度

1.当最后一题回答错误,最后显示的答对题数比实际答对题数多一题,而且回答最后一题,无论是对还是错,完全没提示

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

2.游戏结束后,由于没有设置“重新开始”按键,只能按返回键,会出现闪退的问题

0421--"数字口袋精灵app"二次开发(Blackbriar团队开发)

二、从用户的角度

1、游戏结束后,要有“重新开始”或者选择“继续通关”按钮,可以设置通关易难程度或者时间计算,由于不同用户的能力不同,这样可以让用户在练习中不断提升自己的能力,最好有个排名版,这样更能鼓励用户积极认真思考答题

2、答题的生命条应该动态显示答对几题、答了几题,一目了然,便于用户清楚自己回答的题数和答对题数,有些学生如果发现自己的答对题题数太少了,在接下来的题数会更加认真的回答

3、可以设置“取消音乐”按钮,毕竟有些学生边做题目边听音乐会受影响,所以有“取消音乐”的功能再人性化不过

4、作为本项目的测试人员,有个很大的体会:我刚刚那题算错了,我想重新看看思考刚刚做的题,根本不能返回,最好有两个按钮“上一题”“下一题”,让用户有重新思考的时间,这样更能达到提高用户计算能力的效果

5、添加个用户交流版块,能让用户在交流中碰撞出更多的火花

三、从产品的角度

1、该app除了把对象定义为小学生,如果可以的话,添加初中、高中等数据计算,这样整个app的面向对象更多,用户量也会大大提高,知名度更高

2、盈利方面可以通过植入广告,由于该app是面向学生,所以在广告的选取方面也要适合学生发展的,不要什么广告都植入

3、app的推广可以通过app之间合作,比如一个相关的app下载的同时会将该app推荐给用户,是否下载就交给用户去决定

四、从开发者的角度,在架构、算法、技术实现、可扩展性、代码规范等方面可以怎样优化?该app的逻辑方法比较凌乱、命名不规范,例如求公约数的方法为f,这样就不利于二次开发以及单元测试

五、团队合作项目之“心得墙”:

曹嘉琪:

组长的合理分配任务,每个人负责不同的部分,最后任务能顺利完成,也多亏其他几位同伴的功劳,大家都为了完成这项任务,也是蛮拼的。


梁植淋:

很荣幸能跨越两个班把这堆人组合在了一起,第一次合作超乎预想的顺利,每个人都很配合,都为团队贡献了自己的力量,还在合作中体会到了沟通的魅力。感谢队友们对我的支持肯定与包容,深深感受到团队的力量实在庞大,也深感做一个领队要考虑的事情很多很多,如工作分配的合理性,如何促进成员间的沟通,还有言语表达是否恰到好处等。


林集团:

Android studio之前就已经安装好了,当时自己弄了很久的哦,遇到了各种各样的问题,现在问题解决了,但是,以后还是会遇到这种不是“课本知识”的问题,我觉得真正重要的是解决问题思维,学习的知识是无止境的,而问题也会伴随我们的学习工作,bug也是天天要改,那么,掌握一种解决问题的思维就显得非常必要。

举个例子来说,要想有效率的解决bug,首先我们需要掌握调试技巧,查看日志的技巧,以及看外文技术软文的技巧,而不是但但盯着几行代码用逻辑推理演福尔摩斯。而解决各种问题呢,我们首先必须了解问题的本质,如这次的android开发环境搭建,我们需要安装许许多多的插件,我们应该首先弄懂sdk,adt,虚拟机究竟是嘛东西,然后仔细看几篇有质量的教程,掌握大概步骤流程在进行实际操作,不然在不了解的情况下开始实际操作,很容易出问题,而且出了问题查找解决方案都不知道,就如同一道数学题不懂,我们首先是掌握缺失的知识点,然后掌握解题思路,而不是抄答案,这不是解决问题之道。好了我的genymotion又不能用了,大家以后尽量不用genymotion,问题太多了。


颜文生:

先感谢我的队友为我分配任务,让我感觉到很荣幸。其次我的任务是安装下载eclipse—adt等,之后导入项目运行。该过程中一句话总结就是很烦,并且很多机制不了解,为此有时感到很沮丧。队友知道我遇到麻烦就马上给我提建议,先百度看看安装教程。于是我就按着队友给我的建议去完成。在安装过程中,可能并不是那么顺畅,到最终还是迎刃而解。虽然很多机制完全不理解,但我还是觉得慢慢来,总结经验才是我们需要完成的,接下来的事情就是要好好理解为什么需要安装sdk之类的内容。


孙海林:

1、团队项目可以锻炼与团队之间的配合和默契度
2、在第一次项目中我和志彬两人负责单元测试模块,在一开始阅读程序花了很多时间和功夫,到最后算是有一个交代。
3、最后还是为队长的带头能力和分配任务能力点个赞。


江志彬:

这是我们团队的第一次合作,经由组长植淋分配任务,各自完成各自的任务然后由他总结起来,使第一次团队合作任务快速完成。希望在接下来的团队合作中大家磨合得越来越好,共同进步。

六、团队成员贡献分:

虽然我们团队六个人,看起来好像有点多。但对比我们所做的工作量,其实人也就不多了,这里的贡献分就按大家的工作量给吧,虽然大家的能力都无可挑剔。

孙海林:22
江志彬:21
林集团:18
颜文生:17
曹嘉琪:19
梁植淋:23

最后,感谢队友,合作愉快!