Android開發(fā)經(jīng)驗(yàn)總結(jié)

前言

以下建議是結(jié)合自身經(jīng)驗(yàn)與網(wǎng)上多篇博客總結(jié)而成

  1. 控制好每一張圖片的大小味抖,因?yàn)樗鼈儗⒂绊慳pk的體積(和UI多交流)夭织,以下提供一些壓縮圖片的網(wǎng)站懈费。

    眾所周知的熊貓壓縮
    智圖是騰訊ISUX前端團(tuán)隊(duì)開發(fā)的一個(gè)專門用于圖片壓縮和圖片格式轉(zhuǎn)換的平臺(tái)豫柬,其功能包括針對(duì)png,jpeg,gif等各類格式圖片的壓縮锌钮,以及為上傳圖片自動(dòng)選擇最優(yōu)的圖片格式桥温。同時(shí),智圖平臺(tái)還會(huì)為用戶轉(zhuǎn)換一份webp格式的圖片
    ImageAlpha通過應(yīng)用有損壓縮和轉(zhuǎn)換為更高效的PNG8 + alpha格式梁丘,大大減少了24位PNG文件的文件大星纸(包括Alpha透明度)
    Imageoptim無損壓縮旺韭,并且支持客戶端(Mac客戶端)
    SquooshGoogle 開源發(fā)布的一款專門用來壓縮圖片的在線服務(wù),除了壓縮尺寸掏觉,還能進(jìn)行簡(jiǎn)單的編輯区端,包括剪裁、減少調(diào)色板

  2. 如果頁(yè)面跳轉(zhuǎn)之間需要傳遞大量數(shù)據(jù)澳腹,那么并不建議使用Intent或者Bundle织盼,而是采用RxBus、EventBus酱塔、LiveDataBus沥邻。這里著重推薦LiveDataBus。但不能濫用

  3. 采用 PBF(按功能分包 Package By Feature)參考Blankj的Android開發(fā)規(guī)范

  4. 布局盡量避免嵌套羊娃,妥善使用ConstraintLayout唐全、Include、ViewStub蕊玷、Merge邮利,關(guān)注Space標(biāo)簽。這里推薦郭霖大神的(Android新特性介紹垃帅,ConstraintLayout完全解析

  5. 選擇開源庫(kù)要慎重延届;不要只為某個(gè)小功能而導(dǎo)入一個(gè)體積龐大的庫(kù)

  6. 使用一些輔助工具來檢測(cè)項(xiàng)目的內(nèi)存溢出、性能檢測(cè)贸诚、異常報(bào)告系統(tǒng)等情況方庭。推薦一些輪子(工具眾多,自行選擇)

    Bugly騰訊Bugly赦颇,為移動(dòng)開發(fā)者提供專業(yè)的異常上報(bào)和運(yùn)營(yíng)統(tǒng)計(jì)二鳄,幫助開發(fā)者快速發(fā)現(xiàn)并解決異常,同時(shí)掌握產(chǎn)品運(yùn)營(yíng)動(dòng)態(tài)媒怯,及時(shí)跟進(jìn)用戶反饋
    BlockCanary是一個(gè)Android平臺(tái)的一個(gè)非侵入式的性能監(jiān)控組件
    LeakCanary內(nèi)存泄漏檢測(cè)庫(kù)

  7. 使用依賴注入解耦6┧稀!扇苞!解耦F鄣睢!鳖敷!解耦2彼铡!定踱!Dagger2 on Android; 實(shí)際上:依賴注入不是必須的棍潘,有“條件”可用上(2021.07.22)

  8. 別往Application寫一些無用代碼,保持它的簡(jiǎn)潔,不然會(huì)拖慢應(yīng)用初始化和啟動(dòng)速度

  9. 盡量避免使用數(shù)據(jù)庫(kù)亦歉,除非真需要

  10. 使用DialogFragment而不是Dialog恤浪,官方解釋

  11. 不要過多使用枚舉,它占用的內(nèi)存空間要比整數(shù)大(辟謠:枚舉是可以使用的肴楷,詳情

  12. 使用一些Android特有的數(shù)據(jù)結(jié)構(gòu)水由,比如SparseArray與Pair等,它們具有更好的性能

  13. 適當(dāng)使用軟引用和弱引用赛蔫,官方解釋

  14. 使用線程池而非創(chuàng)建大量的線程砂客;參考:Android 線程和線程池一篇就夠了

  15. 適當(dāng)?shù)奶砑幼⑨專。?適當(dāng)?shù)奶砑幼⑨專呵恢。鞠值。∵m當(dāng)?shù)奶砑幼⑨專渗钉。齿诉。?/strong>

  16. 別在View的onDraw方法里面創(chuàng)建對(duì)象或者做耗時(shí)任務(wù)

  17. 別把Context或者View此等對(duì)象設(shè)置成靜態(tài)

  18. 盡量采用靜態(tài)內(nèi)部類,可避免潛在由于內(nèi)部類導(dǎo)致的內(nèi)存泄漏

  19. 有一套良好的開發(fā)規(guī)范晌姚;參考:Android開發(fā)規(guī)范

  20. 代碼要有層次感,遵循單一職責(zé)歇竟,參考:設(shè)計(jì)模式六大原則(1):?jiǎn)我宦氊?zé)原則

2021.07.22更新

  1. 只有最合適的架構(gòu)挥唠;沒有最好的架構(gòu)。新技術(shù)始終會(huì)變成舊技術(shù)焕议,結(jié)合條件宝磨、環(huán)境等因素尋找最合適的架構(gòu)

  2. 學(xué)習(xí)Kotlin

  3. ViewBinding是代替findViewById的一個(gè)好工具

  4. 遇到雙層列表的需求時(shí):使用Recycleview+自定義LinearLayout動(dòng)態(tài)添加View的方式來代替Recycleview嵌套R(shí)ecycleview也可以

  5. 基于第20點(diǎn),當(dāng)一個(gè)頁(yè)面太復(fù)雜時(shí)盅安,按功能拆分防止Activity/Fragment過于臃腫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末唤锉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子别瞭,更是在濱河造成了極大的恐慌窿祥,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蝙寨,死亡現(xiàn)場(chǎng)離奇詭異晒衩,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)墙歪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門听系,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人虹菲,你說我怎么就攤上這事靠胜。” “怎么了?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵浪漠,是天一觀的道長(zhǎng)陕习。 經(jīng)常有香客問我,道長(zhǎng)郑藏,這世上最難降的妖魔是什么衡查? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮必盖,結(jié)果婚禮上拌牲,老公的妹妹穿的比我還像新娘。我一直安慰自己歌粥,他們只是感情好塌忽,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著失驶,像睡著了一般土居。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上嬉探,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天擦耀,我揣著相機(jī)與錄音,去河邊找鬼涩堤。 笑死眷蜓,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的胎围。 我是一名探鬼主播吁系,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼白魂!你這毒婦竟也來了汽纤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤福荸,失蹤者是張志新(化名)和其女友劉穎蕴坪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逞姿,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡辞嗡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滞造。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片续室。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖谒养,靈堂內(nèi)的尸體忽然破棺而出挺狰,到底是詐尸還是另有隱情明郭,我是刑警寧澤,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布丰泊,位于F島的核電站薯定,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏瞳购。R本人自食惡果不足惜话侄,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望学赛。 院中可真熱鬧年堆,春花似錦、人聲如沸盏浇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)绢掰。三九已至痒蓬,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滴劲,已是汗流浹背攻晒。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留班挖,地道東北人炎辨。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像聪姿,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子乙嘀,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355