對(duì)于開發(fā)項(xiàng)目時(shí)間不長(zhǎng)的人來說,規(guī)范是很重要的,總結(jié)幾點(diǎn):
1:包名的建立
這個(gè)就不是很規(guī)范,包名的建立大致可以從兩個(gè)方向分類,
第一就是根據(jù)業(yè)務(wù)邏輯按模塊分類,比如一個(gè)app中有四個(gè)模塊,首頁(yè),商城,發(fā)現(xiàn),個(gè)人中心,那么可以以模塊來分類.
另一個(gè)就是我們平時(shí)使用的了,按照使用的屬性來分類,比如網(wǎng)絡(luò)層,視圖層,工具類,實(shí)體bean,適配器等等,一個(gè)好的分類可以讓目錄結(jié)構(gòu)更清晰.接手項(xiàng)目的人能夠快速看懂.拿上訴的目錄結(jié)構(gòu)來說,GuidePagerAdapter就應(yīng)該統(tǒng)一放到adapter包下,LoginActivity應(yīng)該放在activity中,MD5工具類應(yīng)該放在utils包下,后面的XXXActivity都應(yīng)該放在activity目錄下面.
2:Manifest.xml中規(guī)范
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:resizeable="true"
android:smallScreens="true"/>
這個(gè)屏幕適配的支持個(gè)人感覺沒啥用處,刪掉也不影響什么
定義多個(gè)activity的時(shí)候,一定要注釋下這個(gè)activity是干嘛的.
<meta-data>和service標(biāo)簽盡量定義在activity后
application應(yīng)該自己定義一個(gè),用來做程序啟動(dòng)時(shí)候初始化操作,比如語言切換,百度地圖初始化等,另外使用自定義的application它默認(rèn)就是單例模式,可以方便的在任何需要的地方獲取application中的屬性值.
如:public class XXAppliXXcation extends Application
3:Activity基類
我們?cè)趧?chuàng)建一個(gè)activity時(shí)候,一定要用到基類,別繼承系統(tǒng)的Activity,因?yàn)楹芏嗍褂肁ctivity中一般都會(huì)執(zhí)行onCreate--->initlastPagerData()--->initView()---->initData()-----addEvent(),這時(shí)候如果我們定義一個(gè)BaseActivity,讓自己創(chuàng)建的activity繼承這個(gè)基類就不用每次去寫這些方法,為我們開發(fā)節(jié)省了時(shí)間,BaseActivity的好處還有在做界面切換動(dòng)畫的時(shí)候,這個(gè)時(shí)候你只需要在baseActivity的finish中寫進(jìn)入退出動(dòng)畫,而不需要在自己每個(gè)activity中寫overridePendingTransition();有些網(wǎng)絡(luò)請(qǐng)求需要彈出dialog,如果寫在baseActivity中,就可以直接調(diào)用了,總的來說就是減少代碼量,節(jié)約時(shí)間.
4:方法中的規(guī)范
(1)首先方法名的命名,不要用中文的拼音,這里需要更新的邏輯處理就用update或靈格斯上去搜索英文翻譯.
(2)url這種網(wǎng)絡(luò)請(qǐng)求的應(yīng)該有一個(gè)公用類來存放,通常是Constans.然后這里調(diào)用Constans.url來獲取.地址變動(dòng)的時(shí)候也方便統(tǒng)一改動(dòng).
(3)網(wǎng)絡(luò)請(qǐng)求,如果是需要使用網(wǎng)絡(luò)請(qǐng)求的話,目前比較好的就xutils,okhttp,nohttp這里在application中封裝好后就直接使用了,不推薦用上面的原生未經(jīng)過封裝的方法.
(4)Toast中代碼中千萬別用中文直接就提示出來,一定要在string.xml中定義好,不然別人一看就知道是個(gè)新手.Layout.xml視圖中也應(yīng)該在string.xml中定義好后引用.Toast可以抽一個(gè)公共方法,在baseActivity中定義好,然后自己activity就可以直接使用.
(5)能在局部變量中傳值的千萬不要定義成全局,這樣邏輯一復(fù)雜就可能導(dǎo)致取值不對(duì),還有一點(diǎn)要注意的就是在一個(gè)方法體中不要對(duì)某個(gè)值既get又set,這樣也容易導(dǎo)致后面取值不對(duì)又很難發(fā)現(xiàn)是哪里設(shè)置錯(cuò)了.get,和set中的值都是在常量池中保存,如果application炸了,那么get到的值會(huì)包nullpointException.盡量少用get,set.