天天看點

Android開發規範——命名

在講解命名規範前,先初略介紹下目前主要的辨別符命名法和英文縮寫規則。

辨別符命名法

辨別符命名法最要有四種:

1 駝峰(Camel)命名法:又稱小駝峰命名法,除首單詞外,其餘所有單詞的第一個字母大寫。

2 帕斯卡(pascal)命名法:又稱大駝峰命名法,所有單詞的第一個字母大寫

3 下劃線命名法:單詞與單詞間用下劃線做間隔。

4 匈牙利命名法:廣泛應用于微軟程式設計環境中,

在以Pascal命名法的變量前附加小寫序列說明該變量的類型。

 量的取名方式為:<scope_> 

<prefix_> 

<qualifier> 範圍字首,類型字首,限定詞。

個人覺得辨別符命名原則:

盡可能的用最少的字元而又能完整的表達辨別符的含義。

英文縮寫原則:

1 較短的單詞可通過去掉“元音”形成縮寫

2 較長的單詞可取單詞的頭幾個字母形成縮寫

3 此外還有一些約定成俗的英文單詞縮寫.

下面為常見的英文單詞縮寫:

average 

 ----> 

 avg

background 

 --->bg

buffer ----->buf

control ---->ctrl

delete ----->del

document 

 ---->doc

error ----->err

escape ---->esc

increment ---->inc

infomation ---->info

initial 

 ---->init

image ---->img

Internationalization 

 ----> I18N

length --->len

library--->lib

message--->msg

password--->pwd

position--->pos

server--->srv

string --->str

temp--->tmp

window--->wnd(win)

程式中使用單詞縮寫原則:

不要用縮寫,除非該縮寫是約定俗成的。

命名規範:

1 包(packages): 

采用反域名命名規則,全部使用小寫字母。一級包名為com,二

級包名為anjoyo,三級包名根據應用進行命名,四級包名為子產品名或層級名

例如:

com.anjoyo.應用.activities  

 此包中包含:頁面用到的Activity類 (activities層級名 使用者界面層)

com.anjoyo.應用.tools  

 此包中包含:公共工具方法類 (tools 子產品名)

com.anjoyo.應用.db  

 此包中包含:資料庫操作類

com.anjoyo.應用.custom  

 此包中包含:自定義的View類等

com.anjoyo.應用.service  

 此包中包含:Service服務

com.anjoyo.應用.broadcast  

 此包中包含:Broadcast服務

2 類(classes):名詞,采用大駝峰命名法,盡量避免縮寫,除非該縮寫是衆所周知的,

 比如HTML,URL,如果類名稱中包含單詞縮寫,則單詞縮寫的每個字母均應大寫。

activity 類 

 Aty為字尾辨別,如歡迎頁面類WelcomeAty.

Adapter類 

 Adp為字尾辨別,如商品詳情擴充卡ProductDetailAdp

解析類 

 Hlr為字尾辨別,如首頁解析類HomePosterHlr

公共方法類 

 Tools或Manager為字尾辨別。如:線程池管理類:ThreadPoolManager

 日志工具類:LogTools

資料庫類 

 以DBHelper字尾辨別。如城市資料庫:CityDBHelper

Service類 

 以Service為字尾辨別

BroadcastReceive 

 以Broadcast為字尾辨別

ContentProvider 

 以Provider為字尾辨別

3 接口(interface):命名規則與類一樣采用大駝峰命名法,多以able或ible結尾,如interface Runn

a

ble

 ;

 interface Access

ible

 。

4 方法(methods):動詞或動名詞,采用小駝峰命名法 例如:onCreate(),run()

initXXX()  

 初始化相關方法,使用init為字首辨別

isXXX() 

 checkXXX() 方法傳回值為boolean型的請使用is或check為字首辨別

getXXX() 

 傳回某個值的方法,使用get為字首辨別

processXXX() 對資料進行處理的方法,盡量使用process為字首辨別

displayXXX() 彈出提示框和提示資訊,使用display為字首辨別

saveXXX() 

 與儲存資料相關的,使用sav為e字首辨別

resetXXX() 

 對資料重組的,使用reset字首辨別

clearXXX()removeXXX() 

 清除資料相關的,使用clear或remove為字首辨別

drawXXX() 

 繪制資料或效果相關的,使用draw字首辨別

5 變量(variables)采用小駝峰命名法。類中控件名稱必須與xml布局id保持一緻。

1 View變量命名:控件類型描述 + 意義描述

控件  

 縮寫

TextView 

 txt

Button 

 btn

ImageButton 

 imgBtn

ImageView 

 imgView

CheckBox 

 chk

RadioButton 

 rdoBtn

analogClock 

 anaClk

DigtalClock 

 dgtClk

DatePicker 

 dtPk

TimePicker  

 tmPk

toggleButton  

 tglBtn

EditText  

 edtTxt

ProgressBar

proBar    proBar

SeekBar                           

skBar

AutoCompleteTextView autoTxt

ZoomControls 

 zmCtl

Include 

 ind

VideoView 

 vdoVi

WdbView 

 webVi

RantingBar 

 ratBar

Tab 

 tab

Spinner 

 spn

Chronometer 

 cmt

ScollView 

 sclVi

TextSwitch 

 txtSwt

ImageSwitch 

 imgSwt

listView 

 lVi

ExpandableList 

 epdLt

MapView 

 mapVi

用統一的量詞通過在結尾處放置一個量詞,就可建立更加統一的變量,它們更容易了解,也更容易搜尋。例如,請使用strCustomerFirst和strCustomerLast,而不要使用strFirstCustomer和strLastCustomer。

量詞清單:量詞字尾說明

First 

 一組變量中的第一個

Last 

 一組變量中的最後一個

Next 

 一組變量中的下一個變量

Prev 

 一組變量中的上一個

Cur 

 一組變量中的目前變量

6 常量(constants)全部大寫,采用下劃線命名法.例如:MIN_WIDTH

7 XML檔案(布局檔案):全部小寫,采用下劃線命名法

 1.Activity預設布局,以去掉字尾的Activity類進行命名。不加字尾

 2.Activity子布局,父布局名稱開始,追加item 和子布局功能說明。

例如:Activity預設布局:homeposter.xml 

 子布局為homeposter_item_poster.xml

8 資源檔案(圖檔): 全部小寫,采用下劃線命名法,加字首區分

btn_login_normal 按鈕圖檔使用btn_功能_說明
bg_head 背景圖檔使用bg_功能_說明
def_search_cell 預設圖檔使用def_功能_說明
icon_more_help 圖示圖檔使用icon_功能_說明
seg_list_line 具有分隔特征的圖檔使用seg_功能_說明
sel_ok 選擇圖示使用sel_功能_說明

9  動畫檔案(anim包):全部小寫,采用下劃線命名法,加字首區分。

動畫命名例子 規範寫法 備注
click_head_left 點選背景切換動畫使用click字首辨別
bg_shape_rectangle 背景自定義圖形使用bg字首辨別
show_shopcar_add 小動畫效果使用show字首辨別

10    資源ID(resources id):大小寫規範與方法名一緻,采用小駝峰命名法。命名規範為“資源控件的縮寫  名”+“變量名”。注意:頁面控件名稱應該和控件id名保持一緻

​​酒少爺​​

注意事項:

1.項目編碼格式統一采用UTF-8編碼

2.代碼中除注釋外禁止出現中文

3.檔案禁止出現警告提示 例如:

4.項目檔案禁止出現警告提示 例如:

5.在項目中建立libs檔案夾,統一放置引用的外部jar檔案。引用第三方庫的時候要謹慎,避免使用大容量的第三方庫,而導緻用戶端非常大

6.在項目中,res檔案夾中建立animation檔案夾,統一放置動畫xml檔案

7.在項目中,res檔案夾中建立drawable檔案夾,統一放置selector.xml,shape.xml等配置檔案

8.服務端可以實作的,就不要放在用戶端來實作

9.strings.xml中使用%1$s實作字元串的通配 

10.如果多個Activity中包含共同的UI處理,那麼可以提煉一個CommonActivity,把通用部分叫由它來處理,其他activity隻要繼承它即可 

11.使用button+activitgroup實作tab效果時,使用Button.setSelected(true),確定按鈕處于選擇狀态,并使activitygroup的目前activity與該button對應 

12.資料一定要效驗,例如

字元型轉數字型,如果轉換失敗一定要有預設值;

服務端響應資料是否有效判斷  

13.圖檔的.9處理,圖檔要壓縮

14.不要重用父類的handler,對應一個類的handler也不應該讓其子類用到,否則會導緻message.what沖突 

15.資源檔案隻能以小寫字母和下劃線做首字母,随後的名字中隻能出現 [a-z0-9_.] ,否

則會導緻R檔案無法自動生成

16.onCreate中完成控件的初始化,onResume中完成資料的準備

17.每個activity都有自己獨立的消息處理,其中包括正确的消息處理,錯誤處理,異常捕捉

18.任何主線程不需要做過于複雜的處理,并且主線程需要提供一個Handler給子線程去傳回完成資訊

19.每個項目開始前應進行分析和命名文檔的編寫

縮寫:

bg----------background

txt----------textview

img----------imageview

btn----------button

txt----------textview

pic----------picture

lv----------listview

vp----------viewpager

gv----------gridview

6.方法參數命名:

參數的命名規範和方法的命名規範相同,而且為了避免閱讀程式時造成迷惑,請在盡量保證參數名稱為一個單詞的情況下使參數的命名盡可能明确。 

7.圖檔資源命名:必須具有實際意義的英文單詞或英文單詞組合,如果圖檔為共享性圖檔資源,命名在前者的基礎上加上share_(命名應與代碼<布局檔案>中辨別變量名稱的英文單詞<id>相一緻)

8.Log使用:(系統名稱 子產品名稱 接口名稱,較長的描述)

9.values中配置檔案的命名規範:

  values應包含:colors,strings,styles,arrays

目錄結構:

        /values

              /arrays(展示資訊)

              /colors(顔色代碼)

              /strings(資訊描述)

              /styles(屬性風格)

10.布局檔案的命名規則:

   子產品名+具有實際意義的英文單詞或英文單詞組合(每個英文單詞用下劃線_分割)

   例如:main_login.xml

11.布局檔案中id的命名規則:

   控件屬性+實際activity的英文辨別單詞+實際變量的英文表示單詞 (用下劃線_隔開)

   例如:img_main_back