最佳實務之 Android代碼規範

來源:互聯網
上載者:User

標籤:android   規範   

命名規範包命名規範

採用反網域名稱命名規則,包名全部小寫,連續的單詞只是簡單地串連起來,不使用底線,一級包名為com,二級包名為xxx(可以是公司網域名稱或者個人命名),三級包名根據應用進行命名,四級包名為模組名或層級名。如:

com.isa.crm.activity |
com.isa.crm.adapter

JAVA類命名規範

採用大駝峰式命名法,盡量避免縮寫,除非該縮寫是眾所周知的,比如HTML,URL,如果類名稱包含單詞縮寫,則單詞縮寫的每個字母均應大寫。如:

Product | ProductManager |
ProductListActivity | ProductListAdapter | JsonHTTPSRequest

介面命名規範

命名規則與類一樣採用大駝峰命名法,多以ableible結尾。例如:

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)
  • 大駝峰式命名法(UpperCamelCase):
    每個單詞的第一個字母都大寫 如:XmlHttpRequest

  • 小駝峰式命名法(lowerCamelCase):
    除了第一個單詞,每個單詞的第一個字母都大寫 如:xmlHttpRequest

說明

該篇介紹為Android項目開發過程中的一些常用的命名規範|代碼編寫風格規範,該規範來源於設定檔整理(參考網路技術部落格)、個人項目實踐。參考這些規範有助於 項目的協同開發,項目代碼的風格統一、在項目的後期維護中更方便、快捷的尋找、理解和修改別人的代碼。如朋友們有更好的規範要求、歡迎分享出來、一起討論。



本篇參考文章列表:

  • hawstein分享的 Google Java編程風格指南

  • 小巫分享的 Android研發規範


如果您對文章內容有任何疑問或有更好的見解, 歡迎通過留言或發郵件的方式聯絡我:
[email protected]

如需要轉載,請註明出處,謝謝!!

最佳實務之 Android代碼規範

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.