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. MUI 图标筛选切换(父页面传值子页面)

      1 父页面: index.html <li class="tab_layout"> <a href="javascript:;" clas ...

  2. java基础----->TCP和UDP套接字编程

    这里简单的总结一下TCP和UDP编程的写法,另外涉及到HttpUrlConnection的用法 . TCP套接字 一.项目的流程如下说明: .客户输入一行字符,通过其套接字发送到服务器. .服务器从其 ...

  3. MQTT-SN协议乱翻之小结篇

    前言 这里简单做一些小结和对比,针对前面的协议翻译部分,一阶段的学习完结. MQTT-SN VS MQTT MQTT-SN基于MQTT原有语义,但做了很多的调整.比如: 一个CONNECT消息被拆分为 ...

  4. RxJava && Agera 从源码简要分析基本调用流程(1)

    版权声明:本文由晋中望原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/123 来源:腾云阁 https://www.qclo ...

  5. min-height的兼容性问题

    1.经测试 IE+和其它主流浏览器均支持min-height属性,已经满足目前的需求. 2.当height和min-height同时设置时,浏览器自动选择数值更大的一个(测试IE7+及其他主流浏览器) ...

  6. 【Android 7.1.1】 锁屏界面点击“空白处”响应事件

    frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/stack/NotificationStackScrollLa ...

  7. javascript关于链接的一些用法

    (1)javascript:openURL() http://www.kpdown.com/search?name=Ben Nadel 此URL后边有一个name参数,只不过参数的值竟然带了空格,这样 ...

  8. 精简的webservice

    看了网上好多关于webservice的例子,基本上对初学者来说都是模棱两可云里雾里,现在,我将网上关于webservice的讲解提炼出来,通过一个最简单使用并且方便的例子,告诉大家什么是webserv ...

  9. Oracle下Delete语句

    Delete语句 基本语法: delete from 表名 where 条件 注意事项: 1,如果不使用where子句,将表中所有数据全部删除 delete from test; 2,如果要删除某列的 ...

  10. 多线程下载图片,滑动tableView崩溃--资源抢夺问题

    最近练习使用NSoperation模拟SDWebImage下载图片,发生了崩溃的问题,还专门写博客记录这件事情: http://www.cnblogs.com/tufei7/p/7074030.htm ...