项目总结:华南师范大学校园开发教育android客户端总结

    忽略之前小打小闹,这个项目算是我的第一个项目--SCNU的网络公选课的android版本的客户端。项目是从5月中旬开始的,中间经历了几个星期的复习考试时间,到现在可以说是完工了吧(或许还有写细节要修改)。这个项目带给我蛮多的经验,包括android开发及其它,所以有必要写写总结。

    项目的故事版是另外一个负责iphone版本的同学设计的,所以界面就有仿照iphone的样子,其实正如kinfey(boss)说的,一个项目的不同平台还是要有自己平台的特性,所以下个项目不同平台就会有不同的故事版。项目的具体功能是实现学生、教师、管理员都可以通过移动app实现相关操作,可以看视频、看论坛、发帖、回复、看作业、看统计...相关总结如下:

1、故事版

    所谓故事版就是项目的整个设计图,具体包括整个界面初型。其实故事版是kinfey保留的习惯,我觉得这对于整个项目的实施时有好处的。有了故事版,就清楚了整个项目的功能逻辑,这样不会是在开发中混乱功能需求;其次,故事版也利于整个项目技术难点的掌握。

2、一程序猿一美工

   这也是kinfey的工作习惯。这种模式对于项目不是很大的项目还是不错的,因为他给程序猿够大的自由度,能更好的把握全局。所以这个项目的android及iphone客户端就三个人,两个程序猿,一个美工。

3、全局观

    这次项目因为要做学生、教师、管理员三个角色都可以使用的客户端。因为三者界面是相似的,所以一开始就像先实现学生端的,但是在后来想加例外两个的时候,但是很多命名都是命为学生的,不符合命名规范,所以要取改,这是很烦人的活,因为很容易出错。

4、android的多分辨率问题

   这也是项目中比较棘手的问题,一开始因为没想好怎么解决,所以导致美工做了无谓的工作。其实一套图是可以解决的:只叫美工设计一套高分辨率的图,然后所有的图都要按比例缩放。网院的彭老师的经验:保持你的图在父容器中的相对位置不变。其实就只有一句话,保持比例不变。只有这样,图片才不会变形。(相关可参照android:屏幕自适应)

5、关于tab内的多视图跳转

   这个也困扰了我近2天,问题是这样的:android的tab在跳转时下面的tab bar 会消失,其实是转到了其它的activity,离开了tab,没有iphone的tab的跳转的样子,最后的解决是使用Tabhost+Fragment ,Fragment是3.0之后的新特性,其原始目的是实现分页的效果,如同iphone的splitView,不过可以利用它来管理Fragment。实现一开始提到的效果,具体可以参照:Android Tabhost with FragmentActivity
6、gson

   这次解析json的是用到gson库。还蛮好用的,注意解析时的Model只要所需的数据就行,不用全部,一开始以为要全部都设的,一大堆get set.....

7、MVP

   MVC大家一定不会陌生,model view controller。而MVP的模式则是MVC的改进,view与model的交互要通过Presenter。这种模式也是与kinfey之间的“约定”。使用此模式,这个程序是层次分明的,开发感觉有点像iphone的一个View对应一个Controller的感觉。结构分明了,各种事情都会好办很多,发现问题也快很多。相关可参照

  http://jamespeckham.com/blog/10-11-21/MVP_on_Android.aspx 里面会有提到一个示例模板,照做就行,其优雅还是在应用到项目中才会体会到。

8、异步

   iphone中的异步使用gcd可以实现。原以为android的要自己管理线程类,所以觉得很麻烦。后来发觉原来没有这么没“人道”,哈哈,android的异步是使用AsyncTask来实现的。异步是后来才加的,操作起来是比较简单的。这有部分是MVP模式的功劳。

9、activity栈及程序退出

    程序要注意返回Button和物理返回键的逻辑统一。这就要对activity栈有相关的理解。同样 程序的退出也于此有关,现在实现的是通过全局变量的方式去解决,但总感觉此方法不是很优,需找其它解决方法吧。

 

程序以为有签保密协议,是不能贴上来的,不过可以贴贴几张图......美工老师蛮给力的哦!

                 

       

 

(截图是在模拟器截的,所以tab显示不太正常,本来是有字显示的)

总结至此,继续加油,MYBKN!

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/mybkn/archive/2012/07/14/2590743.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/379501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux系统编程---守护进程

1 守护进程的概述 Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大…

邮箱服务器

一.邮箱服务器的基本概念 邮件的客户端:可以只安装在电脑上(C/S)的也可以是网页形式(B/S)的 邮件服务器:起到邮件的接受与推送的作用 邮件发送的协议: 协议:就是数据传输…

类加载器

一、类加载器 1,什么是类加载器? 类加载器就是用来加载字节码文件 2,类加载器的种类有哪些? 1)BootStrap:引导类加载器:加载都是最基础的文件 2)ExtClassLoader:扩展类加…

算法---链表

文章目录反转链表合并两个有序链表删除重复元素反转链表 反转链表包括两种,反转全部元素或者反转部分元素。在这里,我们约定:数据元素类型是struct LinkNode,要反转链表的第一个节点是head,head的前面一个节点是pre&a…

SSM

二、环境设置(MyEclipse) 1,字体设置 window–>Preference->General->Appearance->Colors and Fonts->Basic Text->Font 2,workspace字符集设置 window–>Preference->General->Appearance->W…

设计模式--Strategy 策略模式

所谓策略模式(Strategy Pattern),就是将策略 (算法) 封装为一个对象,易于相互替换,如同 USB 设备一样可即插即用;如果将策略、具体的算法和行为,编码在某个类或客户程序内部,将导至事后的修改和扩展不易。 …

打开eclipse出现Failed to load the JNI shared library “D:\java\jdk\bin\...\jre\bin\server\jvm.dll”如何解决?

eclipse打开的时候出现Failed to load the JNI shared library “D:\java\jdk\bin…\jre\bin\server\jvm.dll”如何解决?? 如图所示: 即代表你的jdk与eclipse的位数不一样!!! 你可以查看一下eclipse和jd…

圆形坠落模拟算法设计

目标:实现一个算法,模拟在一个封闭二维区域,圆形小球朝给定方向坠落的过程,实现二维区域的紧密填充。 像下面这样: 难点,及其简单解决: 1.如何把粒子移动尽可能远? 图中的粒子i&…

Maven详细教学

一、Maven简介 maven:是apache下的一个开源项目,是纯java开发,并且只是用来管理java项目的 依赖管理:就是对jar包的统一管理 可以节省空间 项目一键构建:mvn tomcat:run该代码可以将一个完整的项目运行起来&#xff0…

网站后台中对html标签的处理

最近做一个CMS&#xff0c;后台中需要使用在线编辑器对新闻进行编辑&#xff0c;然后发表。我用的在线编辑器是CKEditorCKFinder。也许是我为了让CKEditor更本地化吧&#xff0c;改了很多。后来发现在CKEditor中对文字设置字体、颜色、字号大小时文字的<span>标签会出现N…

<各国地图轮廓app>技术支持

如在app使用过程中遇到任何问题&#xff0c;请与开发者联系caohechunhotmail.com

ffplay SDL_OpenAudio (2 channels, 44100 Hz): WASAPI can‘t initialize audio client“

windows下&#xff1a; ffplay 提示"SDL_OpenAudio (2 channels, 44100 Hz): WASAPI can’t initialize audio client" 添加环境变量&#xff1a;SDL_AUDIODRIVERdirectsound

(扩展)欧几里德快速幂

GCD模板 __int64 gcd(__int64 a,__int64 b) {return b0? a:gcd(b,a%b); } 欧几里德算法又称辗转相除法&#xff0c;用于计算两个整数a,b的最大公约数。其计算原理依赖于下面的定理&#xff1a; gcd函数就是用来求(a,b)的最大公约数的。 gcd函数的基本性质&#xff1a; gcd(a,…

Silverlight + WCF异步调用 例子

看大家好像对我的NParsing框架不是很感兴趣&#xff08;写NParsing帖没人顶我&#xff09;&#xff0c;那就给大家来点“甜品”&#xff0c;换换口谓。来说说Silverlight方面的东西。 在Silverlight中数据通信只能用异步。有人会觉得写起来很麻烦&#xff0c;其实不然。也有很简…

小议SqlMapConfig.xml配置文件

①、mybatis-3-config.dtd 主要用于mybatis的核心配文件sqlMapConfig.xml的约束 sqlMapConfig.xml代码如下&#xff1a; <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN&q…

ffmepg 命令提取音视频数据

原文件&#xff1a; 1&#xff1a; 原音频数据提取&#xff08;保留还是mp4的封装格式的&#xff09;&#xff1a; ffmpeg -i test_1920x1080.mp4 -acodec copy -vn audio.mp4 -vn 就是没有视频&#xff0c; -acodec copy 音频拷贝不进行任何转码 原视频数据提取&#xff0…

【7】jQuery学习——入门jQuery选择器之过滤选择器-可见性过滤选择器

这篇什么都不说&#xff0c;看标题就知道了&#xff0c;很简单&#xff0c;就2个选择器&#xff0c;嘿嘿 选择器描述返回$("Element:hidden")选取所有不可见的元素集合元素$("Element:visible")选取所有可见元素集合元素这篇很简单吧&#xff0c;就2个&…

Mybatis中的核心配置文件SqlMapConfig.xml详细介绍

一、properties&#xff08;属性&#xff09; 可以引用java属性文件中的配置信息如下 jdbc.properties代码如下&#xff1a; jdbc.drivercom.mysql.jdbc.Driver jdbc.urljdbc:mysql://localhost:3306/mybatis?characterEncodingutf-8 jdbc.usernameroot jdbc.passwordbeyond…

用Kotlin开发您的第一个应用程序| Android与Kotlin

In the previous article, we learned how to setup Kotlin in the android studio? Now moving to journey ahead we are going to develop our first app with Kotlin. It is the basic app, but it will let you know the structure of the program. 在上一篇文章中&#x…

(只需挨个复制粘贴命令即可部署)在Centos7下搭建文件服务器(VSFTPD)

观看北京尚学堂-百战程序员笔记一、VSFTPD简介 Linux的组件&#xff08;一款软件&#xff09;&#xff0c;安装到Linux后可以通过java代码&#xff08;FtpClient&#xff09;实现文件的上传。基于FTP协议。 由于VSFTPD是基于FTP协议&#xff0c;客户端浏览器是需要通过http协议…