树懒_移动开学笔记_day29&day30_代码管理与实战

来源:互联网 发布:水冷 风冷 知乎 编辑:程序博客网 时间:2024/06/05 11:49

day29

心情日记综合练习

  1. 网络访问 服务端
    验证用户,注册用户
    mysql :数据库名:androidDB ;表名: t_user(id,name,pwd)

  2. SharedPrerences
    保存 账号和密码信息

  3. Sqlite 保存 日记信息
    • t_diary(id,title,content)
  4. ListView 、自定义适配器
  5. Activity 生命周期方法

    6.片段,ActionBar

片段管理器
onCreateView
onActivityCreated
onResume

day30

代码管理与实战

多人开发项目,没有版本控制遇到的问题
备份多个版本,费空间,费时间
难于恢复至以前正确版本
容易引发BUG
解决代码冲突困难
代码管理混乱
难于追溯问题代码的修改人和修改时间
无法进行权限控制
项目版本发布困难

SVN
SVN是Subversion的简称,是一个开放源代码的版本控制系统,属于apache旗下的开源软件,分为客户端和服务端 (SubVersion)

1.能解决的问题
统一新版本,版本的备份
跟踪修改情况,对修改情况作注释
方便进行检入,检出等
协同开发,版本控制

2.SVN介绍
服务端(visualSvn www.visualsvn.com) ,标准版和企业版 (可以跟踪哪个ip提交的数据,它的mac地址是什么等)
1.安装svn服务端
2.创建版本仓库
3.对该仓库添加用户、设置权限

 客户端 :TortoiseSVN是Subversion的一个免费开源客户端, 它是Subversion 的 Windows 扩展。它使你避免接触 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里右键操作就可以了。  1. 安装       32位和64位的版本       当在文件夹中单击右键:出现(svn checkOut 、TortoiseSvn  )则表示安装成功  2. 命令      1. checkOut :检出 ,从服务端仓库中检出工作副本     2. add : 添加 ,把文件添加到svn的版本控制     3. commit :提交 ,把工作副本中的内容提交到服务器的仓库中     4. update :更新版本,使工作副本的内容与服务端的仓库一致     5. delete :删除文件,该文件从服务的仓库中移除     6. export :导出 ,导出的文件,不受 版本控制      7. import: 导入或者引入  3. 图标  4. 解决冲突     edit conflicts

3.svn标准目录结构
trunk :主干 ,存放开发的主线
tags :标记 ,版本的里程碑,成熟或者完善的版本
branches:分支,存放支线版本

4.Eclipse添加SVN客户端插件
实现步骤:
1. 在eclispe目录中创建一个myPlugin\svn 文件夹,并且把eclispe svn客户端插件解压的
plugins 和features 两个文件夹拷贝到 myPlugin\svn目录中
2. 在 eclipse\dropin 目录下创建一个文本文件 svn.link ,指定svn插件的存放位置 比如
path=E:\Android\adt-bundle-x86-32\eclipse\myplugin\svn
3. 重启eclipse

  1. SVN使用规范
    1.先更新,再提交
    SVN更新的原则是要随时更新,随时提交。当完成了一个小功能,能够通过编译并且自己测试之后,谨慎地提交。 如果在修改的期间别人也更改了svn的对应文件,那么commit就可能会失败。如果别人和自己更改的是同一个文件,那么update时会自动进行合并,如果修改的是同一行,那么合并时会产生冲突,这种情况就需要同之前的开发人员联系,两个人一起协商解决冲突,解决冲突之后,需要两人一起测试保证解决冲突之后,程序不会影响其他功能。 在更新时注意所更新文件的列表,如果提交过程中产生了更新,则也是需要重新编译并且完成自己的一些必要测试,再进行提交。这样既能了解别人修改了哪些文件,同时也能避免SVN合并错误导致代码有错。

    2.多提交
    每次提交的间歇尽可能地短,以几个小时的开发工作为宜。例如在更改UI界面的时候,可以每完成一个UI界面的修改或者设计,就提交一次。在开发功能模块的时候,可以每完成一个小细节功能的测试,就提交一次,在修改bug的时候,每修改掉一个bug并且确认修改了这个bug,也就提交一次。我们提倡多提交,也就能多为代码添加上保险。

    3.不要提交不能通过编译的代码
    代码在提交之前,首先要确认自己能够在本地编译。如果在代码中使用了第三方类库,要考虑到项目组成员中有些成员可能没有安装相应的第三方类库。项目经理在准备项目工作区域的时候,需要考虑到这样的情况,确保开发小组成员在签出代码之后能够在统一的环境中进行编译。

    4.每次提交必须书写明晰的标注
    在一个项目组中使用SVN,如果提交空的标注或者不确切的标注将会让项目组中其他的成员感到很无奈,项目经理无法很清晰的掌握工作进度,无法清晰的把握此次提交的概要信息。在发现错误后也无法准确的定位引起错误的文件。所以,在提交工作时,要填写明晰的标注,能够概要的描述所提交文件的信息,让项目组其他成员在看到标注后不用详细看代码就能了解你所做的修改。

    5.提交时注意不要提交本地自动生成的文件
    例如eclipse中的.classpath文件,Windows生成的缩略图Thumbs.db,项目编译生成的临时文件.obj, .class等等。如果项目中没有进行这方面的配置来强行禁止提交这样的文件,请自觉不要提交这样的文件。提交了这样的文件后,别人在更新后就可能与本地的环境冲突从而影响大家的工作。

    6.不要提交自己不明白的代码
    代码在提交入SVN之后,你的代码将被项目成员所分享。如果提交了你不明白的代码,你看不懂,别人也看不懂,如果在以后出现了问题将会成为项目质量的隐患。因此在引入任何第三方代码之前,确保你对这个代码有一个很清晰的了解。

    7.慎用锁定功能
    在项目中要慎用锁定的功能,在你锁定了一个文件之后别人就无法继续修改提交该文件,虽然可以减少冲突的发生率,但是可能会影响项目组中其他人员的工作。平时只有在编辑那些无法合并的文件(例如图片文件,flash文件等)时,才适当的采用锁定操作。

  2. 用SVN管理Android项目需要过滤掉的文件
    gen 和 bin

    7.SVN标准目录结构

    Trunk(树干)
    这是SVN目录的主分支,表示日常开发中的项目,任何时候Trunk里包含的都是最新的开发代码。 这里的代码将会工作到你的下一个主要发布版本。Trunk应该只被用来开发将会成为你的下一个重要版本的代码。

    Branches(分支)
    Experimental branches
    有时你想将某个新技术引进项目。这很好,但是你当然不想赌上你的整个项目。
    Bug fix branches
    分支也可以用于处理trunk或release branches里发现的严重的Bug。

    Tags(标签)
    一般情况下,tag,是用来做一个milestone的,不管是不是release,都是一个可用的版本,成熟或者完善的版本 ,Tags,一般是只读的。

0 0