開發規範,對於初學者可能不會太在意,但真正項目中,規範尤爲重要。一個好的開發規範,可以說是一種藝術,不僅僅有利於後期維護,對代碼的可讀性,美觀性都有影響。下面整理了android項目開發相關的規範。個人知識有限,還望大家補充。
命名規範
創建項目時的項目名稱:
- 最好是英文,在項目做完簽名打包apk的時候,省去一些麻煩。(中文也不影響,但最後要改過來,不然不好打包)
包名的組織:
爲防止應用程序在手機中安裝失敗,必須要保證寫的項目的包名是唯一的。一般以公司的域名的倒寫作爲包名的第一部分;第二部分爲應用名;第三部分爲具體包的模塊名。【域名倒寫+應用名稱+包的具體模塊】
舉個實際例子:我之前爲蘇州科技學院做了一個打卡助手的應用。學校域名爲www.usts.edu.cn。那包名就可以這樣寫:cn.edu.usts.cardhelper,當然這隻能作爲應用全局的包名,爲使邏輯清晰,需繼續劃分各個不同的包,這裏有兩種劃分形式:一種是按功能模塊來劃分,一種是按android的一些組件來分。後面一種用的多一些。
簡單說一下後面一種常用的包名的組織 有 activities,fragments,service,receiver,adapter,domain,utils,db,dao,test等
附一張打卡助手的項目包名組織截圖:
佈局文件命名:
如果佈局文件是爲activity寫的,那麼就這樣命名:activity_main, activity_splash, activity_login
如果佈局文件是爲fragment寫的,那麼就這樣命名:fragment_one, fragment_two, fragment_three
如果佈局文件是爲listview的一個條目寫的,那麼就這樣命名:item_video_list, item_music_list
如果佈局文件是單獨的一個佈局,是寫給其它佈局用的,比如常見的標題欄的佈局,就可以這樣命名:layout_title
附一張手機影音的項目佈局文件截圖:
佈局文件控件的命名:
可以遵循這樣一種原則:控件簡寫 + 功能
如:tv_title 表示顯示標題的TextView iv_play 表示播放功能的ImageView如果多個佈局文件有相同功能的控件,依然可以用上面的原則,但爲了便於自己區分,可以這樣:簡寫 + 所處的佈局文件 + 功能
如:tv_splash_title, tv_main_title 分別表示顯示splash頁面標題的TextView和顯示main頁面的標題
資源圖片的命名:
可以遵循這樣一種原則:所屬控件/activity+功能+狀態
如:btn_play_default,btn_play_pressed,main_tab_query_default,main_tab_query_pressed當然這裏不唯一,只要自己不會忘了當初命名的所遵循的規範即可。
附幾張圖片資源的命名圖:
資源文件的命名(drawable文件夾下的.xml文件)
該文件夾下,主要放一些選擇器相關的xml文件,或者自定義的一些形狀,控件樣式等。
以選擇器爲例,習慣這樣命名:selector_btn_play
附張截圖:
常量的命名
- 要大寫,用final修飾,用下劃線分割。
public static final int STUDENT_NUMBER = 50;
- 如果常量較多,可以寫一個Constants類,專門用來存放一些常量。
附張截圖:
變量的命名
- 變量要具有實際意義,一看就懂。
比如 :
private boolean isLogin = true;
private TextView tvTitle;
private ImageView ivPlay;
方法的命名
- 方法名也要具有實際意義。
比如 :
getDataFromSvr()
parseData()
updatePlayProgress()
註釋規範
自己寫的一些接口文件,裏面的方法一定要寫註釋。因爲接口是給人用,但別人要知道具體是幹什麼的。
一般開發,只要在方法上面寫個註釋就行了。
當修改一些源碼時,要加註釋,格式如:
Added/(Modified/ Deleted) by 開發者姓名 年-月-日;
數據庫規範
建庫建表建字段,這是所有數據庫都有的操作,應該放在一個類中
增刪改查的方法,應該放在dao層
增刪改查方法寫好後,一定要做單元測試,在test包下寫方法測試。
其它規範
xml佈局文件中,不要出現中文,全部抽取到strings.xml文件中,方便應用國際化。
顏色值也可以不寫死,抽取到colors.xml中,方便後期調整。
對於多個相同控件有相同屬性的情況,可以將這些相同的屬性抽取到styles.xml文件中,使代碼既簡潔有便於修改。
一些控件的大小可以抽取到dimens.xml文件中,方便後期屏幕適配。
PS:本文整理的規範,有個人主觀的因素在其中,或許有的與你們不太一致。接受不同意見~
歡迎大家補充,共同成長~