Android編碼規(guī)范指南


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è)源文件包含(按順序地):

  1. 許可證或版權(quán)信息(如有需要)
  2. package語句
  3. import語句
  4. 一個(gè)頂級(jí)類(只有一個(gè))以上每個(gè)部分之間用一個(gè)空行隔開。
  1. 許可證或版權(quán)信息
    如果一個(gè)文件包含許可證或版權(quán)信息,那么它應(yīng)當(dāng)被放在文件最前面。
  2. package語句
    package 語句不換行。
  3. import語句
    3.1 import不要使用通配符
    即,不要出現(xiàn)類似這樣的import語句:import java.util.*;
    3.2 不要換行
    圖例:
源文件結(jié)構(gòu)1.1.png

格式規(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è)空格
換行位置2.1.png
  • 使用空行
    以下情況使用一個(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ī)則

  1. 對(duì)所有標(biāo)識(shí)符都通用的規(guī)則
    標(biāo)識(shí)符只能使用ASCII字母和數(shù)字,因此每個(gè)有效的標(biāo)識(shí)符名稱都能匹配正則表達(dá)式\w+。

  2. 標(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 = "";

  1. 資源文件命名規(guī)范
    3.1 資源布局文件(XML文件(layout布局文件)):
    全部小寫,采用下劃線命名法
  • 必須以全部單詞小寫,單詞間以下劃線分割,使用名詞或名詞詞組。所有Activity或Fragment的contentView必須與其類名對(duì)應(yīng),對(duì)應(yīng)規(guī)則為:將所有字母都轉(zhuǎn)為小寫,將類型和功能調(diào)換(也就是后綴變前綴)。
資源布局文件命名3.1.png
  • 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控件縮寫表

UI控件縮寫表.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android編碼規(guī)范 源文件基礎(chǔ) 文件名 源文件以其最頂層的類名來命名,大小寫敏感,文件擴(kuò)展名為.java。 文...
    呼呼哥閱讀 1,129評(píng)論 0 0
  • Android 編碼規(guī)范 1. 前言 這份文檔是 Google Java Code Style 的譯文,并稍有添加...
    人失憶閱讀 505評(píng)論 0 3
  • 作者:李旺成 時(shí)間:2016年4月3日 1. 前言 這份文檔參考了 Google Java 編程風(fēng)格規(guī)范和 Goo...
    diygreen閱讀 40,258評(píng)論 19 224
  • 介紹 為什么需要編碼規(guī)范? 編碼規(guī)范對(duì)于程序員而言尤為重要,有以下幾個(gè)原因: ? 一個(gè)軟件的生命周期中,80%...
    lucas777閱讀 514評(píng)論 0 0
  • 源文件規(guī)范 文件名:源文件名必須和它包含的頂層類名保持一致,包括大小寫,并以.java作為后綴名。 文件編碼:所有...
    LilacZiyun閱讀 611評(píng)論 0 1

友情鏈接更多精彩內(nèi)容