命名規范
駝峰命名法:又稱小駝峰命名法。除了首個單詞首字母小寫除外,其余所有單詞所有首字母都要大寫
帕斯卡命名法:又稱大駝峰命名法。所有單詞首字母大寫
1、包的命名規范
建議采用如下規則:【com】.【公司名/組織名】.【項目名稱】.【模塊名】
常見的包分層結構如下:
com.xxx.xxx.view –> 自定義view 或者是View接口
com.xxx.xxx.activities –> activity類
com.xxx.xxx.fragments –> fragment類
com.xxx.xxx.adapter –> 適配器相關
com.xxx.xxx.utils –> 公共工具類
com.xxx.xxx.bean –> 實體類
com.xxx.xxx.service –> service服務
com.xxx.xxx.broadcast –> 廣播接收器
com.xxx.xxx.db –> 數據庫操作類
com.xxx.xxx.persenter –> 中間對象
com.xxx.xxx.model –> 數據處理類
2、類的命名規范
Android中類的命名與JAVA開發采用一致的規范即可。
Activity –> xxxActivity.java
Application –> xxxApp.java
Fragment –> xxxFragment.java
Service –> xxxService.java
BroadcastReceiver –> xxxBroReceiver.java
ContentProvider –> xxxProvider.java
Adapter –> xxxAdapter.java
Handler –> xxxHandler.java
接口 –> xxxInterface.java
接口實現類 –> xxxImpl.java
Persenter –> xxxPersenter.java
公共父類 –> BaseActivity.java、BaseFragment.java、- BaseAdapter.java等
util類 –> LogUtil.java
數據庫類 –> BaseSQLiteDBHelper.java
3、變量的命名規范
控件命 | xml文件對應id | java文件對應全局變量 |
---|---|---|
LinearLayout | lay_ xxx | mLayLogin |
RelativeLayout | lay_ xxxt | mLayLogin |
FrameLayout | lay_ xxx | mLayLogin |
ScrollView | scv_xxx | mScrollView |
Button | btn_xxx | mBtnLogin |
ImageView | iv_xxxt | mIvLogin |
TextView | tv_xxx | mTvUserName |
EditText | et_xxx | mEtUserName |
CheckBox | cb_xxx | mCbSlect |
RadioGroup | rg_xxx | mRg |
RadioButton | rb_xxx | mRb |
Spinner | spr_xxx | mSpineer |
GridView | gv_xxx | mGriView |
ListView | lv_xxx | mListView |
RecycleView | cv_xxx | mRecycleView |
3.1成員變量
/**
* 成員變量命名以m開頭
*/
private Context mContext = null;
private boolean mEatKeyUpEvent;
private Resources mResources;
/**
* 靜態變量命名以s開頭
*/
private static String sTag = null;
3.2 函數方法的命名
函數方法的命名一般是多個動詞+名詞組合,同樣使用駝峰式命名,方法名首字母小寫,要求命名能夠描述出該方法的作用,并且盡可能的給函數方法進行注釋說明
initXxx():初始化相關方法,使用init-作為前綴,例如:初始化布局initView();
isXxx():isXxxx()或者checkXxx()返回值為指定類型,使用is-或者check-為前綴;
getXxx():返回某種類型的值,使用get-為前綴;
processXxx():對數據進行處理,以process-為前綴;
displayXxx():彈出提示框或提示信息,以display-為前綴;
saveXxx():保存數據相關的方法,以save-為前綴;
resetXxx():對數據重置,或者是界面重置,使用reset-為前綴;
clearXxx():清除操作相關,使用clear-為前綴;
drawXxx():繪制數據或效果相關,使用draw-為前綴。
4、資源文件命名規范
4.0 anim目錄命名規范
fade_in.xml
fade_out.xml
slide_in_from_left.xml
slide_in_from_top.xml
4.1 layout目錄命名規范
activity_xxx.xml
frament_xxx.xml
item_xxx.xml
4.2 drawable目錄命名規范
全部單詞小寫,單詞之間采用下劃線分割。
圖標 – > ic_xxx.png –> ic_logo.png
背景圖 –> bg_xxx.jpg –> bg_splash.jpg
selector –> selector_login_btn.xml
shape –> shape_login_btn.xml
圖片狀態 –> bg_login_btn_pressed.jpg & - bg_login_btn_unpressed.jpg
4.3 menu目錄命名規范
- menu_main.xml
4.4 value目錄命名規范
- 4.4.1 color.xml命名標準
顏色命名標準為color_顏色色值
<color name="color_FFFFFF">#FFFFFF</color>
- 4.4.2 string.xml命名標準
1. 在命名的時候,最好能以一個 xxxx start 開頭 然后以 xxxx end 結束,表明一個模塊的資源文件的區塊
2. 同個模塊的資源文件,最好能以一個統一的前綴,然后再加以后面的詳細描述,這樣比較能清晰而且也能減少出現類似資源文件的混淆
3. 盡量多的在名字里表明用處,多點解釋能夠更好的讓其他人明白你的用途,總比別人去猜或者一定要進來看你的資源文件然后去理解好的多吧
<!-- 網絡錯誤提示 start -->
<string name="network_tips_error">哎呀,網絡有點問題</string>
<string name="network_tips_im_error">當前網絡不可用,請檢查你的網絡設置</string>
<string name="network_tips_unknown_error">未知錯誤</string>
<!-- 網絡錯誤提示 end-->
<!-- tabhost欄標題 start -->
<string name="tabhost_title_home">首頁</string>
<string name="tabhost_title_discovery">精選</string>
<string name="tabhost_title_appointment">預約</string>
<string name="tabhost_title_my">我的</string>
<!-- tabhost欄標題 end -->
<!-- 頁面標題 start -->
<string name="page_title_index">首頁</string>
<string name="page_title_appointment">預約</string>
<string name="page_title_my_wallet">我的錢包</string>
<string name="page_title_my_artisan_detail">技師詳情</string>
<string name="page_title_my_product_detail">作品詳情</string>
<!-- 頁面標題 end -->
-
4.4.3 styles.xml命名標準
1. 如果是有存在父子關系的,可以將這幾個樣式放在附近一起,并且命名以同樣的前綴命名 2. 其他的參考string文件的命名 3. 為什么這里不需要start和end?因為string是單標簽的,基本上所有的都是以<string></string>來定義,而style文件一個區塊已經用<style></style>來幫助分區塊了,所以可以不用start和end來幫助標記。 <!-- 訂單確認頁的textview樣式 --> <style name="order_submit_text_style"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">48dp</item> <item name="android:textColor">@color/Black</item> <item name="android:textSize">14sp</item> <item name="android:paddingLeft">15dp</item> <item name="android:layout_marginLeft">8dp</item> <item name="android:layout_marginRight">8dp</item> </style>
5、編碼規范
代碼中盡量不要出現中文。注釋和除外。代碼中通過strings.xml引用來顯示中文。
控件聲明放在activity級別,這樣在activity其他地方可以使用。
在一個View.OnClickListener中處理所有的點擊事件邏輯,這樣看起來很集中和直觀。
strings.xml中使用%1sd等實現字符串的通配。
布局文件中的字體大小,都定義在dimens.xml中。
有關margin和padding的值也都放在dimens.xml中。
界面之間傳值盡量使用intent方式。少用全局變量。
不建議在布局文件中添加點擊事件。
數據類型轉換一定要校驗。
使用常量代替枚舉。
實體不要在不同模塊間共享,但是可以在統一模塊下的不同頁面共享。
建議采用左括號與方法名稱在同一行的代碼格式來進行代碼的編寫和格式化。貌似左括號在下一行是C#的形式。
業務稍微復雜一些,都有可能提煉一個BaseActivity或BaseFragment出來做為公共父類。
類注釋一定要寫,管家的方法也要寫方法注釋。常量盡量寫注釋。