編碼規範對於程序員尤其重要,能夠有效的幫助咱們進行code review
,提升代碼的可讀性,讓其餘人更快的理解代碼。
一個軟件的生命週期中,80%的花費都在於維護以及新功能的迭代,不少的時候都須要閱讀代碼,讀本身之前寫的代碼,讀別人寫的代碼,這樣規範代碼的優點就顯示出來了,符合規範的代碼可讓人簡單快速的理解理解代碼的意圖。
代碼規範先從命名規範開始,Android的命名規範主要涉及:html
先從Java源代碼開始提及,要說Java源代碼不得不先說下包名的命名規範。java
Android包名的命名規則,Andorid的包名通常採用域名的反轉,單詞全小寫。
好比域名爲www.example.com
的包名爲com.example
,省略www。
包名開始是一個頂級域名,好比com,cn,org等,包名使用.
作爲分隔符。第二位通常是二級域名,也能夠根據不一樣機構各自的命名。
後面的命名能夠用部門,項目等進行區分(也能夠沒有),例如:android
com.example.projectgit
在項目內能夠根據功能不一樣,按照模塊劃分不一樣的包名,com.example.project.user
表示用戶模塊。
也能夠根據層級的不一樣而劃分不一樣的包名,好比:com.example.prokect.activity
,就是Acitivity相關的包。
固然也能夠在不一樣層級裏面再按照模塊劃分包名,好比:com.example.project.activity.user
,表示和用戶有關的Activity。程序員
總結,包名通常是以反轉域名開始,後面跟有項目名稱(縮寫,也能夠沒有)。
後面能夠採用的區分包名方式:github
com.example.project.user
com.example.project.activity
com.example.project.activity.user
類名是一個或多個單詞組成,採用大駝峯命名,儘可能要使類名簡潔且利於描述,例如:SignInActivity
,類名規則以下:數組
名詞+動詞
的方式命名: LocationManage
XMLManage
一個類若是繼承了Android的組件,需在使用該組件的名稱做爲後綴,這樣容易區分該類的做用,好比:SgnInActivity
,UserInfoFragment
,FileUploadService
...
接口通常使用I開頭,採用大駝峯命名規則,好比:IPullToRefresh
。app
Android變量分爲三種:成員變量,靜態變量和常量。ide
成員變量通常採用小駝峯命名規則,第一單詞的首字母小寫,其後的首字母大寫。變量名通常不使用_和$開頭。例如:佈局
private Intent cropIntent;
變量名應簡短且易於描述,選用規則儘可能簡單,易於記憶和聯想。
儘可能避免單個字符的變量名,除非是用於一次性的臨時變量,臨時的整形變量通常命名爲 i,j,k,m,n。字符型的變量通常使用c,d,e。
對於View
變量的命名規則,若是View
是一個單詞的,採用第一個單詞小寫的方式+對應View的描述進行,例如:
private View viewUserInfo;
若是是兩個單詞組成的View,好比:TextView
,通常採用縮寫的方式,例如:
private TextView tvUserName;
通常狀況下Button
縮寫爲:btn。
爲了能夠很方便的區分靜態變量,靜態變量的命名通常採用小寫的s開頭,後面單詞的命名規則和成員變量
保持一致,例如:
private static Map
sCacheStrings;
常量命名規則通常是全部的單詞都是大寫,中間使用_(下劃線)分割,例如:
private static final float SCALE_RATE = 1.25f;
代碼中不容許出現單獨的字符串或數字常量,好比xx.equals("1")
,單獨的字符串或數字不利於理解和後期的維護。若是須要使用數據或字符,請按照他們的含義封裝成靜態常量,或者使用枚舉,for語句除外。
方法命名規則採用小駝峯命名法例如:onCreate(),onRun(),方法名通常採用動詞或者動名詞。
通常使用的方法名前綴。
另外對於方法的其餘一些規範:
Collections.emptyList()
Layout的命名規則須要和使用他們的組件對應,方便查找和維護,好比咱們在建立一個用戶信息的UserInfoActivity
,對應的Layout的命名就應該是activity_user_info.xml
。
對應Andorid組件的Layout
命名規則:
activity_user_info.xml
fragment_sign_up.xml
dialog_change_password.xml
item_user.xml
partial_stats_bar.xml
項目中使用的string和color的值原則上都是必須放在strings.xml
和colors.xml
中,不要放在Java代碼中,這樣的好處是可複用,提升維護性,減小非必要的代碼。xml
的資源命名,字母所有小寫,多個單詞之間使用_(下劃線)分割.
好比:
example
建議color的命名中體現其ARGB
值,好比:
#feb749
這樣的寫法對於代碼提示更加的友好,有利於對照標註圖查找顏色值。
##id命名
layout中使用的id
的單詞要所有小寫,單詞之間使用下劃線分割,使用名詞或者名詞詞組,應該經過id的命名能夠直接理解當前的View
要實現的功能.
例如:
@+id/tv_user_name_show
id命名的第一個單詞使用View的縮寫,若是View只是一個單詞,縮寫就是當前單詞。通常Button
的縮寫爲:btn。
Drawable
的命名規則根據使用的控件來命名,控件的縮寫在前面,後面使用表示其功能的一個或者多個單詞,中間使用使用_下劃線分割。好比:
ab_
,好比:ab_stacked.png
btn_
dialog_
divider_
ic_
menu_
notification_
tab_
Drawable
是有多個狀態的,在命名中體現出狀態的不一樣,好比:
_normal
結尾,好比btn_order_normal.9.png
_pressed
結尾_focused
結尾_disabled
結尾_selected
結尾其餘資源文件的命名須要遵照Android的規範便可,好比arrays.xml
數組文件,dimens.xml
分辨的配置,style.xml
樣式的配置,資源文件的ID命名規則都是字母小寫,使用下劃線分割的原則。
參考:
github.com/ribot/andro…
source.android.com/source/code…
google.github.io/styleguide/…