首页 > 代码库 > COCOBuild

COCOBuild

(一) 统一开发环境: strucEclipse 4

(二) 生成APK配置: createBuildxml_ByCoco 6

(三) 标准目录构建: createFolder 6

(四) 生成selector: searchSelect 8

(五) 生成列表功能模块: createCode_ListView 9

(六) 更新Activity: refreshActicity 13

(七) 检测项目并生成报告: createReport 14

(八) 生成所有APK: createAPK 15

(九) 生成正式版APK: createAPK_PRO 15

(十) 生成测试版APK: createAPK_DEV 16

(十一) 切换成测试代码: code2DEV 16

(十二) 切换成正式代码: code2PRO 16

(十三) 下载和配置build.properties 16

(十四) 命名规范 17

(十五) 错误列表和解决方法 17


COCOBuild的功能是项目构建,采用ant实现,.其核心文件为Cocobuild.xmlCocobuild_apk.xml. 所有任务均可单独执行.

n Cocobuild.xml功能如下:

 

n Cocobuild_apk.xml功能如下:

 

 

使用方法:

n 在Eclipse,右键点击Cocobuild.xmlCocobuild_apk.xml,选择Run As

n 选择第一个Ant build将会执行所有任务

n 选择第二个Ant build可自己勾选要执行的任务

下文的一到七功能位于Cocobuild.xml.八到十二功能位于Cocobuild_apk.xml.(要先执行Cocobuild.xmlcreateBuildxml_ByCoco任务.)

 

所有任务详解

(一)统一开发环境: strucEclipse

n 作用

1. 配置Eclipse开发环境.

2. 此任务/target保证团队代码统一性,不同开发人员格式化后的代码依然会保持一致,不会对提交CVS,SVN等造成影响对代码质量也有一定的优化.

n 功能细节

ü 统一团队JAVA代码风格 缩进,换行,每行长度,XML样式,变量排序,方法排序等

ü 统一团队清理规范 移除无用变量,移除无用方法移除无用import,移除无用的强转

ü 统一团队注解规范 增加必要的注解@override,@deprecated,序列化

ü 统一团队快捷键 优化了合并多个Eclipse快捷键,对原本的快捷键使用无影响

ü 代码的优化 会自动对for循环,迭代器等代码做优化

ü 统一团队注释风格和内容 类注释方法注释,变量注释未启用

n 使用方法

1. 此任务/target运行完毕后,重启Eclipse自动生效.

2. 在编辑JAVA类时,选择菜单栏的Source,点击Clean Up会出现COCOFrame_cleanup选项.直接点击next或者finish即可完成格式化代码,清空无用的变量,清空无用的方法,优化部分代码的效果.

3. 为类增加”文档注释/双星号注释”时,自动添加公司信息,版本信,作者等内容.

4. 可以在build.propertiesname_company属性修改公司名称.

5. 在XMLJAVA文件中按Ctrl+Shift+F格式化效果将更加美观.

n 部分功能截图效果

所有开发人员在类前,增加”文档注释/双星号注释”时会自动增加以下内容.此处”XX有限公司”可以在build.propertiesname_company属性修改.

 

 

XML格式化后风格

 

 

 

(二)生成APK配置: createBuildxml_ByCoco

n 作用

1. 根据当前项目环境,生成buildapk.xml.

2. Cocobuild_apk.xml.打包APK依赖于buildapk.xml.

n 部分功能截图效果

 

(三)标准目录构建: createFolder

n 作用

1. 酌情使用,为项目生成标准化目录及标准化文件.dimens.xml,drawable-xxhdpi,Menu Folder.

2. 使用ADT创建项目时,自动创建的文件夹及文件也许不能满足常用的需求,需要在开发过程中手工创建一些标准目录及文件这个任务可以解决此问题.

3. 对Android项目结构不了解,不清楚什么时候该创建什么样的文件夹/文件.

4. 如果文件或文件夹已存在,不会再次生成或修改.

n 功能细节

ü 生成menu

ü 生成menu.xml 菜单文件,菜单声明.

ü 生成styles.xml 标准化styles样例,统一样式文件

ü 生成dimens.xml 标准化dimens样例,统一尺寸文件

ü 生成arrays.xml 标准化arrays样例,数组声明

ü 生成ids.xml 标准化ids样例,固定资源ID,做公用组件时常用.

ü 生成public.xml 标准化public样例,固定资源声明,做公用组件时常用,

ü 生成drawable-ldpi 原则上120dp QVGA 240x320

ü 生成drawable-mdpi 原则上160dp HVGA 320x480

ü 生成drawable-hdpi 原则上240dp WVGA FWVGA 480x800 480x854

ü 生成drawable-xhdpi 原则上320dp

ü 生成drawable-xxhdpi 原则上480dp

ü 生成drawable-nodpi 无分辨率要求的.9, xml定义的drawable资源.

ü 生成tvdip 适合Android智能电视的关闭状态

ü 生成values

ü 生成values-v11 android 3.0 +

ü 生成values-v14 android 4.0 +

ü 生成values-zh-rCN 中文(中国)

ü 生成values-zh-rTW 中文(台湾)

ü 生成values-en 英文

 

n 部分功能截图效果

 

 

(四)生成selector: searchSelect

n 作用

ü 所有Drawable文件夹中的以_f结尾的图片,会自动生成对应的selector点击文件.

ü 如drawble中含有BtnLogin.pngBtnLogin_f.png,将会在drawable-nodpi下生成select_BtnLogin.xml

ü 在UED制图时遵循此标准,则开发人员可直接运行此任务来更新selector.

n 部分功能截图效果

 

 

(五)生成列表功能模块: createCode_ListView

n 作用

生成ListView样式的功能模块,包括Activity和布局.

此功能需要四步操作.

1. 在项目中导入Cocoframe.jar

2. 定义一个Bean继承自fay.frame.tools.Bean

3. 在build.propertiesbeanArray属性添加Bean

4. 右键CocoBuild.xml-->createCode_ListView-->生成

刷新项目,src/cocobuild中即可看到生成的类.res/layout中可看到生成的布局文件.

n 功能细节

1. Bean必须继承自fay.frame.tools.Bean

2. 只有在build.propertiesbeanArray属性中注册的Bean才会生成.

3. 支持多个Bean一起注册/生成.多个之间用;隔开.举例如下:beanArray=com.test.bean.UserBean;com.test.bean.PhoneBean;

4. Bean的属性支持注解定义类型iconHead属性为用户头像则定义如下

5. 

6. 默认为”TextView”,注解目前支持ImageView这一种最常用的类型.其他类型陆续添加中.

7. 可以直接点”编辑”输入值.”http:\\www.test.com\head.png”或者本地图片”sdcard/myfolder/head.png”都可直接显示头像其他更为便捷的功能参考COCOFrameAPI.

8. 对应一个Bean会生成的文件有:ListActivity, Adapter, AddActivity, EditActivity, ShowActivity及其依赖的布局文件.

9. 生成的ListView具有搜索,数据本地缓存,下拉刷新,图片缓存,图片压缩,网络图片,SD卡图片,ListView添加Holder,ConvetView等功能.

10. 为了方便查看生成效果,ListView默认使用的本地数据如果想使用网络数据,把主Activity  onRefresh()方法中的getDataFromDB()替换为getDataFromServer(), 并把url替换为接口地址即可.

n 实例/截图说明

假如在项目中有用户列表功能,用来展示用户姓名,生日,年龄,头像等信息,首次采用CocoBuild.xml生成详细步骤如下:

1. 在项目中导入Cocoframe.jar

2. 创建用户Bean位于com.example.buildtest.bean.BeanPerson并继承自fay.frame.tools.Bean,代码截图如下:

 

3.在build.propertiesbeanArray=com.example.buildtest.bean.BeanPerson

4.选择createCode_ListView任务,并执行

 

 

 

 

5.执行过程

 

6.执行完毕后,刷新项目,下图红圈内即为生成的代码

 

 

执行完毕后,刷新项目,下图即为生成的布局

 

8.右键点击项目,运行,真机效果:

 

 


(六)更新Activity: refreshActicity

n 作用

更新Activty的相关内容.包括在1.Androidmanifest.xml中注册 2.创建layout  3.更新布局中的控件至Activity.

n 功能细节

ü 把未在AndroidManifest.xml中注册的Activity注册.

ü 如果Activity没有布局文件,则生成

举例:存在一个LoginActivity,如果在layout中不存在activity_login.xml则会自动生成此文件. (LoginActivity对应的布局文件必须为小写的activity_login.xml. 否则会生成.具体命名规则请参考下文COCO-Android命名规范)

ü 如果Activity对应的布局文件中,ID未在Activity中注册,则自动注册

举例:存在一个LoginActivity和其布局文件activity_login.xml. xml中存在一个IDbtn_loginButton. 如果此Button未在LoginActivity中初始化,执行本任务后,会在LoginActivity中自动添加以下代码:

 

 

(七)检测项目并生成报告: createReport

ü 生成项目检测报告,此功能基于Androidlint功能.

ü 执行此任务后,将在COCOBuild目录下生成”项目检测报告”文件夹.

ü 项目报告中关键信息已翻译为简体中文.(因为墙的问题,翻译功能暂时关闭)

 

 

检测报告截图


(八)生成所有APK: createAPK

n 任务准备

1. 使用此功能前,请先运行Cocobuild.xmlcreateBuildxml_ByCoco任务.

2. 把user目录的key替换为你的key.

3. 修改key.propertieskey.aliaspassword属性跟你的key对应.

n 功能细节

ü 此任务调用createAPK_PRO和createAPK_DEV,生成正式版和测试版APK.

ü 生成的APKuser目录下

ü APK已签名

ü 相比IDE生成的APK,体积更小,性能更好.(编译期对class文件的优化)

 

(九)生成正式版APK: createAPK_PRO

生成正式版APK.

(十)生成测试版APK: createAPK_DEV

生成测试版APK

(十一)切换成测试代码: code2DEV

在代码中,可使用”#DEV”,”XDEV”来标注测试代码使用”#PRO” “XPRO”来标注正式代码.

可在build.property中添加自定义标签(此功能暂时关闭)

此任务执行后,切换代码为测试版本,如下图所示:

  

(十二)切换成正式代码: code2PRO

切换代码为正式版本

(十三)下载和配置build.properties

1. 从http://blog.csdn.net/landehuxi下载COCOBuild.rar,并解压到项目根目录.

2. 配置好build.properties即可使用.

属性

作用于

beanArray

功能五生成列表功能模块:createCode_ListView

com.example.TestBean

多个值用;隔开. TestBean必须继承自Bean

name_company

功能一统一开发环境:strucEclipse

XXX有限责任公司

path_lib

所有功能

项目的lib目录

sdk.dir

所有功能

Android SDK路径.   D:\android\sdk

 

(十四)命名规范

如果不遵循此规范,某些任务会无法执行.

1. 所有Activity命名样式为TestActivity. Activity.结尾.

2. TestActivity对应的布局名称为activity_test.xml

3. test.png如果有点击效果,则其点击效果图命名为test_f.png

4. 布局中id命名对应关系为

TextView

txt_test

Button

btn_test

ImageView

img_test

ListView

list_test

所有Layout

layout_test

(十五) 错误列表和解决方法

1. 错误: JDK version latest或者类似JDK版本的问题

解决: 请在Cocobuild.xml375行插入:executable="你的路径/jdk1.7.0/bin/javac.exe"

 

2. 错误: Execute failed: java.io.IOException: Cannot run program "...zipalign.exe"

解决:android.tools.dir的值设置为包含zipalign.exe的文件夹

 

3. 直接用命令行运行build文件,则需额外配置Cocobuild.xml>refreshActicity_mainfest>resourcecontains>resource属性为

"你的项目地址//AndroidManifest.xml"

 

4. 如果antjava命令报class version错误,是因为你的antAndroidjre版本不一致.设置项目的java compilerant一致,clean项目,重新运行即可.


下载地址:http://download.csdn.net/detail/landehuxi/7673363