標籤:android 規範
命名規範包命名規範
採用反網域名稱命名規則,包名全部小寫,連續的單詞只是簡單地串連起來,不使用底線,一級包名為com,二級包名為xxx(可以是公司網域名稱或者個人命名),三級包名根據應用進行命名,四級包名為模組名或層級名。如:
com.isa.crm.activity |
com.isa.crm.adapter
JAVA類命名規範
採用大駝峰式命名法,盡量避免縮寫,除非該縮寫是眾所周知的,比如HTML,URL,如果類名稱包含單詞縮寫,則單詞縮寫的每個字母均應大寫。如:
Product | ProductManager |
ProductListActivity | ProductListAdapter | JsonHTTPSRequest
介面命名規範
命名規則與類一樣採用大駝峰命名法,多以able或ible結尾。例如:
interface Runable | interface Accessible
成員變數命名規範
採用小駝峰命名法。
臨時變數命名
使用標準的Java命名方法,不推薦使用Google的m命名法。例如:
private String userName; 而不推薦使用 private String mUserName;
常量命名
常量使用全大寫字母加底線的方式命名。例如:
public static final String TAG = "tag";
控制項執行個體命名
類中控制項名稱必須與xml布局id保持一致(可以去掉{module_name})。例如:
在布局檔案中 Button 的id為: android:id="@+id/btn_pay"
private Button btn_pay;
方法命名規範
動詞或動名詞,採用小駝峰命名法。例如:
run(); | onCreate(); | syncProducts();
布局檔案(
Layout)命名規範
全部小寫,採用底線命名法。其中{module_name}為業務模組或是功能模組等模組化的名稱或簡稱。
activity layout: {module_name}_activity_{名稱} 例如:
crm_activity_main.xml | crm_activity_shopping.xml
fragment layout:{module_name}_fragment_{名稱} 例如:
crm_fragment_main.xml | crm_fragment_shopping.xml
Dialog layout: {module_name}_dialog_{名稱} 例如:
crm_dialog_loading.xml
清單項目布局命名:{module_name}_list_item_{名稱} 例如:
crm_listitem_customer.xml
包含項布局命名:include_{名稱} 例如:
include_head.xml
adapter的子布局: {module_name}_item_{名稱} 例如:
qz_item_order.xml
widget layout: {module_name}_widget_{名稱} 例如:
crm_widget_shopping_detail.xml
資源id命名規範
命名模式為:{view縮寫}_{module_name}_{view的邏輯名稱},如:
顧客管理CRM模組布局 LinearLayout 的布局id –> ll_crm_content
模組簡稱為qz的 ImageView 的布局id –> iv_qz_photo
常見控制項View與其縮寫對照參考表如下:
圖片資源檔命名規範
表徵圖命名:{module_name}_ic_{名稱} 例如:
crm_ic_app.png
背景圖片命名: {module_name}_bg_{名稱} 例如:
crm_bg_navbar_highlight_normal.9.png
按鈕Button命名: {module_name}_btn_{名稱} 例如:
crm_btn_login_normal.9.png
按鈕checkbox圖片命名:{module_name}_checkbox_{名稱} 例如:
crm_checkbox_cart_true.png
其他圖片命名:{module_name}_icon_{名稱} 例如:
qz_icon_blue_circle.png
代碼風格大括弧問題
風格一
if (hasMoney()){}else{}
風格二
if (hasMoney()) {} else {}
空格問題
if else | while | 運算子兩端 等後面需用空格隔開。例如:
規範的編寫方式:
if (hasMoney()) {} else {}for (int i = 0; i < 10; i++) {}
不規範的編寫方式:
if(hasMoney()){}else{}for(int i=0; i<10;i++){}
方法參數
當方法參數數量過多時,需進行換行處理.
注釋
必須要對所有執行個體變數、類常量進行注釋說明 例如:
// 使用者姓名private String userName
必須對所有的類、介面進行注釋說明 例如:
/*** Activity基類** @author [email protected]*/public class BaseActivity extends Activity{}
必須對所有的方法進行注釋說明 例如:
/*** 請求** @param path 路徑* @param generalParams 基本參數* @param businessParams 業務參數* @return 請求結果* @throws ApiException 請求錯誤則返回該異常*/public Map<String, Object> request (String path, Map<String, Object> generalParams, Map<String, Object> businessParams) throws ApiException { return null;}
更多詳細也可以參考:
[Google Java編程風格指南](http://hawstein.com/posts/google-java-style.html)
駝峰式命名法(CamelCase)
說明
該篇介紹為Android項目開發過程中的一些常用的命名規範|代碼編寫風格規範,該規範來源於設定檔整理(參考網路技術部落格)、個人項目實踐。參考這些規範有助於 項目的協同開發,項目代碼的風格統一、在項目的後期維護中更方便、快捷的尋找、理解和修改別人的代碼。如朋友們有更好的規範要求、歡迎分享出來、一起討論。
本篇參考文章列表:
如果您對文章內容有任何疑問或有更好的見解, 歡迎通過留言或發郵件的方式聯絡我:
[email protected]
如需要轉載,請註明出處,謝謝!!
最佳實務之 Android代碼規範