Android開發命名規範和編碼規範
無規矩不成方圓,是吧。。哈哈~~
很慶幸,本人剛學java程式設計的時候,就被老師灌輸了程式設計規範的相關知識,並且一直在遵守。
有過團隊開發經驗的人都知道,如果沒有一定的規範可行,那麼程式碼看起來將是苦不堪言,甚至是亂七八糟。
下面就介紹一下,我個人編碼過程中使用到的規範,供大家參考~~
命名規範
命名規範要望文知義,簡單明瞭。
命名規範定製太多,就會讓人心煩,反而沒人遵守了。
---《APP研發錄》
先介紹兩種命名規則:
駝峰命名法:又稱小駝峰命名法。除了首個單詞首字母小寫除外,其餘所有單詞所有首字母都要大寫。
帕斯卡命名法
包的命名規範
包名一律小寫
建議採用如下規則:【com】.【公司名/組織名】.【專案名稱】.【模組名】
比如:com.jacksen.mvp.demo。然後在這個目錄下根據業務邏輯進行分層。
常見的包分層結構如下:
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 –> 資料處理類
類的命名規範
Android中類的命名與JAVA開發採用一致的規範即可。
大駝峰命名法,即所有單詞首字母大寫。
Activity –> xxxActivity.java
Application –> xxxApplication.java
Fragment –> xxxFragment.java
Service –> xxxService.java
BroadcastReceiver –> xxxBroReceiver.java
ContentProvider –> xxxProvider.java
Adapter –> xxxAdapter.java
Handler –> xxxHandler.java
介面 –> xxxInter.java
介面實現類 –> xxxImpl.java
Persenter –> xxxPersenter.java
公共父類 –> BaseActivity.java、BaseFragment.java、- BaseAdapter.java等
util類 –> LogUtil.java
資料庫類 –> BaseSQLiteDBHelper.java
變數的命名規範
採用駝峰命名規則。
Java普通變數:
resultString
userBean
loginPresenter
Android控制元件變數:
loginBtn
inputPwdEt
showNameTv
有些人建議採用【控制元件縮寫】+【控制元件邏輯名稱】的方式,比如btnLogin。不過我個人比較習慣反過來寫,比如loginBtn。與類的命名類似,把邏輯名稱寫在前面。
常用控制元件的縮寫
控制元件 | 佈局檔案中縮寫 | 程式碼中縮寫 |
---|---|---|
LinearLayout | xxx_layout | xxxLLayout |
RelativeLayout | xxx_layout | xxxRLayout |
FrameLayout | xxx_layout | xxxFLayout |
TextView | xxx_tv | xxxTv |
EditText | xxx_et | xxxEt |
Button | xxx_btn | xxxBtn |
ImageView | xxx_iv | xxxIv |
CheckBox | xxx_chk | xxxChk |
RadioButton | xxx_rbtn | xxxRbtn |
ProgressBar | xxx_pbar | xxxPbar |
ListView | xxx_lv | xxxLv |
WebView | xxx_wv | xxxWv |
GridView | xxx_gv | xxxGv |
常見單詞的縮寫:
單詞 | 縮寫 |
---|---|
icon | ic |
background | bg |
foreground | fg |
initial | init |
information | info |
success | succ |
failure | fail |
error | err |
image | img |
library | lib |
message | msg |
password | pwd |
length | len |
buffer | buf |
position | pos |
常量命名:
全部單詞采用大寫,每個單詞之間用“_”分割。
例如:
public static final String API_URL = "http://apis.baidu.com/heweather/weather/free";
方法的命名規範
與java開發類似,採用駝峰命名規則。首單詞首字母小寫,其餘單詞首字母大寫。儘量不要使用下劃線。
舉例:
setxxx()
getxxx()
loginxxx()
onCreate()
onDestory()
isxxx() –> 返回值是boolean型別
checkxxx()
方法的命名規範
全部採用小寫,單詞之間使用下劃線分割。
佈局檔案:
activity_login.xml
fragment_first_tab.xml
item_choose_city.xml
dialog_choose_city.xml
common_footer.xml
popup_xxx.xml
控制元件ID:
上面【常用控制元件的縮寫】表格中基本列出了常用控制元件的ID寫法。
login_btn
input_phone_et
input_pwd_et
login_pbar
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
anim目錄下的命名規範
單詞全部小寫,單詞之間採用下劃線分割。
fade_in.xml
fade_out.xml
slide_in_from_left.xml
slide_in_from_top.xml
slide_out_to_right.xml
slide_out_to_bottom.xml
編碼規範
程式碼中儘量不要出現中文。註釋和除外。程式碼中通過strings.xml引用來顯示中文。
控制元件宣告放在activity級別,這樣在activity其他地方可以使用。
在一個View.OnClickListener中處理所有的點選事件邏輯,這樣看起來很集中和直觀。
strings.xml中使用%1
s d等實現字串的通配。佈局檔案中的字型大小,都定義在dimens.xml中。
有關margin和padding的值也都放在dimens.xml中。
介面之間傳值儘量使用intent方式。少用全域性變數。
不建議在佈局檔案中新增點選事件。
資料型別轉換一定要校驗。
使用常量代替列舉。
實體不要在不同模組間共享,但是可以在統一模組下的不同頁面共享。
建議採用左括號與方法名稱在同一行的程式碼格式來進行程式碼的編寫和格式化。貌似左括號在下一行是C#的形式。
業務稍微複雜一些,都有可能提煉一個BaseActivity或BaseFragment出來做為公共父類。
類註釋一定要寫,管家的方法也要寫方法註釋。常量儘量寫註釋。
專案中的命名規範和編碼規範,是一個專案Leader前期需要準備的,也是一項必備技能。
制定好了規範,就要遵守,有了統一的規範,專案才好維護,相互之間才好review程式碼,便於開發與維護。
參考
《APP研發錄》
介紹完畢,歡迎指教~~
相關推薦
Android開發命名規範和編碼規範
無規矩不成方圓,是吧。。哈哈~~ 很慶幸,本人剛學java程式設計的時候,就被老師灌輸了程式設計規範的相關知識,並且一直在遵守。 有過團隊開發經驗的人都知道,如果沒有一定的規範可行,那麼程式碼看起來將是苦不堪言,甚至是亂七八糟。 下面就介紹一下,我
android命名規範和編碼規範
參考:《app研發錄》 程式碼是程式設計師的第二張臉。每一個程式設計師在嘲諷別人的程式碼的同時,有沒有想過自己的程式碼也會成為別人的談資呢? 制定規範不需要太多的理論知識,只要記住兩點就夠了:儘
Android開發規範之編碼規範2
Android開發規範之編碼規範2 1,java程式碼中不出現中文,最多註釋中可以出現中文,中文統一寫在strings.xml中; 2,區域性變數命名、靜態成員變數命名 只能包含字母,單詞首字母大寫,其他字母都為小寫 3,常量命名只能包含字母和_,字母全部大寫,單詞之間用_隔開 4,佈局
Android開發命名規範
識別符號命名法 識別符號命名法最要有四種: 1 駝峰(Camel)命名法:又稱小駝峰命名法,除首單詞外,其餘所有單詞的第一個字母大寫。 2 帕斯卡(pascal)命名法:又稱大駝峰命名法,所有單詞的
【安全開發】Perl安全編碼規範
多年以來,Perl已經成為用於系統管理和WebCGI開發的功能最強的程式語言之一(幾乎可以使用Perl做任何功能的程式)。但其擴充套件應用,即作為Internet上CGI的開發工具,使得它經常成為Web伺服器上的攻擊目標。 另外,大多數CGI指令碼有著比一般使用者更高的許可權,導致它更容易受攻擊。下面列舉了
web專案開發 之 前端規範 --- CSS編碼規範
此文嚴格按照W3C規範和部分實際專案可讀性,瀏覽器載入,效能等眾多屬性權衡,做出平時前端編碼規範文檔。供廣大web工作者參考並實施,對維護和專案擴充套件升級都能省時省力。轉載請註明出處;JS前端實用開發QQ群 :147250970 歡迎加入~!CSS編碼規範1 前言
Android開發 Handler Runnable和Thread之間的區別和聯絡 應用----------------
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Android開發 - ImageView載入Base64編碼的圖片
在我們開發應用的過程中,並不是所有情況下都請求圖片的URL或者載入本地圖片,有時我們需要載入Base64編碼的圖片。這種情況出現在服務端需要動態生成的圖片,比如: 二維碼 圖形驗證碼 ... 這些應用場景有個共同點就是,這些圖片都是由伺服器動態生成,並不需要生成後儲存成檔案再返回給客戶端
Android開發--圓角按鈕和繪製直線的實現
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
【轉】Android開發:Service和Thread的關係
不少Android初學者都可能會有這樣的疑惑,Service和Thread到底有什麼關係呢?什麼時候應該用Service,什麼時候又應該用Thread?答案可能會有點讓你吃驚,因為Service和Thread之間沒有任何關係! 之所以有不少人會把它們聯絡起來,主要就是因為Service的後臺概念。Threa
【轉】Android開發:Service和Thread的關系
墨跡天氣 關系 https 依賴 and 但是 size nac 後臺運行 不少Android初學者都可能會有這樣的疑惑,Service和Thread到底有什麽關系呢?什麽時候應該用Service,什麽時候又應該用Thread?答案可能會有點讓你吃驚,因為Service和T
Android開發——建立專案和軟體圖示
Android開發——建立專案和軟體圖示 一、SDK安裝及加裝 1、將環境搭建好過後,點選Android Studio,就會開始進入軟體,如果你沒有另外下載SDK在你的電腦上,他會出現一個警示提示框,這時不要去點它給出的高亮按鈕,直接點選Cancel,稍等一會兒就會出現選擇SDK的安
Android開發——線性佈局和TextView基本用法
Android開發——線性佈局和TextView的基本用法 一、線性佈局-LinearLayout 在LinearLayout這個控制元件中,有這許多屬性可以設定,下面是最為基礎的屬性 <LinearLayout android:layout_wid
Android開發常見異常和解決方案(一)
異常記錄,填過的坑記錄下來,作為以後的經驗 異常1: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformDexWithDexForRel
Android開發:shape和selector和layer-list的(詳細說明)
<shape>和<selector>在Android UI設計中經常用到。比如我們要自定義一個圓角Button,點選Button有些效果的變化,就要用到<shape>和<selector>。可以這樣說,<shap
Android開發環境搭建和HelloWorld
一、Android開發環境搭建前準備: 1、Android開發利器 JavaSDK(software development kit) AndroidSDK Eclipse及ADT外掛(android development tools) 二、開發環境安裝(常規安裝
Android開發之WebView和JS互動詳解
Android提供了一個很強大的WebView控制元件用來處理Web網頁,而在網頁中,JavaScript又是一個很舉足輕重的指令碼。本文將介紹如何實現Java程式碼和Javascript程式碼的相互呼叫。 如何實現 實現Java和js互
Android開發,addlistener和setlistener的區別
做Android開發稍微久一點的都知道,android之前的監聽器基本都是setlistener,比如setOnClickListener,setTextChangeListener。 但是後來,android中很多的setlistener都被廢棄了,用addlistene
Android開發之打電話和發短息介面呼叫
Activity檔案public class MainActivity extends Activity implements OnLongClickListener { private EditText et_main_number; private EditTex
Android 開發中 Intent 和 Intent 過濾器學習筆記
Android 中的 Intent 是一個訊息傳遞物件,我們可以使用它來從其他應用,元件等發起和傳遞操作請求。其主要使用場景包含如下三種: 啟動 Activity: 通過將 Intent 傳遞給 startActivity(),我們可以啟動新的 Activ