四.Android編寫代碼規(guī)范

0.命名法

  • 駝峰式命名法(CamelCase)分大駝峰式命名法(UpperCamelCase)和小駝峰式命名法(lowerCamelCase)肤视。
//大駝峰 所有單詞首字母大寫
MainActivity
//小駝峰 第一個單詞首字母小寫攘已,其他單詞首字母大寫
onCreate
  • 下劃線命名法
//用下劃線分隔
android:id="@+id/txt_header_title"

1.項目名稱

  • 使用英文的項目名稱

2.包名

  • 包名全部小寫,連續(xù)的單詞只是簡單地連接起來,不使用下劃線难咕。

3.類名

類名=功能+類型后綴

類名都以大駝峰(UpperCamelCase)風(fēng)格編寫。
類名通常是名詞或名詞短語,接口名稱有時可能是形容詞或形容詞短語铅歼。

  • activity類,命名以Activity為后綴换可,如:LoginActivity
  • fragment類椎椰,命名以Fragment為后綴,如:ShareDialogFragment
  • service類沾鳄,命名以Service為后綴慨飘,如:DownloadService
  • adapter類,命名以Adapter為后綴译荞,如:CouponListAdapter
  • 工具類瓤的,命名以Util為后綴,如:EncryptUtil
  • 模型類磁椒,命名以BO為后綴堤瘤,如:CouponBO
  • 接口實現(xiàn)類,命名以Impl為后綴浆熔,如:ApiImpl
  • 測試類,命名以它要測試的類的名稱開始本辐,以Test結(jié)束桥帆。例如,HashTest或HashIntegrationTest慎皱。

4.import

  • import不要使用通配符老虫。
    如:
import java.test.*
  • import語句可分為以下幾組,按照這個順序茫多,每組由一個空行分隔:
    1. 所有的靜態(tài)導(dǎo)入獨立成組
    2. 第三方的包祈匙。每個頂級包為一組,字典序天揖。例如:android, com, junit, org
    3. java imports
    4. javax imports
import static java.lang.System.out;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.example.luffy.myapplication.TestActivity;

import java.math.BigInteger;

import javax.sql.RowSet;

5.常量和變量

  • 常量

常量=形容詞(名詞)+_+名詞

常量名命名模式為CONSTANT_CASE夺欲,全部字母大寫,用下劃線分隔單詞今膊。

  • 變量

變量={范圍描述+}意義描述+類型描述

小駝峰(lowerCamelCase)風(fēng)格編寫,這些名字通常是名詞或名詞短語些阅。

private TextView headerTitleTxt;

6.方法名

方法名=動詞+意義

方法名都以小駝峰(lowerCamelCase)風(fēng)格編寫。
方法名通常是動詞或動詞短語斑唬。

  • 初始化方法市埋,命名以init開頭,例:initView
  • 按鈕點擊方法恕刘,命名以to開頭缤谎,例:toLogin
  • 設(shè)置方法,命名以set開頭褐着,例:setData
  • 具有返回值的獲取方法坷澡,命名以get開頭,例:getData
  • 布爾型的判斷方法献起,命名以is或has洋访,或具有邏輯意義的單詞如equals镣陕,例:isEmpty

7.XML文件命名

控件縮寫如下:

控件 縮寫
TextView txt
EditText edt
Button btn
ImageButton ibtn
ImageView img
ListView list
RadioGroup group
RadioButton rbtn
ProgressBar progress
SeekBar seek
CheckBox chk
Spinner spinner
TableLayout table
TableRow row
LinearLayout llayout
RelativeLayout rlayout
ScrollView scroll
SearchView search
TabHost host
TabWidget widget

7.1 控件id命名

id=控件縮寫_{范圍_}意義

android:id="@+id/txt_header_title"
android:id="@+id/btn_login"

7.2 layout.xml命名

layout.xml=組件類型_{范圍_}功能

范圍可選谴餐,只在有明確定義的范圍內(nèi)才需要加上。以下為幾種常用的組件類型命名:

  • activity_{范圍_}功能呆抑,為Activity的命名格式
  • fragment_{范圍_}功能岂嗓,為Fragment的命名格式
  • dialog_{范圍_}功能,為Dialog的命名格式
  • item_list_{范圍_}功能鹊碍,為ListView的item命名格式
  • item_grid_{范圍_}功能厌殉,為GridView的item命名格式
  • header_list_{范圍_}功能,為ListView的HeaderView命名格式
  • footer_list_{范圍_}功能侈咕,為ListView的FooterView命名格式

7.3 strings的命名

strings=類型_{范圍_}功能

以下為幾種常用的命名:

  • 頁面標(biāo)題公罕,命名格式為:title_頁面
  • 按鈕文字,命名格式為:btn_按鈕事件
  • 標(biāo)簽文字耀销,命名格式為:label_標(biāo)簽文字
  • 選項卡文字楼眷,命名格式為:tab_選項卡文字
  • 消息框文字,命名格式為:toast_消息
  • 編輯框的提示文字,命名格式為:hint_提示信息
  • 圖片的描述文字罐柳,命名格式為:desc_圖片文字
  • 對話框的文字掌腰,命名格式為:dialog_文字
  • menu的item文字,命名格式為:action_文字

7.4 colors的命名

colors=前綴{_控件}{_范圍}{_后綴}

控件张吉、范圍齿梁、后綴可選,但控件和范圍至少要有一個肮蛹。

  • 背景顏色勺择,添加bg前綴
  • 文本顏色,添加text前綴
  • 分割線顏色伦忠,添加div前綴
  • 區(qū)分狀態(tài)時酵幕,默認(rèn)狀態(tài)的顏色,添加normal后綴
  • 區(qū)分狀態(tài)時缓苛,按下時的顏色芳撒,添加pressed后綴
  • 區(qū)分狀態(tài)時,選中時的顏色未桥,添加selected后綴
  • 區(qū)分狀態(tài)時笔刹,不可用時的顏色,添加disable后綴

7.5 drawable的命名

drawable=前綴{_控件}{_范圍}{_后綴}

控件冬耿、范圍舌菜、后綴可選,但控件和范圍至少要有一個亦镶。

  • 圖標(biāo)類日月,添加ic前綴
  • 背景類,添加bg前綴
  • 分隔類缤骨,添加div前綴
  • 默認(rèn)類爱咬,添加def前綴
  • 區(qū)分狀態(tài)時,默認(rèn)狀態(tài)绊起,添加normal后綴
  • 區(qū)分狀態(tài)時精拟,按下時的狀態(tài),添加pressed后綴
  • 區(qū)分狀態(tài)時虱歪,選中時的狀態(tài)蜂绎,添加selected后綴
  • 區(qū)分狀態(tài)時,不可用時的狀態(tài)笋鄙,添加disable后綴
  • 多種狀態(tài)的师枣,添加selector后綴(一般為ListView的selector或按鈕的selector)

8.注釋

8.1 文件頭注釋

文件頂部統(tǒng)一添加版權(quán)聲明,聲明的格式如下:

/**
* @FileName:${file_name}(文件名)
 * @Copyright:   ${name}, All rights reserved(版權(quán))
 * @Description:${todo}(用一句話描述該文件做什么)
 * @author:       ${author} (作者)
 * @data:        ${date} ${time}(時間)
 * @version:     ${version}(版本) 
 */

8.2 方法注釋

添加注釋萧落,說明該方法的用途和參數(shù)說明践美,以及返回值的說明劳殖。

/** 
 * 登錄 
 * @param numberFirst 第一個數(shù)
 * @param numberSecond 第二個數(shù)
 * @param result 兩個和的結(jié)果
 */
public int add(int numberFirst, int numberSecond){
    return result;
}

8.3 變量和常量注釋

注釋說明,優(yōu)先采用右側(cè)//來注釋拨脉,若注釋說明太長則在上方添加注釋哆姻。

private String name; // 券名稱

/**
  *當(dāng)前狀態(tài)的的數(shù)字,可以進(jìn)行修改
  */
private final int CURRENT_NUMBER=1;

9.總結(jié)

名稱 結(jié)構(gòu)
類名 類名=功能+類型后綴
常量 常量=形容詞(名詞)+_+名詞
變量 變量={范圍描述+}意義描述+類型描述
方法名 方法名=動詞+意義
id id=控件縮寫_{范圍_}意義
layout.xml layout.xml=組件類型_{范圍_}功能
string strings=類型_{范圍_}功能
colors colors=前綴{_控件}{_范圍}{_后綴}
drawable drawable=前綴{_控件}{_范圍}{_后綴}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末玫膀,一起剝皮案震驚了整個濱河市矛缨,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌帖旨,老刑警劉巖箕昭,帶你破解...
    沈念sama閱讀 222,183評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異解阅,居然都是意外死亡落竹,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評論 3 399
  • 文/潘曉璐 我一進(jìn)店門货抄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來述召,“玉大人,你說我怎么就攤上這事蟹地』” “怎么了?”我有些...
    開封第一講書人閱讀 168,766評論 0 361
  • 文/不壞的土叔 我叫張陵怪与,是天一觀的道長夺刑。 經(jīng)常有香客問我,道長分别,這世上最難降的妖魔是什么遍愿? 我笑而不...
    開封第一講書人閱讀 59,854評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮耘斩,結(jié)果婚禮上沼填,老公的妹妹穿的比我還像新娘。我一直安慰自己煌往,他們只是感情好倾哺,可當(dāng)我...
    茶點故事閱讀 68,871評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著刽脖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪忌愚。 梳的紋絲不亂的頭發(fā)上曲管,一...
    開封第一講書人閱讀 52,457評論 1 311
  • 那天,我揣著相機與錄音硕糊,去河邊找鬼院水。 笑死腊徙,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的檬某。 我是一名探鬼主播撬腾,決...
    沈念sama閱讀 40,999評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼恢恼!你這毒婦竟也來了民傻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評論 0 277
  • 序言:老撾萬榮一對情侶失蹤场斑,失蹤者是張志新(化名)和其女友劉穎漓踢,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體漏隐,經(jīng)...
    沈念sama閱讀 46,465評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡喧半,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,543評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了青责。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片挺据。...
    茶點故事閱讀 40,675評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖脖隶,靈堂內(nèi)的尸體忽然破棺而出吴菠,到底是詐尸還是另有隱情,我是刑警寧澤浩村,帶...
    沈念sama閱讀 36,354評論 5 351
  • 正文 年R本政府宣布做葵,位于F島的核電站,受9級特大地震影響心墅,放射性物質(zhì)發(fā)生泄漏酿矢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,029評論 3 335
  • 文/蒙蒙 一怎燥、第九天 我趴在偏房一處隱蔽的房頂上張望瘫筐。 院中可真熱鬧,春花似錦铐姚、人聲如沸策肝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽之众。三九已至,卻和暖如春依许,著一層夾襖步出監(jiān)牢的瞬間棺禾,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評論 1 274
  • 我被黑心中介騙來泰國打工峭跳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留膘婶,地道東北人缺前。 一個月前我還...
    沈念sama閱讀 49,091評論 3 378
  • 正文 我出身青樓,卻偏偏與公主長得像悬襟,于是被迫代替她去往敵國和親衅码。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,685評論 2 360

推薦閱讀更多精彩內(nèi)容