編輯:關於Android編程
團隊項目開發前的統一三要素:統一需求/開發文檔,統一代碼規范,統一環境(編譯/測試/發布)。
一個項目團隊,要想有高效的產出,必須在團隊協作上下好功夫,必須在項目開發統一進度上做好協調。只有在高效的協同環境下,才能有優質的產出。這是我多年的經驗之談。也是配合過多個團隊之後的深刻感悟。
每一個程序員都是有獨立開發思維模式,都有自己的編碼行為和操作習慣。所以,在一個團隊中,怎麼做到更高效的協同,不僅僅是每個開發者自身的協同配合能力,更重要的是項目管理者,怎樣做到統一要求和統一實行。
舉個很簡單的例子。以前在一個小團隊裡,每次進行代碼更新的時候,都是有一大堆更新。最後發現很多不是代碼功能的個性,而只是大家的code style不一樣。每次merge代碼都要diff查看修改的地方,這樣很影響效率。而且如果你只是做為一個普通的開發者,要求其它人和你用統一style,別人未必接受。這時的項目管理者,才是最需要去統一規范的。保持規范統一,才是高效協作產出的前提。
Android項目開發需要統一哪些規范呢?
在些列出一些常用規范,和容易出問題的地方,方便自己查找,也方便和更多的朋友交流!
一、編碼方式統一:UTF-8。一般項目都用utf-8。有其它編碼的,可自行要求修改。
在項目代碼中右鍵,就能出現如下:
或者去個性配置文件:
二、代碼樣式code style:比如,tab縮進4個空格,或者 tab size等。
1. 自定義的編碼格式xml 文件。沒有的話,可以下載
2. 把xml文件復制到 C:/Users/YourUserName/.AndroidStudio/config/codestyles 目錄下,如果沒有codestyles目錄可以自己新建一個。 (目前還不支持導入)
3. 重啟android studio
4. android studio 中 Setting-> EditZ喎?/kf/ware/vc/" target="_blank" class="keylink">vci0mZ3Q7IENvZGUgU3R5bGUtJmd0OyBKQVZBLSZndDsgU2NoZW1lINGh1PHX1Lao0uW1xLHgwuu48cq9zsS8/qGjPGJyIC8+DQq+38zlyOfPws28o7o8YnIgLz4NCjxpbWcgYWx0PQ=="樣式" src="/uploadfile/Collfiles/20160329/20160329134246201.png" title="\" />
保持代碼格式的一致性,對項目的協同開發很有必要。優秀的代碼習慣是,提交代碼前格式化代碼,讓代碼統一規則上傳,保證代碼的整潔。所以,在團隊中必須支持規范代碼。提交前所有修改的類都必須ctrl+f(規范代碼),然後再提前。良好的編碼習慣,能讓代碼變得更優雅漂亮。
Java代碼一般使用駝峰式規則,用名詞或名詞詞組命名,每個單詞的首字母大寫。常用類的命名:
activity類,命名以Activity為後綴,如:LoginActivity fragment類,命名以Fragment為後綴,如:ShareDialogFragment service類,命名以Service為後綴,如:DownloadService adapter類,命名以Adapter為後綴,如:CouponListAdapter 工具類,命名以Util為後綴,如:EncryptUtil 模型類,命名以BO為後綴,如:CouponBO 接口實現類,命名以Impl為後綴,如:ApiImpl
初始化方法,命名以init開頭,例:initView 按鈕點擊方法,命名以to開頭,例:toLogin 設置方法,命名以set開頭,例:setData 具有返回值的獲取方法,命名以get開頭,例:getData 通過異步加載數據的方法,命名以load開頭,例:loadData 布爾型的判斷方法,命名以is或has,或具有邏輯意義的單詞如equals,例:isEmpty
控件命名,一般都有各自習慣。但為了保證代碼的整潔,盡量保持統一風格。
全部為大寫單詞,單詞之間用下劃線分開。
public final static int PAGE_SIZE = 20;
{范圍描述+}意義描述+類型描述的組合,用駝峰式,首字母小
private TextView headerTitleTxt; // 標題欄的標題
private Button loginBtn; // 登錄按鈕
控件縮寫{范圍}意義,范圍可選,只在有明確定義的范圍內才需要加上。
組件類型{范圍}功能,范圍可選,只在有明確定義的范圍內才需要加上。
activity_{范圍_}功能,為Activity的命名格式
fragment_{范圍_}功能,為Fragment的命名格式
dialog_{范圍_}功能,為Dialog的命名格式
item_list_{范圍_}功能,為ListView的item命名格式
item_grid_{范圍_}功能,為GridView的item命名格式
header_list_{范圍_}功能,為ListView的HeaderView命名格式
footer_list_{范圍_}功能,為ListView的FooterView命名格式
類型{范圍}功能,范圍可選。
以下為幾種常用的命名:
頁面標題,命名格式為:title_頁面
按鈕文字,命名格式為:btn_按鈕事件
標簽文字,命名格式為:label_標簽文字
選項卡文字,命名格式為:tab_選項卡文字
消息框文字,命名格式為:toast_消息
編輯框的提示文字,命名格式為:hint_提示信息
圖片的描述文字,命名格式為:desc_圖片文字
對話框的文字,命名格式為:dialog_文字
menu的item文字,命名格式為:action_文字
前綴{控件}{范圍}{_後綴},控件、范圍、後綴可選,但控件和范圍至少要有一個。
背景顏色,添加bg前綴
文本顏色,添加text前綴
分割線顏色,添加div前綴
區分狀態時,默認狀態的顏色,添加normal後綴
區分狀態時,按下時的顏色,添加pressed後綴
區分狀態時,選中時的顏色,添加selected後綴
區分狀態時,不可用時的顏色,添加disable後綴
前綴{控件}{范圍}{_後綴},控件、范圍、後綴可選,但控件和范圍至少要有一個。
圖標類,添加ic前綴
背景類,添加bg前綴
分隔類,添加div前綴
默認類,添加def前綴
區分狀態時,默認狀態,添加normal後綴
區分狀態時,按下時的狀態,添加pressed後綴
區分狀態時,選中時的狀態,添加selected後綴
區分狀態時,不可用時的狀態,添加disable後綴
多種狀態的,添加selector後綴(一般為ListView的selector或按鈕的selector)
動畫類型_動畫方向。
fade_in,淡入
fade_out,淡出
push_down_in,從下方推入
push_down_out,從下方推出
slide_in_from_top,從頭部滑動進入
zoom_enter,變形進入
shrink_to_middle,中間縮小
文件頂部統一添加版權聲明,聲明的格式如下:
/**
* Copyright (c) 2015. Keegan小鋼 Inc. All rights reserved.
*/
類和接口注釋
/**
* 類或接口的描述信息
*
* @author ${USER}
* @date ${DATE}
*/
方法注釋
下面幾種方法,都必須添加javadoc注釋,說明該方法的用途和參數說明,以及返回值的說明。
/**
* 登錄
*
* @param loginName 登錄名
* @param password 密碼
* @param listener 回調監聽器
*/
public void login(String loginName, String password, ActionCallbackListener listener);
變量和常量注釋
下面幾種情況下的常量和變量,都要添加注釋說明,優先采用右側//來注釋,若注釋說明太長則在上方添加注釋。
接口中定義的所有常量 公有類的公有常量 枚舉類定義的所有枚舉常量 實體類的所有屬性變量
public static final int TYPE_CASH = 1; // 現金券
public static final int TYPE_DEBIT = 2; // 抵扣券
public static final int TYPE_DISCOUNT = 3; // 折扣券
private int id; // 券id
private String name; // 券名稱
private String introduce; // 券簡介
注:部分信息來源於網絡,若有使用不當,請聯系!感謝!
對於觀察者,很多開發者並不陌生,在日常開發過程中,這也是一個非常常見的設計模式,尤其是Android小伙伴,很多人都知道broadcast就是一個典型的觀察者模式,還有最
微信的訂閱號有很多很搞笑的視頻我們怎麼下載下來?朋友圈裡鏈接的視頻非常珍貴如何保存?相信大家都很想知道吧,下面讓我來給大家介紹怎麼下載微信中的視頻的方法吧。
說實話,關於Android中對短信的一些相關操作是一個比較入門的東西。那我現在還要來寫這一篇博客的原因只是因為現在開發中有相關內容,而又想將這些東西分享給更多的人來學習,
在我們進行android開發的時候雖然官方提供了形形色色的控件,但是有的時候根據不同業務需求我們找不到官方的控件支持,那麼這個時候就需要我們自己去定義控件來適應不同的需求