(二) 生成APK配置: createBuildxml_ByCoco 6
(四) 生成selector: searchSelect 8
(五) 生成列表功能模塊: createCode_ListView 9
(六) 更新Activity: refreshActicity 13
(七) 檢測項目並生成報告: createReport 14
(九) 生成正式版APK: createAPK_PRO 15
(十) 生成測試版APK: createAPK_DEV 16
COCOBuild的功能是項目構建,採用ant實現,.其核心文件爲Cocobuild.xml和Cocobuild_apk.xml. 所有任務均可單獨執行.
- Cocobuild.xml功能如下:
- Cocobuild_apk.xml功能如下:
使用方法:
- 在Eclipse中,右鍵點擊Cocobuild.xml或Cocobuild_apk.xml,選擇Run As
- 選擇第一個Ant build將會執行所有任務
- 選擇第二個Ant build可自己勾選要執行的任務.
下文的一到七功能位於Cocobuild.xml中.八到十二功能位於Cocobuild_apk.xml中.(要先執行Cocobuild.xml的createBuildxml_ByCoco任務.)
所有任務詳解
(一)統一開發環境: strucEclipse
- 作用
1. 配置Eclipse開發環境.
2. 此任務/target保證團隊代碼統一性,不同開發人員格式化後的代碼依然會保持一致,不會對提交CVS,SVN等造成影響. 對代碼質量也有一定的優化.
3.務必保證當前運行的eclipse的工作空間和當前target的操作目錄一致
- 功能細節
- 統一團隊JAVA代碼風格 縮進,換行,每行長度,XML樣式,變量排序,方法排序等
- 統一團隊清理規範 移除無用變量,移除無用方法移除無用import,移除無用的強轉
- 統一團隊註解規範 增加必要的註解@override,@deprecated,序列化
- 統一團隊快捷鍵 優化了合併多個Eclipse快捷鍵,對原本的快捷鍵使用無影響
- 代碼的優化 會自動對for循環,迭代器等代碼做優化
- 統一團隊註釋風格和內容 類註釋, 方法註釋,變量註釋未啓用
- 使用方法
1. 此任務/target運行完畢後,重啓Eclipse自動生效.
2. 在編輯JAVA類時,選擇菜單欄的Source,點擊Clean Up會出現COCOFrame_cleanup選項.直接點擊next或者finish即可完成格式化代碼,清空無用的變量,清空無用的方法,優化部分代碼的效果.
3. 爲類增加”文檔註釋/雙星號註釋”時,自動添加公司信息,版本信,作者等內容.
4. 可以在build.properties的name_company屬性修改公司名稱.
5. 在XML和JAVA文件中按Ctrl+Shift+F格式化效果將更加美觀.
- 部分功能截圖效果
所有開發人員在類前,增加”文檔註釋/雙星號註釋”時會自動增加以下內容.此處”XX有限公司”可以在build.properties的name_company屬性修改.
XML格式化後風格
(二)生成APK配置: createBuildxml_ByCoco
- 作用
1. 根據當前項目環境,生成buildapk.xml.
2. Cocobuild_apk.xml.打包APK依賴於buildapk.xml.
- 部分功能截圖效果
(三)標準目錄構建: createFolder
- 作用
1. 酌情使用,爲項目生成標準化目錄及標準化文件.如dimens.xml,drawable-xxhdpi,Menu Folder.
2. 使用ADT創建項目時,自動創建的文件夾及文件也許不能滿足常用的需求,需要在開發過程中手工創建一些標準目錄及文件. 這個任務可以解決此問題.
3. 對Android項目結構不瞭解,不清楚什麼時候該創建什麼樣的文件夾/文件.
4. 如果文件或文件夾已存在,不會再次生成或修改.
- 功能細節
生成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 英文
- 部分功能截圖效果
(四)生成selector: searchSelect
- 作用
- 所有Drawable文件夾中的以_f結尾的圖片,會自動生成對應的selector點擊文件.
- 如drawble中含有BtnLogin.png和BtnLogin_f.png,將會在drawable-nodpi下生成select_BtnLogin.xml
- 在UED製圖時遵循此標準,則開發人員可直接運行此任務來更新selector.
- 部分功能截圖效果
(五)生成列表功能模塊: createCode_ListView
- 作用
生成ListView樣式的功能模塊,包括Activity和佈局.
此功能需要四步操作.
1. 在項目中導入Cocoframe.jar
2. 定義一個Bean繼承自fay.frame.tools.Bean
3. 在build.properties的beanArray屬性添加Bean
4. 右鍵CocoBuild.xml-->createCode_ListView-->生成
刷新項目,在src/cocobuild中即可看到生成的類.res/layout中可看到生成的佈局文件.
- 功能細節
1. Bean必須繼承自fay.frame.tools.Bean
2. 只有在build.properties的beanArray屬性中註冊的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”都可直接顯示頭像. 其他更爲便捷的功能參考COCOFrame的API.
8. 對應一個Bean會生成的文件有:ListActivity, Adapter, AddActivity, EditActivity, ShowActivity及其依賴的佈局文件.
9. 生成的ListView具有搜索,數據本地緩存,下拉刷新,圖片緩存,圖片壓縮,網絡圖片,SD卡圖片,ListView添加Holder,ConvetView等功能.
10. 爲了方便查看生成效果,ListView默認使用的本地數據. 如果想使用網絡數據,把主Activity onRefresh()方法中的getDataFromDB()替換爲getDataFromServer(), 並把url替換爲接口地址即可.
- 實例/截圖說明
假如在項目中有用戶列表功能,用來展示用戶姓名,生日,年齡,頭像等信息,首次採用CocoBuild.xml生成詳細步驟如下:
1. 在項目中導入Cocoframe.jar
2. 創建用戶Bean位於com.example.buildtest.bean.BeanPerson並繼承自fay.frame.tools.Bean,代碼截圖如下:
3.在build.properties中beanArray=com.example.buildtest.bean.BeanPerson
4.選擇createCode_ListView任務,並執行
5.執行過程
6.執行完畢後,刷新項目,下圖紅圈內即爲生成的代碼
執行完畢後,刷新項目,下圖即爲生成的佈局
8.右鍵點擊項目,運行,真機效果:
(六)更新Activity: refreshActicity
- 作用
更新Activty的相關內容.包括在1.Androidmanifest.xml中註冊 2.創建layout 3.更新佈局中的控件至Activity中.
- 功能細節
- 把未在AndroidManifest.xml中註冊的Activity註冊.
- 如果Activity沒有佈局文件,則生成.
舉例:存在一個LoginActivity,如果在layout中不存在activity_login.xml則會自動生成此文件. (即LoginActivity對應的佈局文件必須爲小寫的activity_login.xml. 否則會生成.具體命名規則請參考下文COCO-Android命名規範)
3. 如果Activity對應的佈局文件中,有ID未在Activity中註冊,則自動註冊.
舉例:存在一個LoginActivity和其佈局文件activity_login.xml. 在xml中存在一個ID爲btn_login的Button. 如果此Button未在LoginActivity中初始化,執行本任務後,會在LoginActivity中自動添加以下代碼:
(七)檢測項目並生成報告: createReport
- 生成項目檢測報告,此功能基於Android的lint功能.
- 執行此任務後,將在COCOBuild目錄下生成”項目檢測報告”文件夾.
- 項目報告中關鍵信息已翻譯爲簡體中文.(因爲牆的問題,翻譯功能暫時關閉)
- 檢測報告截圖
(八)生成所有APK: createAPK
- 任務準備
1. 使用此功能前,請先運行Cocobuild.xml的createBuildxml_ByCoco任務.
2. 把user目錄的key替換爲你的key.
3. 修改key.properties的key.alias和password屬性跟你的key對應.
- 功能細節
- 此任務調用createAPK_PRO和createAPK_DEV,生成正式版和測試版APK.
- 生成的APK在user目錄下
- APK已簽名
- 相比IDE生成的APK,體積更小,性能更好.(編譯期對class文件的優化)
(九)生成正式版APK: createAPK_PRO
(十)生成測試版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 |
com.example.TestBean 多個值用;隔開. TestBean必須繼承自Bean |
|
name_company |
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.xml第375行插入: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. 如果ant的java命令報class version錯誤,是因爲你的ant和Android的jre版本不一致.設置項目的java compiler和ant一致,clean項目,重新運行即可.
功能持續更新中....bug持續修復中....