title: Android編碼規(guī)范指南
tags: Android,基礎(chǔ)
本文參考最全面的 Android 編碼規(guī)范指南和標(biāo)準(zhǔn)的Java編碼規(guī)范手冊(cè)。該文檔僅供參考,只要形成一個(gè)統(tǒng)一的風(fēng)格即可。
源文件基礎(chǔ)
-
文件名
源文件以其最頂層的類名來命名,大小寫敏感,文件擴(kuò)展名為.java。 -
文件編碼
源文件編碼格式為 UTF-8。
源文件結(jié)構(gòu)
一個(gè)源文件包含(按順序地):
- 許可證或版權(quán)信息(如有需要)
- package語句
- import語句
- 一個(gè)頂級(jí)類(只有一個(gè))以上每個(gè)部分之間用一個(gè)空行隔開。
-
許可證或版權(quán)信息
如果一個(gè)文件包含許可證或版權(quán)信息,那么它應(yīng)當(dāng)被放在文件最前面。 -
package語句
package 語句不換行。 -
import語句
3.1 import不要使用通配符
即,不要出現(xiàn)類似這樣的import語句:import java.util.*;
3.2 不要換行
圖例:

格式規(guī)范
縮進(jìn)
每當(dāng)開始一個(gè)新的塊,縮進(jìn)增加4個(gè)空格,當(dāng)塊結(jié)束時(shí),縮進(jìn)返回先前的縮進(jìn)級(jí)別??s進(jìn)級(jí)別適用于代碼和注釋一行一個(gè)語句
每個(gè)語句后要換行。行長度
每行80或100字符,package和import語句除外-
換行
- 從哪里換行
基本準(zhǔn)則是:更傾向于在更高的語法級(jí)別處斷開。
如果在非賦值運(yùn)算符處斷開,那么在該符號(hào)前斷開(比如+,它將位于下一行)。
這條規(guī)則也適用于以下”類運(yùn)算符”符號(hào):點(diǎn)分隔符(.),類型界限中的 &()
如果在賦值運(yùn)算符處斷開,通常的做法是在該符號(hào)后斷開(比如=,它與前面的內(nèi)容留在同一行)。這條規(guī)則也適用于foreach語句中的分號(hào)。
方法名或構(gòu)造函數(shù)名與左括號(hào)留在同一行。
逗號(hào)(,)與其前面的內(nèi)容留在同一行- 換行時(shí)縮進(jìn)至少+8個(gè)空格
- 從哪里換行

-
使用空行
以下情況使用一個(gè)空行:
1.類內(nèi)連續(xù)的成員之間:字段,構(gòu)造函數(shù),方法,嵌套類,靜態(tài)初始化塊,實(shí)例初始化塊。
2.在函數(shù)體內(nèi),語句的邏輯分組間使用空行。
- 使用空格
1.分隔任何保留字與緊隨其后的左括號(hào)(()(如if, for catch等)。
2.分隔任何保留字與其前面的右大括號(hào)(})(如else, catch)。
3.在任何左大括號(hào)前({)
4.在任何二元或三元運(yùn)算符的兩側(cè)。
5.在, : ;及右括號(hào)())后
6.如果在一條語句后做注釋,則雙斜杠(//)兩邊都要空格。
7.類型和變量之間:List list。
8.數(shù)組初始化中,大括號(hào)內(nèi)的空格是可選的,即new int[] {5, 6}和new int[] { 5, 6 }都是可以的。
命名規(guī)則
對(duì)所有標(biāo)識(shí)符都通用的規(guī)則
標(biāo)識(shí)符只能使用ASCII字母和數(shù)字,因此每個(gè)有效的標(biāo)識(shí)符名稱都能匹配正則表達(dá)式\w+。標(biāo)識(shí)符類型的規(guī)則
2.1 包名全部小寫,連續(xù)的單詞只是簡單地連接起來,不使用下劃線。采用反域名命名規(guī)則,全部使用小寫字母。一級(jí)包名為com,二級(jí)包名為xx(可以是公司或則個(gè)人的隨便),三級(jí)包名根據(jù)應(yīng)用進(jìn)行命名,四級(jí)包名為模塊名或?qū)蛹?jí)名。
package com.anxin.changbaishan.view;
package com.anxin.changbaishan.utils;
2.2 類命名
類名是個(gè)一名詞,采用大小寫混合的方式,每個(gè)單詞的首字母大寫。盡量使類名簡潔而富于描述。使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML) 。
public class Base64Util
public class AccountFragment
2.3 接口命名
接口類名以大寫“I”開頭,大小寫規(guī)則與類名相似。
public interface IProjGroupService
2.4 方法命名
方法名是一個(gè)動(dòng)詞,采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫。
public void onCreate(Bundle savedInstanceState)
public void run()
2.5 常量命名
(Constants [采用stiatc final 修飾]) 類常量的聲明,應(yīng)該全部大寫,單詞間用下劃線隔開。
private static final int MIN_WIDTH = 4;
private static final int MAX_WIDTH = 999;
2.6 局部變量
采用大小寫混合的方式,第一個(gè)單詞的首字母小寫,其后單詞的首字母大寫。變量名應(yīng)簡短且富于描述。變量名的選用應(yīng)該易于記憶,即,能夠指出其用途。盡量避免單個(gè)字符的變量名,除非是一次性的臨時(shí)變量。臨時(shí)變量通常被取名為i,j,k,m和n,它們一般用于整型。c,d,e,它們一般用于字符型,變量名不應(yīng)以下劃線或美元符號(hào)開頭。
int i = 0;
float imageWidth = 0;
2.7 實(shí)例變量
大小寫規(guī)則和類名相似,除了前面需要一個(gè)m。
private int mEmployeeId = 0;
private String mName = "";
-
資源文件命名規(guī)范
3.1 資源布局文件(XML文件(layout布局文件)):
全部小寫,采用下劃線命名法
- 必須以全部單詞小寫,單詞間以下劃線分割,使用名詞或名詞詞組。所有Activity或Fragment的contentView必須與其類名對(duì)應(yīng),對(duì)應(yīng)規(guī)則為:將所有字母都轉(zhuǎn)為小寫,將類型和功能調(diào)換(也就是后綴變前綴)。

- Dialog命名:dialog_描述.xml
dialog_hint.xml
3.2 資源文件(圖片drawable文件夾下)
全部小寫,采用下劃線命名法,加前綴區(qū)分
命名模式:可加后綴 small 表示小圖, big 表示大圖,邏輯名稱可由多個(gè)單詞加下劃線組成,采用以下規(guī)則:
控件類型模塊名邏輯名稱
控件類型模塊名顏色
控件類型邏輯名稱
控件類型顏色
btn_main_home.png 按鍵
divider_maket_white.png 分割線
ic_edit.png 圖標(biāo)
bg_main.png 背景
btn_red.png 紅色按鍵
btn_red_big.png 紅色大按鍵
ic_head_small.png 小頭像
bg_input.png 輸入框背景
divider_white.png 白色分割線
3.3 layout中的id命名
命名模式為:view縮寫_view的邏輯名稱
<EditText
android:id="@+id/et_username"/>
<Button
android:id="@+id/btn_login"/>
UI控件縮寫表
