android命名規(guī)范和編碼規(guī)范

前言

大家或許都有接手過別人的代碼,最大的共同感悟就是:這代碼寫得真爛??!命令混亂、文件隨意存放,xml文件中夾帶著中文,class中有class,activity中帶adapter等等。單理清這個(gè)項(xiàng)目脈絡(luò)就要花上個(gè)一個(gè)星期。但反思自己,是不是也曾是(甚至現(xiàn)在還是)自己心里痛罵過千遍的那個(gè)人,自己是不是也在犯著同樣的錯誤?最近在閱讀包老師的《APP啟示錄》里面第4章有提及命令規(guī)范和編碼規(guī)范,就抄錄到這里,方便自己查閱,也期望能給大家提供些許幫助。

命名規(guī)范

1.Java類命名規(guī)范

? ? ?a.Activity命名規(guī)范:以Activity作為后綴,如:HomeActivity;

? ? ?b.Adapter命名規(guī)范:以Adapter作為后綴,如:PersonAdapter;

? ? ?c.Entity命名規(guī)范:以Entity作為后綴,如:CustomerEntity;

2.資源文件命名規(guī)范

? ?layout目錄下的資源文件命名規(guī)范:

? ? ? a.頁面布局文件:以act_為前綴,以activity所在的package作為中綴,以activity名稱作為后綴(切除activity)。注意:全部都用小寫。如:act_activity_addcustomer.xml

? ? ? b.listView中的item布局文件:以item作為固定前綴,列表項(xiàng)的名稱作為后綴。注意:都是小寫。如:item_lv_userlist.xml

? ? ? c.dialog布局文件:以dig_作為前綴,Dialog的功能名稱作為后綴,注意:都是小寫。如:dig_err_message.xml

? ? drawable目錄下的文件命名規(guī)范:

? ? ? ?a.對于只有一個(gè)頁面使用的資源:以該頁面的名稱作為前綴。

? ? ? ?b.對于在一個(gè)模塊下多個(gè)頁面使用的資源:以該模塊的名稱作為前綴。

? ? ? ?c.對于在各個(gè)模塊、各個(gè)頁面都有可能用到的資源,以common作為前綴。

? 3.Java類中控件對象的命名規(guī)范&Layout中控件對象的ID命名規(guī)范

? ? ?控件類型+控件的邏輯名稱(首字母大寫),如登錄按鈕:btnLogin.

? ?4.strings.xml中常量的命名規(guī)范

? ? 這里面的值大多數(shù)是在layout的控件上使用,所以以該常量所在的activity名稱作為前綴,后面接空間名稱,再后面就自由發(fā)揮了,如:loginActivity_btnLogin_text

? ? 5.常量命名

? ? 只能包含字母和下劃線,字母全部大寫。

編碼規(guī)范

? ? 1.分門別類存放各種類:


分門別類存放各種類

? ? 2.layout中用到的常量,都要在strings.xml中定義。

? ? 3.layout中所有控件的字體大小,都定義在dimens.xml中。這樣做的好處是,只要稍微改變一下dimens.xml中的定義,就可以批量修改頁面的樣式。

? ? 4.activity的onCreate拆分為以下三部分(遵循單一職責(zé)原則):

? ? ? ? ? a. initVariables:初始化變量(包括Intent上的數(shù)據(jù)和activity內(nèi)部使用的變量)

? ? ? ? ? b. ?initViews:加載layout布局文件,初始化控件。

? ? ? ? ? c.loadData:調(diào)用MobileAPI

? ?5.使用fastJSON自定義實(shí)體作為MobileAPI的數(shù)據(jù)載體

? ?6.頁面之間傳值,使用Intent攜帶序列化實(shí)體數(shù)據(jù)的方式。

? ?7.為控件添加事件,統(tǒng)一使用如下形式:


控件事件

? ?8.activity中不要嵌套內(nèi)部類

? ?9.Adapter綁定的數(shù)據(jù),統(tǒng)一采用ArrayList<自定義可序列化實(shí)體>

? 10為節(jié)省內(nèi)存,請使用ArrayList<自定義實(shí)體>,而不是HashMap.

? 11.圖片的處理,統(tǒng)一采用第三方組件ImageLoader或Fresco.

? 12.簡單的配置信息、設(shè)置頁面的各種開關(guān)使用SharePreferences存儲。

? 13.盡量使用ApplicationContext代替Context,避免內(nèi)存泄露。

目的

做這些規(guī)范,根本目的就是要統(tǒng)一一個(gè)團(tuán)隊(duì)的編碼習(xí)慣,使一個(gè)項(xiàng)目中的代碼,看上去都像是一個(gè)人寫的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容