1 命名規(guī)范
命名規(guī)則
大駝峰命名(UpperCamelCase):每個單詞的第一個字母大寫题画,其他字母小寫。
小駝峰命名(lowerCamelCase):如果僅有一個單詞苍息,那么所有字母全部小寫壹置,如果是兩個及以上的單詞組成的名稱表谊,那么除了第一個單詞是全部小寫外,其他但是的首字母大寫难咕,其他字母小寫距辆。
所有的命名都應(yīng)該以字母(A-Z或者a-z)、美元符($)或者下劃線(_)開始跨算;
首字符之后可以是字母(A-Z或者a-z)、美元符($)或者下劃線(_)或者數(shù)字的任何字符組合步势;
嚴(yán)禁使用關(guān)鍵詞命名背犯;
嚴(yán)禁使用拼音與英文的混合方式命名,更不允許使用中文的方式命名媳板;
命名盡量使用英文泉哈,除了通用的拼音(Beijing)可視為英文,其他的拼音都不是英文奕纫;
命名除了常見的英文縮寫烫沙,盡量避免使用縮寫匹层;
命名需要簡潔锌蓄,見名知意,通俗易懂您访;
1.1 包的命名
包的命名由全部小寫的單詞組成剪决。一般使用公司的域名的作為自己程序包的唯一前綴檀训,使用倒域名規(guī)則享言,例如:com.baidu.項目名,然后針對每個具體的模塊在區(qū)分每個模塊包名览露,例如:論壇模塊的整體包名:com.baidu.項目名.tribune肛循。
1.2 類的命名
類的命名遵循大駝峰命名的規(guī)則铭腕,常見類的命名規(guī)則如下:
類描述舉例
Activity類以Activity為后綴啟動頁面:LaunchActivity
Fragment類以Fragment為后綴論壇推薦列表:TribuneRecommendFragment
Adapter類以Adapter為后綴論壇適配器:TribuneAdapter
ViewHolder類以ViewHolder為后綴廣告類型:AdViewHolder
Bean類以Bean為后綴新聞實體類:NewsBean
Model類以Model為后綴論壇推薦Model:TribuneRecommendModel
工具類以Util為后綴網(wǎng)絡(luò)工具類:NetWorkUtil
Service類以Service為后綴音頻服務(wù):AudioService
BroadcastReceiver 類以Receiver為后綴音頻廣播:AudioReceiver
ContentProvider類以Provider為后綴聯(lián)系人的內(nèi)容提供者:ContactsProvider
Dialog類以Dialog為后綴加載:LoadingDialog
監(jiān)聽器類以Listener為后綴網(wǎng)絡(luò)監(jiān)聽:NetWorkListener
自定義基礎(chǔ)類以Base為前綴例如:BaseActivity累舷,BaseFragment
抽象類以 Abstract或者Abs為前綴例如:AbsBean
管理類以Manager為后綴聯(lián)系人管理類:ContactsManager
解析類以Parser為后綴新聞Json解析類: NewsJsonParser
1.3 接口的命名
接口命名遵循大駝峰命名的規(guī)則夹孔,以大寫的I開頭,表示這是一個接口搭伤,以able或ible截尾。
1.4 變量命名
變量的命名遵循小駝峰命名的規(guī)則身堡,其中控件的變量建議使用控件縮寫+邏輯名稱的格式拍鲤,例如:
private TextView tvUserName;。
其中布局中每個控件的id命名為控件縮寫_邏輯名稱,例如:tv_user_name擅这。
常見控件的縮寫如下:
控件縮寫控件縮寫
TextViewtvEditTextet
ButtonbtnImageViewiv
ListviewlvRecyclerViewrv
GridViewgvWebViewwv
LinearlayoutllRlativeLayoutrl
FrameLayoutflScrollViewsv
ProgressBarpbImageButtonib
CheckBoxcbRadioButtonrb
RadioGrouprgSeekBarsb
VideoViewvvSurfaceViewsv
1.5 常量的命名
常量名稱的每個單詞都大寫景鼠,并且每個單詞之間通過下劃線(_)連接,例如:
publicstaticfinalintREQUEST_KEY_CODE =1;
1.6 方法的命名
方法的命名遵循小駝峰命名的規(guī)則铛漓,以動詞+名詞的方式組成,例如初始化view:initView()逐哈。
1.7 資源文件命名
全部小寫问顷,并通過下劃線連接禀梳。
1.7.1 布局文件的命名
以對應(yīng)的類別名稱為前綴肠骆,然后緊跟模塊包名,最后是邏輯名稱蚀腿,他們之間通過下劃線連接。
常見的命名如下:
布局類型布局前綴舉例
Activityactivity_模塊名_求助主頁面:activity_sos_main
Fragmentfragment_模塊名_論壇推薦:fragment_tribune_recommend
列表itemitem_模塊名_論壇推薦:item_tribune_recommend
Dialogdialog_論壇詳情頁回復(fù):dialog_tribune_reply
Includeinclude_全局通用的標(biāo)題欄:include_global_title
1.7.2 動畫資源文件命名
動畫效果命名風(fēng)格
淡入/淡出fade_in/fade_out
從某個方向淡入/淡出fade_方向_in(out)
從某個方向彈入/彈出push_方向_in(out)
從某個方向滑入/滑出slide_方向_in(out)
1.7.3 value中name命名
1.7.3.1 strings.xml
命名格式:string_模塊名_邏輯功能廓脆,例如:啟動頁面的跳過:
name="string_launch_jump">跳過
1.7.3.2 colors.xml
命名格式:color_顏色值磁玉,其實顏色值是16進(jìn)制,例如:白色:
name="color_ffffff">#FFFFFF
1.7.3.3 styles.xml
遵循大駝峰命名的規(guī)則席赂,XXXStyle时迫,例如:LoadingStyle。
1.7.3.4 dimens.xml
文字:font_字號掠拳,字號單位是sp;
距離:space_距離值,距離單位是dp;
控件的寬高:具體控件width/height寬高值烧董,寬高值單位是dp胧奔。
代碼如下:
18sp16dp48dp24dp
2 格式規(guī)范
2.1大括號的使用
大括號的開始在代碼塊開始的行尾预吆,結(jié)束在代碼塊同一縮進(jìn)的行首;
條件語句一定使用大括號拐叉;
左大括號前不換行,右大括號前換行宿礁,除了if-else蔬芥,try-catch;
大括號內(nèi)沒有任何代碼控汉,不換行。
2.2 空格的使用
表示分隔時用一個空格返吻;
運算符兩邊用一個空格隔開;
逗號語句后面如果不換行街佑,也用一個空格捍靠。
3 注釋
3.1 類沐旨、接口注釋
使用多行注釋的方式榨婆,規(guī)則如下:
/**
* Author:開發(fā)人員姓名
* Email:開發(fā)人員郵箱
* Description:? 描述該類/接口實現(xiàn)的具體功能
* Date: 2017/4/20 14:16? 創(chuàng)建該類的時間
*/
3.2 方法注釋
3.2.1 整體方法注釋
使用多行注釋的方式纲辽,規(guī)則如下:
/*** 描述方法實現(xiàn)的功能*@params? 說明參數(shù)含義*@return說明返回值含義*/
3.2.2 方法內(nèi)部注釋
方法內(nèi)部單行注釋,在被注釋語句上方另起一行拖吼,使用“//”注釋。
方法內(nèi)部注釋篙议,使用/* ... */注釋怠硼。
注釋與代碼要對齊,*及// 與其后面的文字之間空一格香璃。
3.3 變量注釋
使用單行注釋的方式,使用“//”注釋姻乓,在變量后面天啊及眯牧,如果注釋太長,在變量上方添加学少。
3.4 xml注釋
<!--注釋內(nèi)容-->
以上,是我目前總結(jié)的常用的Android代碼規(guī)范扣囊,希望對大家有所幫助,以后會根據(jù)自己對代碼規(guī)范的要求提升繼續(xù)補(bǔ)充如暖!