Cooperation.GTST团队项目总结

Cooperation.GTST团队项目总结

项目实现情况

  • 目前对于基本UI界面的设计已经实现,对博客园接口XML的解析也已经完成,但是还暂时无法动态获取对应数据。
  • 几张静态预览图展示(侧滑栏设计加入了toolbar效果,截动态图比较麻烦,所以直接截屏):

项目中实现中的问题及解决

项目中出现的问题较多,在这里只举几个比较关键的例子:

缺少R文件

  • 在对代码进行调试的过程中,出现了找不到R文件的问题,对于这个问题,我们小组进行多方查找资料,认为R文件应该是自动生成的,但是在我们构建的Android程序代码中却没有生成相关联的R文件,这让我们一度很困惑,问题表现如图:

  • 后来我们觉得可以试试看新建一个空工程来看看R文件是否可以自动生成,结果是尴尬的,R文件没有生成,如图:

  • 后来我们通过和老师的交流认为R文件应该是eclipse中常用的形式,在新的Android Studio中可能不会自主生成R文件

eclipse工程在Android Studio中不能生成apk

  • 在我们从上一个问题中跳出来之后,我们将思路转向了eclipse,既然R文件可能是eclipse中的使用形式,而且在新的AS(以下用AS代替Android studio)中不会在我们构建程序框架的时候自动生成R文件,那么我们决定对博客园公开在github上的源代码进行clone:

  • 这时候我们发现,R文件在clone的时候自动生成了:

  • 那么上一个R文件的问题应该是由于我们对整个Android框架学习的不透彻的原因。
  • 博客园的源代码在clone下来之后还要经过一系列的调试才可以使用,调试的内容我们在下一个问题中说。
  • 在我们将源代码调试完毕之后就准备把我们的程序跑起来了,但是在这个时候我们的代码没有报错,却对另外一个问题报错了:

  • 经过查找资料我们了解到,使用AS运行虚拟机,需要先生成apk,然后虚拟机才可以加载apk,呈现出一个可视化的app,但是为什么我们没能生成apk呢?因为我们的这个clone下来的程序是eclipse的工程(网上很多资源,尤其是博客园这样的老资源,大多是eclipse的工程),而工程文件里面没有包含AS中建立apk必需的build.gradle的文件。

调试clone好的源代码

  • 刚clone下来的源代码还需要我们进行调试一下才可以使用。
  • 在源代码clone下来之后,我们查看源代码的时候发现源代码调用的包有缺的,所以我们需要把包补上去,一开始我们以为包是网上的公开的类似V4/V7的那些包,但是仔细看代码后发现,包就在clone好的源代码中,不过因为没有自动识别,需要我们手工加进去才可以使用。
  • 添加包的步骤我们在之前的实验中有学过,右键找到选项将包引入到工程的调用中就好了:

  • 加好了包之后,整个代码运行之后就没有代码的报错了。

使用eclipse对工程进行转换

  • 在前面已经提到,我们发现问题转移到了eclipse上面(感觉我们就是在顺着一条线索不断地摸索/(ㄒoㄒ)/~~),我们就下载了eclipse进行调试我们的代码,当然,安装eclipse还有搭建eclipse的Android环境也是一段找资料用资料的过程……在此就不做详细的赘述了,最麻烦的还是eclipse的很多东西需要与Google进行联网(真是……%>_<%……需要FQ啊~有木有!)。
  • 在搭建好eclipse的Android环境之后我们就发现这时候右键工程栏,会出现导出Android项目的选项了,感人,终于距离成功又近了一步:

  • 导出之后就有了那个我们缺少的build.gradle的文件了!这时候我们再用AS导入这个工程,这里要选择build.gradle文件进行导入,就可以运行出来了。

项目展望与改进(供下一届同学参考)

  • 我们本次项目做的是博客园Android应用的开发,总体来说,这个项目还是非常有开发潜力的。目前,随着博客园用户的增多,越来越多的用户希望能够在手机端实现博客园的登录及新闻的阅读,因此这款APP是满足广大用户需求的。除此之外,为了让用户获得更好的体验,我们一开始准备采用Google新推出的设计语言Material Desn,但是后来由于种种原因没有成功,如果将这种语言运用到我们的UI界面设计上,不仅会使我们的整体设计提升一个档次,也让我们的APP更容易得到用户的青睐,这种设计语言势必在将来也会在被各种APP的开发者所广泛应用。
  • 对于博客园列表的获取,我们需要调用博客园提供的接口,但是后来发现它的接口是用XML编写的,因此还要对XML进行解析,以此来获得数据内容。我们采用的是pull解析,PULL方式的解析相对SAX和DOM来得比较轻量,安卓内部对XML的解析也是采用的PULL,所以没必要引入新的JAR包。还需要改进的地方就是解析完XML之后,对于接口的调用仍然无法按照预期的在对应页面内动态获取相应数据,之后还要再进行研究。
  • 对于网络图片的处理,我们也需要加以改进。在这种需要联网的应用当中,避免不了要使用到网络图片,获取网络图片很简单,但是需要付出一定的代价——流量。当然,对于少数的图片或者处在WiFi环境下而言问题不大,但如果手机应用中包含大量的图片,这势必会耗费用户的一定流量,如果我们不加以处理,每次打开应用都去网络获取图片,那么用户可就不乐意了,所以我们要采用图片的三级缓存策略(缓存层分为三层:内存层,磁盘层,网络层),它的工作原理就是当我们第一次打开应用获取图片时,先到网络去下载图片,然后依次存入内存缓存,磁盘缓存,当我们再一次需要用到刚才下载的这张图片时,就不需要再重复的到网络上去下载,直接可以从内存缓存和磁盘缓存中找,由于内存缓存速度较快,我们优先到内存缓存中寻找该图片,如果找到则运用,如果没有找到(内存缓存大小有限),那么我们再到磁盘缓存中去找。只要我们合理的去协调这三层缓存运用,便可以提升应用性能和用户体验。

团队成员贡献与成绩分配

成员贡献

  • 20145215卢肖明:主要负责Android应用主框架的搭建,UI界面的设计以及调用博客园官方提供的接口,对博客列表进行XML的pull解析。
  • 20145208蔡野:协助主框架的搭建,对程序进行调试(包括在Android Studio和eclipse上对程序进行测试),对项目中出现的问题尝试解决,并解决部分。
  • 20145214张宁:对项目中出现的问题进行分析和总结,提出参考性意见并协助进行解决,对每周的项目博客进行更新。
  • 20145219宋歌:搜集团队项目所需相关资料,对每周的项目成果进行总结分析,体验app已构建部分的使用效果(寻找不足进行改进),并协助构建了部分程序界面,协助张宁更新博客。

成绩分配

  • 总分:25分*4=100分
  • 20145215卢肖明:29分
  • 20145208蔡野:26分
  • 20145214张宁:21分
  • 20145219宋歌:24分

总结

这个项目对我们来说非常有意义,虽然我们一开始连Android Studio的很多基本功能都弄不太清楚,但是经过大家一起在网上及图书馆查阅资料,最后虽然没有做出来一个完整的APP,但是我们从中已经学习到了很多,这对于我们今后进行应用开发来说迈出了巨大的一步。此外,安卓的学习是一个漫长的过程,我们从一开始的被一堆专业术语弄的晕头转向到现在能基本弄懂一些Android开发中常用的一些操作,这和大家的努力也是分不开的。诚然,这次项目对我们来说非常有挑战性,但是在挑战了自己的同时,我们也收获了很多,这才是最重要的,当然,我们目前还只是菜鸟,但是如果我们能够继续钻研下去,终有一天我们也能成为安卓大牛!!!

posted @ 2016-06-19 23:14  Cooperation.GTST  阅读(342)  评论(1编辑  收藏  举报