1. 程式人生 > >Android開發命名規範和編碼規範

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中使用%1sd等實現字串的通配。

  • 佈局檔案中的字型大小,都定義在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 RunnableThread之間的區別聯絡 應用----------------

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android開發 - ImageView載入Base64編碼的圖片

在我們開發應用的過程中,並不是所有情況下都請求圖片的URL或者載入本地圖片,有時我們需要載入Base64編碼的圖片。這種情況出現在服務端需要動態生成的圖片,比如: 二維碼 圖形驗證碼 ... 這些應用場景有個共同點就是,這些圖片都是由伺服器動態生成,並不需要生成後儲存成檔案再返回給客戶端

Android開發--圓角按鈕繪製直線的實現

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

【轉】Android開發:ServiceThread的關係

不少Android初學者都可能會有這樣的疑惑,Service和Thread到底有什麼關係呢?什麼時候應該用Service,什麼時候又應該用Thread?答案可能會有點讓你吃驚,因為Service和Thread之間沒有任何關係! 之所以有不少人會把它們聯絡起來,主要就是因為Service的後臺概念。Threa

【轉】Android開發:ServiceThread的關系

墨跡天氣 關系 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開發:shapeselectorlayer-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開發之WebViewJS互動詳解

Android提供了一個很強大的WebView控制元件用來處理Web網頁,而在網頁中,JavaScript又是一個很舉足輕重的指令碼。本文將介紹如何實現Java程式碼和Javascript程式碼的相互呼叫。 如何實現 實現Java和js互

Android開發,addlistenersetlistener的區別

做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