Android命名規(guī)范

命名規(guī)范

1. 包命名

規(guī)則:包名全部小寫,采用反域名命名規(guī)則,一級包名是頂級域名,通常為com, edu, gov, net, org等,二級包名,通過為公司名或部門名或者個人名,三級包名通常為項目名,四級包名為模塊名或者層級名。以下是從層級包名來劃分android項目中采用的模塊分包


com.shanghaibirkin.xxxx.ui//所有用戶界面 home代表首頁模塊,main代表主界面模塊,person代表用戶信息模塊,trade代表交易模塊,wealth代表我的財富模塊.

com.shanghaibirkin.xxxx.ui.person//用戶模塊

com.shanghaibirkin.xxxx.ui.person.activity//用戶模塊的activity

com.shanghaibirkin.xxxx.ui.person.adapter//僅用戶模塊的適配器

com.shanghaibirkin.xxxx.ui.person.entity//僅用戶模塊的實體類模塊

com.shanghaibirkin.xxxx.ui.person.fragment//僅用戶模塊的fragment模塊

com.shanghaibirkin.xxxx.ui.person.hepler//僅用戶模塊的工具類

com.shanghaibirkin.xxxx.ui.person.inter//僅用戶模塊的接口

com.shanghaibirkin.xxxx.ui.person.widget//僅用戶模塊的自定義控件

com.shanghaibirkin.xxxx.base//項目中的基類

com.shanghaibirkin.xxxx.library//項目中用到的開源庫

com.shanghaibirkin.xxxx.widget//所有模塊都能用到的自定義的View類

com.shanghaibirkin.xxxx.util//所有模塊常用的公共工具類(網(wǎng)絡(luò), IO, 日志等)


2.資源文件分包

配置我們的app文件夾下的build.gradle文件

如我的

//資源分包

sourceSets {

? ? main {

? ? jniLibs.srcDirs = ['libs']

? ? res.srcDirs =

? ? [

? ? ? ? 'src/main/res',

? ? ? ? 'src/main/res/layouts',

? ? ? ? 'src/main/res/layouts/main',

? ? ? ? 'src/main/res/layouts/home',

? ? ? ? 'src/main/res/layouts/wealth',

? ? ? ? 'src/main/res/layouts/person',

? ? ? ? 'src/main/res/layouts/trade'

? ? ?]

}

}

配置完之后,sync project一下就成功了,項目結(jié)構(gòu)就變成了這樣,就可以對應(yīng)上面的模塊分包

文件夾是要自己創(chuàng)建的,因為自己創(chuàng)建的文件夾gradle不能解析為資源文件來使用,所以需要在build.gradle中進行配置


3. 類命名

規(guī)則:采用大駝峰式命名法,首字母大寫,盡量避免縮寫,除非該縮寫是眾所周知的,比如HTML,URL,如果類名稱包含單詞縮寫,則單詞縮寫的每個字母均應(yīng)大寫。以下列舉的是android中幾種最為常用的類的命名。

classLoginActivity;//activity類classDiscoverFragment;//fragment類classAnalysisService;//service類classWakeupRankAdapter;//adapter類classStringUtils;//工具類classUserBean;//模型類classApiImpl;//接口實現(xiàn)類


4. 接口命名

規(guī)則:命名規(guī)則與類命名一樣采用大駝峰式命名法,首字母大寫,多以able, ible, er結(jié)尾

interfaceComparable;interfaceAccessible;interfaceOnClickListener;


5. 方法

規(guī)則:采用小駝峰命名法,首字母小寫,方法名采用動詞或動名詞結(jié)構(gòu)。方法的命名應(yīng)該與方法的真正行為具有對應(yīng)關(guān)系,下面給出一些方法名的動詞前綴標示的建議。

方法名描述

getXX()獲取某個屬性的返回值

setXX()設(shè)置某個屬性值

initXX()初始化方法,如初始化布局initView()

isXX()判斷是否true的方法;

checkXX()與isXX意義等價

processXX()處理數(shù)據(jù)

updateXX()更新數(shù)據(jù)

saveXX()保存數(shù)據(jù)

addXX()添加數(shù)據(jù)

deleteXX()刪除數(shù)據(jù)

resetXX()重置數(shù)據(jù)

clearXX()清除數(shù)據(jù)

removeXX()移除數(shù)據(jù)或者視圖等,如removeView();

drawXX()繪制數(shù)據(jù)或者視圖


6. 變量

規(guī)則:采用小駝峰命名法,首字母小寫。變量名應(yīng)簡短且能描述其用途,盡量避免拼音,無意義地縮寫。除非是臨時變量,否則不建議使用單個字符的變量名,如i, j, k。對于變量命名,還有一種風格是google的以字母m為前綴(m為member縮寫),在android 源碼中隨處可見。

privateintuserName;//java的一般性風格privateintmUserName;//google的成員變量風格,m為member的縮寫


7. 常量

規(guī)則:常量使用全大寫字母加下劃線的方式命名。

publicstaticfinalintTAG="tag";publicstaticfinalintSTART_CLASS_NOT_FOUND = -2;



8. 控件變量名

規(guī)則:首先需要滿足第5條變量的規(guī)則,

模式:邏輯名 + view縮寫

ButtonsendNewsBtn;TextViewpasswordTxt;

9. 控件ID

規(guī)則:view縮寫_模塊名_邏輯名

android:id="@+id/btn_news_send"http://樣例

view縮寫如下:

View縮寫

TextView tv

EditText edt

Button btn

ImageButton ibtn

ImageView img

ListView lv

RadioGroupr rgp

RadioButton rbtn

ProgressBar pb

SeekBar sb

CheckBox cbx

Spinner spn

TableLayout tbl

TableRow tbr

LinearLayout ll

RelativeLayout rl

ScrollView scll

SearchView sv

TabHost tbh

TabWidget tvg


10. 資源文件名

10.1 layout的文件命名

規(guī)則:全部小寫,采用下劃線命名法。layout文件命名:組件類型_{模塊_}功能.xml

activity_news_title.xml//樣例

命名規(guī)范組件類型

activity_{模塊_}功能Activity命名格式

fragment_{模塊_}功能Fragment命名格式

dialog_{模塊_}功能Dialog命名格式

popup_{模塊_}功能PopupWindow命名格式

item_list_{模塊_}功能ListView的item命名格式

item_grid_{模塊_}功能GridView的item命名格式

10.2? drawable的文件命名

模式:前綴{_控件}{_范圍}{_后綴},控件、范圍、后綴可選

bg_login_pressed.png//樣例

區(qū)分狀態(tài)時,默認狀態(tài)添加normal后綴

區(qū)分狀態(tài)時,按下時的狀態(tài)添加pressed后綴

區(qū)分狀態(tài)時,選中時的狀態(tài)添加selected后綴

區(qū)分狀態(tài)時,不可用時的狀態(tài)添加disable后綴

多種狀態(tài)的添加selector后綴

mipmap命名細則

圖標類添加ic前綴

背景類添加bg前綴

分隔類添加div前綴

默認類添加def前綴

10.3 動畫的文件命名

規(guī)則:{范圍_}動畫類型_動畫方向。

login_fade_in.xml//樣例

動畫命名描述

fade_in淡入

fade_out淡出

push_down_in從下方推入

push_down_out從下方推出

slide_in_from_top從頭部滑動進入

zoom_enter變形進入

shrink_to_middle中間縮小


11. 資源內(nèi)的name命名

11.1 strings.xml

模式:activity名_{范圍_}邏輯名

用戶名//樣例

11.2 colors.xml

模式:前綴{_控件}{_范圍}{_后綴}, 控件、范圍、后綴可選,

#FFFFFF//樣例

colors命名細則

背景顏色添加bg前綴

文本顏色添加text前綴

分割線顏色添加div前綴

區(qū)分狀態(tài)時,默認狀態(tài)的顏色添加normal后綴

區(qū)分狀態(tài)時,按下時的顏色添加pressed后綴

區(qū)分狀態(tài)時,選中時的顏色添加selected后綴

區(qū)分狀態(tài)時,不可用時的顏色添加disable后綴

代碼風格

原則

不要直接忽略Exceptions

例如下面的示例,永遠不要這樣做,無法預(yù)測未來可能的變化

voidsetServerPort(Stringvalue){try{? ? ? ? ? serverPort = Integer.parseInt(value);? ? ? }catch(NumberFormatException e) { }? }

正確的做法應(yīng)該如下:

voidsetServerPort(Stringvalue) throws ConfigurationException{try{? ? ? ? ? serverPort = Integer.parseInt(value);? ? ? }catch(NumberFormatException e) {thrownewConfigurationException("Port "+value+" is not valid.");? ? ? }? }

import采用完全限定名

不提倡:

importfoo.*;

正確做法:

importfoo.Bar;

括號風格:

不提倡:

if(condition)? ? ? body();

正確做法:

if(condition) {? ? ? body();? }

使用空格來縮進

使用4個空格縮進來代表塊,而絕不使用tab鍵;

使用8個空格來代表行包裹,包括函數(shù)調(diào)用。

注釋

1.類注釋

每個類完成后應(yīng)該有作者姓名和聯(lián)系方式的注釋,對自己的代碼負責

/**

作者: nieshun

時間:?

描述: 用戶登錄

聯(lián)系方式:

*/

public class Login{

}

2.方法注釋

每一個成員方法(包括自定義成員方法、覆蓋方法、屬性方法)的方法頭都必須做方法頭注釋

/*

方法名:

功? ? 能:

參? ? 數(shù):

返回值:無

*/

3.快注釋

private class MessageObserver extends ContentObserver {

public MessageObserver() {

super(mainHandler);

}

publicvoidonChange(booleanhasChanged){// 發(fā)送更新UI的消息mHandler.sendMessage(mHandler.obtainMessage(0x2));? }? }

4.資源文件注釋

#FF0000

#0079FF

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

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

  • 序:團隊開發(fā)有一套自己的命名規(guī)范,方便大家review和code,今天我總結(jié)一下,后面有需要用到的,可以直接按這套...
    tomatozheng閱讀 2,482評論 0 1
  • 無論是哪種編程語言的學習,我們的命名都要有一定的規(guī)范才能更好的進行團隊協(xié)作,更好的進行代碼的的二次開發(fā)。所以在這里...
    李慶文閱讀 742評論 2 3
  • Android開發(fā)代碼規(guī)范相關(guān)系列文章: Android命名規(guī)范 Android編碼規(guī)范 俗話說:無規(guī)矩不成方圓,...
    looper1211閱讀 1,345評論 1 4
  • 作者簡介 原創(chuàng)微信公眾號郭霖 WeChat ID: guolin_blog 大家早上好,新的一周開始啦! 本篇來自...
    木木00閱讀 643評論 1 4
  • 咦,這是誰呀,人沒到聲音先到。說話快的像“機關(guān)槍”一樣。他就是這個虎頭虎腦的小男生,魏子軒。魏是魏國的魏。子是兒子...
    魏子軒閱讀 3,046評論 1 0

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