前言
為增加開(kāi)發(fā)過(guò)程代碼的強(qiáng)壯性、可讀性、易維護(hù)性,減少有經(jīng)驗(yàn)和無(wú)經(jīng)驗(yàn)的開(kāi)發(fā)人員編程所需的腦力工作,在項(xiàng)目范圍內(nèi)統(tǒng)一代碼風(fēng)格是為軟件的良好維護(hù)性打下好的基礎(chǔ)。通過(guò)人為以及自動(dòng)的方式對(duì)編程時(shí)有一致格式可遵循,每個(gè)編程人員編寫的代碼能夠被其他人理解,使新的開(kāi)發(fā)人員快速適應(yīng)項(xiàng)目氛圍是規(guī)范代碼的必要性。
1.項(xiàng)目命名規(guī)則
首先,指出Android Studio中的兩個(gè)概念。 Project 和 Module,在Android Studio中, Project 的真實(shí)含義是工作空間, Module 為一個(gè)具體的項(xiàng)目,所以項(xiàng)目命名其實(shí)是給Module命名,而Module又分為兩種;一種是Library Module,另一種是Application Module。
為區(qū)分兩種Module:
Application Module 命名以 app_Xxx 的方式;
Library Module 命名以 library_Xxx 的方式;
2.包命名規(guī)則
包命名能快速指引開(kāi)發(fā)人員尋找需要找尋的類位置,所以命名規(guī)范也就能提高開(kāi)發(fā)工作的效率;
一般包命名以com開(kāi)頭,第二個(gè)以代表本公司的字母或者單詞,第三個(gè)是項(xiàng)目名或者是終端類型,這是一個(gè)固定的開(kāi)頭命名,然后往下細(xì)分就是功能模塊的包命名,都以小寫字母;
可參考如下圖;com.space.app.power
3.類命名規(guī)則
類命名規(guī)則需要直觀易懂,從命名就能大致理解其作用,提高工程結(jié)構(gòu)的可讀性;
類命名首字母應(yīng)大寫,如果由多個(gè)單詞組成,那么每個(gè)單詞的首字母需要大寫,其他字母小寫,結(jié)尾應(yīng)當(dāng)有體現(xiàn)該類的大致功能作用單詞描述;
| 類 | 描述 | 示例 |
|---|---|---|
| Activity 類 | Aty或者Activity為后綴標(biāo)識(shí) | WelcomeAty或WelcomeActivity |
| Adapter類 | Adp或者Adapte 為后綴標(biāo)識(shí) | NewtDetailAdp或NewdetailAdapter |
| Service類 | 以Service為后綴標(biāo)識(shí) | TimeService |
| Utils類 | 以Utils為后綴標(biāo)識(shí) | TimeUtils |
| BroadcastReceive類 | 以Broadcast為后綴標(biāo)識(shí) | TimeBroadcast |
| ContentProvider | 以Provider為后綴標(biāo)識(shí) | TimeProvider |
| 公共方法類 | Tools或Manager為后綴標(biāo)識(shí) | LogTools |
| 共享基礎(chǔ)類 | 以Base開(kāi)頭 | BaseActivity,BaseFragment |
4.變量命名規(guī)則
- 變量命名采用駝峰命名法規(guī)則,及第一個(gè)字母小寫,后面單詞首字母大寫;
- 非公共的、非靜態(tài)的域、非布局控件變量用m前綴;
- 靜態(tài)域變量用s前綴;
- 集合類型的變量使用復(fù)數(shù)形式,若多種集合類型的變量存儲(chǔ)的是相同類型的對(duì)象,除了根據(jù)功能區(qū)分,也可以簡(jiǎn)單通過(guò)集合類型來(lái)區(qū)分;
- 常用View控件應(yīng)當(dāng)帶有描述空間的單詞或者縮寫;
5.布局文件命名規(guī)則
name是模塊的名稱或功能的描述,單詞必須全部小寫,單詞之間用下劃線隔開(kāi)
| 類型 | 模板 | 示例 |
|---|---|---|
| Acivity | activity_name.xml | activity_main.xml |
| Tab | tab_name.xml | tab_home.xml |
| Dialog | dialog_name.xml | dialog_login.xml |
| Item | item_name.xml | item_contact.xml |
| Fragment | fragment_name.xml | fragment_map.xml |
6.ID命名規(guī)則
組成名稱的單詞必須全部小寫,單詞之間用下劃線隔開(kāi),名稱不需要復(fù)雜的層級(jí)定位,只需要準(zhǔn)確描述所代表控件的功能作用即可,名稱前使用控件類型的縮寫前綴來(lái)避免重復(fù)起名的麻煩。
| 類型 | 模板 | 示例 |
|---|---|---|
| TestView | @+id/tv_name | @+id/tv_title |
| EditText | @+id/et_name | @+id/et_mail |
| RelativeLayout | @+id/rl_name | @+id/rl_login |
| LinearLayout | @+id/ll_name | @+id/ll_login |
7.控件類型縮寫對(duì)應(yīng)表
| 控件類型 | 源文件中縮寫 | 資源文件中縮寫 |
|---|---|---|
| View | V | v |
| Button | Btn | btn |
| ImageButton | Ib | ib |
| RadioButton | Rb | rb |
| CheckBox | Cb | cb |
| TextView | Tv | tv |
| EditText | Et | et |
| ImageView | Iv | iv |
| ListView | Lv | lv |
| ProgressBar | Pbar | pbar |
| ScrollView | Sv | sv |
| RelativeLayout | Rlyt | rlyt |
| LinearLayout | Llyt | llyt |
| TableLayout | Tlyt | tlyt |
| FrameLayout | Flyt | flyt |
8.圖片的命名
Name是模塊的名稱或者功能描述
圖片名稱一般由模塊名稱/功能描述 + 后綴組成,后綴是可選的
| 前綴 | 描述 | 示例 |
|---|---|---|
| ic_ | 圖標(biāo) | ic_launcher.png |
| bg_ | 背景 | bg_title.png |
| sl_ | 狀態(tài)圖片 | sl_button.png |
| 后綴 | 描述 | 示例 |
|---|---|---|
| 無(wú) | 普通狀態(tài) | login.png |
| _p | 按下?tīng)顟B(tài) | longin_p.png |
| _c | 選中狀態(tài) | login_c.png |
| _d | 不可用狀態(tài) | login_d.png |
9.常見(jiàn)的英文單詞縮寫
| 名稱 | 縮寫 | 說(shuō)明 |
|---|---|---|
| Icon | ic 主要用在APP圖標(biāo) | |
| Color | cl | 主要用于顏色 |
| Divider | di | 主要用于分割線 |
| Selector | sl | 主要用于某view多狀態(tài) |
| Average | avg | |
| Backcground | bg | 主要用于布局的背景 |
| Buffer | buf | |
| Conntrol | ctrl | |
| delete | del | |
| Error | err | |
| Image | img | |
| Length | len | |
| Message | msg | |
| Password | pwd | |
| String | str | |
| Temp | tmp |
10.其他資源命名
遵循見(jiàn)名知意的原則,組成名稱的單詞必須全部小寫,單詞之間用下劃線隔開(kāi)。