Android編碼規範指南

weixin_33912445發表於2016-05-18

title: Android編碼規範指南
tags: Android,基礎


本文參考最全面的 Android 編碼規範指南標準的Java編碼規範手冊。該文件僅供參考,只要形成一個統一的風格即可。

原始檔基礎

  • 檔名
    原始檔以其最頂層的類名來命名,大小寫敏感,副檔名為.java。
  • 檔案編碼
    原始檔編碼格式為 UTF-8。

原始檔結構

一個原始檔包含(按順序地):

  1. 許可證或版權資訊(如有需要)
  2. package語句
  3. import語句
  4. 一個頂級類(只有一個)以上每個部分之間用一個空行隔開。
  1. 許可證或版權資訊
    如果一個檔案包含許可證或版權資訊,那麼它應當被放在檔案最前面。
  2. package語句
    package 語句不換行。
  3. import語句
    3.1 import不要使用萬用字元
    即,不要出現類似這樣的import語句:import java.util.*;
    3.2 不要換行
    圖例:
1644402-1532246bc5bb0182.png
原始檔結構1.1.png

格式規範

  • 縮排
    每當開始一個新的塊,縮排增加4個空格,當塊結束時,縮排返回先前的縮排級別。縮排級別適用於程式碼和註釋

  • 一行一個語句
    每個語句後要換行。

  • 行長度
    每行80或100字元,package和import語句除外

  • 換行

    • 從哪裡換行
      基本準則是:更傾向於在更高的語法級別處斷開。

    如果在非賦值運算子處斷開,那麼在該符號前斷開(比如+,它將位於下一行)。
    這條規則也適用於以下”類運算子”符號:點分隔符(.),型別界限中的 &()
    如果在賦值運算子處斷開,通常的做法是在該符號後斷開(比如=,它與前面的內容留在同一行)。這條規則也適用於foreach語句中的分號。
    方法名或建構函式名與左括號留在同一行。
    逗號(,)與其前面的內容留在同一行

    • 換行時縮排至少+8個空格
1644402-f53ae3014a33f6c3.png
換行位置2.1.png
  • 使用空行
    以下情況使用一個空行:

1.類內連續的成員之間:欄位,建構函式,方法,巢狀類,靜態初始化塊,例項初始化塊。
2.在函式體內,語句的邏輯分組間使用空行。

  • 使用空格

1.分隔任何保留字與緊隨其後的左括號(()(如if, for catch等)。
2.分隔任何保留字與其前面的右大括號(})(如else, catch)。
3.在任何左大括號前({)
4.在任何二元或三元運算子的兩側。
5.在, : ;及右括號())後
6.如果在一條語句後做註釋,則雙斜槓(//)兩邊都要空格。
7.型別和變數之間:List list。
8.陣列初始化中,大括號內的空格是可選的,即new int[] {5, 6}和new int[] { 5, 6 }都是可以的。

命名規則

  1. 對所有識別符號都通用的規則
    識別符號只能使用ASCII字母和數字,因此每個有效的識別符號名稱都能匹配正規表示式\w+。

  2. 識別符號型別的規則
    2.1 包名全部小寫,連續的單詞只是簡單地連線起來,不使用下劃線。採用反域名命名規則,全部使用小寫字母。一級包名為com,二級包名為xx(可以是公司或則個人的隨便),三級包名根據應用進行命名,四級包名為模組名或層級名。

package com.anxin.changbaishan.view;
package com.anxin.changbaishan.utils;

2.2 類命名
類名是個一名詞,採用大小寫混合的方式,每個單詞的首字母大寫。儘量使類名簡潔而富於描述。使用完整單詞,避免縮寫詞(除非該縮寫詞被更廣泛使用,像URL,HTML) 。

public class Base64Util
public class AccountFragment

2.3 介面命名
介面類名以大寫“I”開頭,大小寫規則與類名相似。

public interface IProjGroupService

2.4 方法命名
方法名是一個動詞,採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。

public void onCreate(Bundle savedInstanceState)
public void run()

2.5 常量命名
(Constants [採用stiatc final 修飾]) 類常量的宣告,應該全部大寫,單詞間用下劃線隔開。

private static final int MIN_WIDTH = 4;
private static final int MAX_WIDTH = 999;

2.6 區域性變數
採用大小寫混合的方式,第一個單詞的首字母小寫,其後單詞的首字母大寫。變數名應簡短且富於描述。變數名的選用應該易於記憶,即,能夠指出其用途。儘量避免單個字元的變數名,除非是一次性的臨時變數。臨時變數通常被取名為i,j,k,m和n,它們一般用於整型。c,d,e,它們一般用於字元型,變數名不應以下劃線或美元符號開頭。

int i = 0;
float imageWidth = 0;

2.7 例項變數
大小寫規則和類名相似,除了前面需要一個m。

private int mEmployeeId = 0;
private String mName = "";

  1. 資原始檔命名規範
    3.1 資源佈局檔案(XML檔案(layout佈局檔案)):
    全部小寫,採用下劃線命名法
  • 必須以全部單詞小寫,單詞間以下劃線分割,使用名詞或名詞片語。所有Activity或Fragment的contentView必須與其類名對應,對應規則為:將所有字母都轉為小寫,將型別和功能調換(也就是字尾變字首)。
1644402-86de07de395b2b27.png
資源佈局檔案命名3.1.png
  • Dialog命名:dialog_描述.xml

dialog_hint.xml

3.2 資原始檔(圖片drawable資料夾下)
全部小寫,採用下劃線命名法,加字首區分
命名模式:可加字尾 small 表示小圖, big 表示大圖,邏輯名稱可由多個單詞加下劃線組成,採用以下規則:
控制元件型別
模組名
邏輯名稱
控制元件型別模組名顏色
控制元件型別邏輯名稱
控制元件型別
顏色

btn_main_home.png 按鍵
divider_maket_white.png 分割線
ic_edit.png 圖示
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控制元件縮寫表

1644402-0fd5a490725e15c4.png
UI控制元件縮寫表.png

相關文章