Android 開發(fā)最佳實踐

Android 開發(fā)最佳實踐
持續(xù)更新

1摘要
選擇一個好用 IDE Andriod Studio

關(guān)于包的結(jié)構(gòu)
我建議具體業(yè)務(wù)相關(guān)的包結(jié)構(gòu)是將它們置入在一個包內(nèi)集侯。而不是在整個應(yīng)用包的根下

因為我們的業(yè)務(wù)是不斷的增加。就種增加也應(yīng)當(dāng)增相應(yīng)的包名攀芯。這樣的話包結(jié)構(gòu)的變化就是會明顯的變化
不利于穩(wěn)定引几。

越是公用的東西則應(yīng)該放置在明顯的地方丹允。如果工具類航瞭。

還有一些其他公用的管理類彤恶。這些東西可以放置在更高層級的類包下

這種做法使得其他小伙伴可以一眼看到钞钙,并且使用它們。
而與你協(xié)同開發(fā)的小伙伴可能根本不關(guān)心你的功能(業(yè)務(wù))声离。
但是包結(jié)構(gòu)的變化使得小伙伴分心芒炼。或是誤入到其他术徊。引起沖突等
關(guān)于依賴關(guān)系本刽,盡量做到單向依賴
這個也從包的層次表現(xiàn)出來,
越是靠近根目錄的文件赠涮,功能子寓,相當(dāng)于洋蔥的內(nèi)層,他是越是公用的笋除,核心的斜友。需要被依賴的。
越是遠(yuǎn)離根目錄的文件垃它,功能鲜屏,相當(dāng)于洋蔥的外層,他就越是私用的国拇,他依賴于核心的

關(guān)于包的結(jié)構(gòu)
module:業(yè)務(wù)模塊
utils:工具類
widget(視圖控件——含自定義view洛史,彈窗,浮窗贝奇,通知條虹菲。
service:后臺服務(wù)()
data:數(shù)據(jù)
common:常用的管理功能
base:不以業(yè)務(wù)相關(guān)的基本類
log:日志的打印
config:配置
entity:實體類
module:業(yè)務(wù)模塊是放置一個個獨立的模塊。
network:網(wǎng)絡(luò)
image:圖片
location:地理位置
locale:國際化(含多國語言的配置管理)
permission:權(quán)限
manager:

data :

創(chuàng)建線程池管理類掉瞳,統(tǒng)一管理線程的創(chuàng)建和銷毀毕源。減少系統(tǒng)不必要的開銷∩孪埃控制來內(nèi)存管理

接口化
定義內(nèi)層的輸入霎褐,輸出接口,是內(nèi)層自己的職責(zé)该镣。(內(nèi)層通常是最接近數(shù)據(jù)的冻璃,但又不能耦后外層,只是定義輸入輸出接口,這樣方便對接所有關(guān)心數(shù)據(jù)的人)
是不是過度復(fù)雜了省艳?
當(dāng)你習(xí)慣了就簡單了

我們希望數(shù)據(jù)流可以從外層流向內(nèi)層娘纷,反之亦然。但是依賴規(guī)則不允許跋炕。

Log 日志的打印要盡量還原真實場景赖晶,不要處理發(fā)生的時數(shù)據(jù)。不需要美化辐烂。他當(dāng)時發(fā)生的數(shù)據(jù)是什么就是什么遏插。
美化后的數(shù)據(jù)會隱蓋有用的信息【佬蓿可能會使得調(diào)查問題發(fā)生的原因出現(xiàn)偏差胳嘲。

在團(tuán)隊協(xié)作時,怎么能讓代碼的單向依賴原則不被破壞扣草,即內(nèi)層的包了牛,不使用外層的包。
1限制類德召,方法白魂,參數(shù)的訪問限制,
2使用依賴原則上岗。將代碼分劃成為模塊后福荸,外層的模塊依賴引入內(nèi)層的模塊,不允許內(nèi)層模塊引入外層的模塊肴掷。
3更不要跨層訪問

少寫注釋敬锐,多起一些有意義的名稱。有明確的方法名稱呆瞻,類名台夺,屬性名等。

公用的靜態(tài)方法放置在UTIL包下
如使web顯示頁面的痴脾,請使用WebView下的Html5Activity
如果使用自定義颤介,或是你要自己定義一個view.請將他們放置到Widget包里
C。是我們的常量類
Config是配置
service是服務(wù)的
entity是實體類赞赖。(實體類不要作涉業(yè)務(wù)的邏輯滚朵,不要依賴平臺, 保持他的純java特性)
module功能模塊
data數(shù)據(jù)。
base是基本父類前域。(作好的辕近,我們以后可以作一個開發(fā)框架)

工具類理應(yīng)能夠抽像化,公用化匿垄。也理應(yīng)不涉及具體業(yè)務(wù)細(xì)節(jié)移宅。
如果工具類只提供給某個業(yè)務(wù)使用归粉,那么他的命名上需要下一些工夫,表達(dá)出它的使用范
或是的包可以范圍應(yīng)該被控制在包內(nèi)可以訪問漏峰,避免外部誤用了糠悼。

內(nèi)層定義更抽象的部分,外層定義更具體的部分浅乔。
盡可能的作單向依賴绢掰,即是外圈使用內(nèi)圈的類,代碼童擎。反之內(nèi)圈不使用外圈的類,代碼攻晒。
如查你發(fā)現(xiàn)依賴倒置顾复,內(nèi)層依賴外層的類,代碼鲁捏,嘗試把他移動到內(nèi)圈芯砸。
如查你發(fā)現(xiàn)跨層依賴,或是新增一個中間件在內(nèi)層進(jìn)行處理给梅。不直接依賴使用假丧。
內(nèi)層的包不要使用外層的包
*定義輸入輸出接口是內(nèi)層的職責(zé)。

例如 Http協(xié)議定義的Content-Length
如果我們也有類似的字符动羽,也作相同的命名的話會與之有沖突包帚。不能正常區(qū)分,
這就里需要個可以區(qū)分的命名規(guī)范运吓。使用小駝峰命名

關(guān)于Android布局文件(layout)定義規(guī)范要求

關(guān)于layout 的命名規(guī)范
使用小寫字符渴邦,字符之間隔使用下橫線_
Activity使用的布局文件加上前綴activity_
Fragment使用的布局件加上前綴fragment_
自定義控制件使用的布局加前綴widget_
公用的布局件加上前綴layout_
Adapter使用的布局件加上前綴item_


代碼組織方面。Package Diagram對一些大型的項目特別有用拘哨。順便說一句谋梭,良好的代碼組織,對軟件的可維護(hù)性至關(guān)重要倦青,請認(rèn)真的規(guī)劃你的包結(jié)構(gòu)瓮床。下文將簡單介紹Package Diagram,主要分兩塊产镐,什么是Package隘庄,以及Package之間的關(guān)系。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末磷账,一起剝皮案震驚了整個濱河市峭沦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌逃糟,老刑警劉巖吼鱼,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蓬豁,死亡現(xiàn)場離奇詭異,居然都是意外死亡菇肃,警方通過查閱死者的電腦和手機(jī)地粪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琐谤,“玉大人蟆技,你說我怎么就攤上這事《芳桑” “怎么了质礼?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長织阳。 經(jīng)常有香客問我眶蕉,道長,這世上最難降的妖魔是什么唧躲? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任造挽,我火速辦了婚禮,結(jié)果婚禮上弄痹,老公的妹妹穿的比我還像新娘饭入。我一直安慰自己,他們只是感情好肛真,可當(dāng)我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布谐丢。 她就那樣靜靜地躺著,像睡著了一般蚓让。 火紅的嫁衣襯著肌膚如雪庇谆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天凭疮,我揣著相機(jī)與錄音饭耳,去河邊找鬼。 笑死执解,一個胖子當(dāng)著我的面吹牛寞肖,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播衰腌,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼新蟆,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了右蕊?” 一聲冷哼從身側(cè)響起琼稻,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饶囚,沒想到半個月后帕翻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸠补,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年嘀掸,在試婚紗的時候發(fā)現(xiàn)自己被綠了紫岩。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡睬塌,死狀恐怖泉蝌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情揩晴,我是刑警寧澤勋陪,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布,位于F島的核電站硫兰,受9級特大地震影響粥鞋,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瞄崇,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望壕曼。 院中可真熱鬧苏研,春花似錦、人聲如沸腮郊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽轧飞。三九已至衅鹿,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間过咬,已是汗流浹背大渤。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留掸绞,地道東北人泵三。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像衔掸,于是被迫代替她去往敵國和親烫幕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容