Android開發經驗總結

ujffdi發表於2019-03-21

前言

以下建議是結合自身經驗與網上多篇部落格總結而成

  1. 控制好每一張圖片的大小,因為它們將影響apk的體積(和UI多交流),以下提供一些壓縮圖片的網站。

    眾所周知的熊貓壓縮 智圖是騰訊ISUX前端團隊開發的一個專門用於圖片壓縮和圖片格式轉換的平臺,其功能包括針對png,jpeg,gif等各類格式圖片的壓縮,以及為上傳圖片自動選擇最優的圖片格式。同時,智圖平臺還會為使用者轉換一份webp格式的圖片 ImageAlpha通過應用有失真壓縮和轉換為更高效的PNG8 + alpha格式,大大減少了24位PNG檔案的檔案大小(包括Alpha透明度) Imageoptim無失真壓縮,並且支援客戶端(Mac客戶端) SquooshGoogle 開源釋出的一款專門用來壓縮圖片的線上服務,除了壓縮尺寸,還能進行簡單的編輯,包括剪裁、減少調色盤

  2. 如果頁面跳轉之間需要傳遞大量資料,那麼並不建議使用Intent或者Bundle,而是採用RxBus、EventBus、LiveDataBus。這裡著重推薦LiveDataBus。但不能濫用

  3. 採用 PBF(按功能分包 Package By Feature)參考Blankj的Android開發規範

  4. 佈局儘量避免巢狀,妥善使用ConstraintLayout、Include、ViewStub、Merge,這裡推薦郭霖大神的(Android新特性介紹,ConstraintLayout完全解析

  5. 選擇開源庫要慎重;不要只為某個小功能而匯入一個體積龐大的庫

  6. 使用一些輔助工具來檢測專案的記憶體溢位、效能檢測、異常報告系統等情況。推薦一些輪子(工具眾多,自行選擇)

    Bugly騰訊Bugly,為移動開發者提供專業的異常上報和運營統計,幫助開發者快速發現並解決異常,同時掌握產品運營動態,及時跟進使用者反饋

    BlockCanary是一個Android平臺的一個非侵入式的效能監控元件

    LeakCanary記憶體洩漏檢測庫

  7. 使用依賴注入解耦!!!解耦!!!解耦!!!Dagger2 on Android

  8. 別往Application寫一些無用程式碼,保持它的簡潔,不然會拖慢應用初始化和啟動速度

  9. 儘量避免使用資料庫,除非真需要

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

  11. 不要過多使用列舉,它佔用的記憶體空間要比整數大

  12. 使用一些Android特有的資料結構,比如SparseArray與Pair等,它們具有更好的效能

  13. 適當使用軟引用和弱引用,官方解釋

  14. 使用執行緒池而非建立大量的執行緒;參考:Android 執行緒和執行緒池一篇就夠了

  15. 適當的新增註釋!!!適當的新增註釋!!!適當的新增註釋!!!

  16. 別在View的onDraw方法裡面建立物件或者做耗時任務

  17. 別把Context或者View此等物件設定成靜態

  18. 儘量採用靜態內部類,可避免潛在由於內部類導致的記憶體洩漏

  19. 有一套良好的開發規範;參考:Android開發規範

  20. 程式碼要有層次感,遵循單一職責,參考:設計模式六大原則(1):單一職責原則

目前只想到這麼多,日後更新

相關文章