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开发中常用的一些操作,这和大家的努力也是分不开的。诚然,这次项目对我们来说非常有挑战性,但是在挑战了自己的同时,我们也收获了很多,这才是最重要的,当然,我们目前还只是菜鸟,但是如果我们能够继续钻研下去,终有一天我们也能成为安卓大牛!!!

Cooperation.GTST团队项目总结的更多相关文章

  1. Cooperation.GTST团队第一周项目总结

    Cooperation.GTST团队第一周项目总结 团队项目 项目内容:我们打算利用Android Studio开发一款博客园的Android APP,初步设想能够实现在Android手机平台使用博客 ...

  2. Cooperation.GTST团队第四周项目总结

    项目进展 这周我们的主要学习内容是: 1.研究学习如何导入博客详情页. 2.继续研究如何使用博客园的相关接口,导入相关jar包实现页面整体效果: 在我们使用其它APP或者上网浏览论坛.网页等时,通常都 ...

  3. Cooperation.GTST团队第三周项目总结

    项目进展 这周我们仍然在学习使用博客园的相关接口,页面的一个基本模块已经搭建出来了,但是页面整体效果还没有完全做出来.另外,我们在使用其他的APP时留意到许多APP都使用上拉加载和下拉刷新的效果,所以 ...

  4. Cooperation.GTST团队第二周项目总结

    项目进展 这周我们把工作主要放在了UI界面的实现上,为了让整款APP看上去能够更加高大上,我们决定采用Android 5.0开始推出的一个Material Design风格的导航控件Toolbar. ...

  5. 关于Cooperation.GTST

    Cooperation.GTST团队项目简介 我们打算利用Android Studio开发一款博客园的Android APP,初步设想能够实现在Android手机平台使用博客园的相关功能,后续想法会在 ...

  6. AxureRp 打开SVN上的团队项目

    打开Axure,在菜单项中,点击 "团队" 菜单,选择 "获取团队项目": 切换到 "SVN" 选项, 填写正确的Axure项目的路径,打开 ...

  7. 团队项目——编写项目的Spec

    团队项目--编写项目的Spec 一.Spec的目标        spec主要用来说明软件的外部功能,和用户的交互情况,主要用来说明软件内部的设计.图片编辑器是与生活息息相关的一个必备软件,随的流行, ...

  8. [BI项目记]-搭建代码管理环境之创建团队项目

    此篇主要介绍如何基于TFS环境创建团队项目来进行项目代码的版本管理工作,这一系列将侧重于BI项目,当然对于其它项目也同样适用. 在TFS里开始一个项目,我们首先需要创建一个团队项目. 在Team Ex ...

  9. tfs中如何创建团队项目及如何操作团队项目

    创建团队项目集合 tfs server管理控制台\团队项目集合页面.选择'创建集合'链接,按向导即可创建项目集合. 创建团队项目 创建好团队项目集合后,就要开始创建团队项目了. 进入vs,连接上tfs ...

随机推荐

  1. Linux就是这个范儿之第一次亲密接触(2)

    原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明.否则将追究法律责 1.2 不一样的图形操作 几乎所有Linux的新用户都会认为Linux的图形界面是相当的绚丽又多彩. ...

  2. Delphi数据类型转换

    [转]Delphi数据类型转换 DateTimeToFileDate        将DELPHI的日期格式转换为DOS的日期格式 DateTimeToStr              将日期时间格式 ...

  3. javascript字符串函数

    substring() 从字符串中提取一些字符 <script type="text/javascript"> var str="Hello world!&q ...

  4. 在RES.web.Html5VersionController废弃后,如何做版本管理

    在之前的版本,可以通过重写Html5VersionController, 在游戏一次更新后,增加v版本号,来达到修改每次加载的png.mp3.json等文件的url不同,来解决缓存的问题. 这样的好处 ...

  5. ios 的ASIHTTPRequest学习

    发起一个同步请求 同步意为着线程阻塞,在主线程中使用此方法会使应用Hang住而不响应任何用户事件.所以,在应用程序设计时,大多被用在专门的子线程增加用户体验,或用异步请求代替(下面会讲到). - (I ...

  6. opencv学习笔记——minMaxIdx函数的含义及用法

    opencv中有时需要对Mat数据需要对其中的数据求取最大值和最小值.opencv提供了直接的函数 CV_EXPORTS_W void minMaxLoc(InputArray src, CV_OUT ...

  7. ubuntu下完全卸载opencv3.1.0

    在ubuntu下删除opencv需要以下步骤: 1.进入opencv的源代码文件夹下的release(这是你在安装opencv时候自己命名的,cmake时候所在的目录) 2.执行以下命令 sudo m ...

  8. Hibernate的状态,缓存和映射

    Hibernate的状态,缓存和映射 1.对象的状态 1.1.对象状态的概念和分类 在使用Hibernate操作数据库的时候,我们先创建了JavaBean对象,然后使用session来保存或者更新到数 ...

  9. Linux中的Buffer Cache和Page Cache echo 3 > /proc/sys/vm/drop_caches Slab内存管理机制 SLUB内存管理机制

    Linux中的Buffer Cache和Page Cache echo 3 > /proc/sys/vm/drop_caches   Slab内存管理机制 SLUB内存管理机制 http://w ...

  10. Spark Core (一) 什么是RDD的Transformation和Action以及Dependency(转载)

    1. Spark的RDD RDD(Resilient Distributed Datasets),弹性分布式数据集,是对分布式数据集的一种抽象. RDD所具备5个主要特性: 一组分区列表 计算每一个数 ...