前言
以下建議是結合自身經驗與網上多篇部落格總結而成
-
控制好每一張圖片的大小,因為它們將影響apk的體積(和UI多交流),以下提供一些壓縮圖片的網站。
眾所周知的熊貓壓縮 智圖是騰訊ISUX前端團隊開發的一個專門用於圖片壓縮和圖片格式轉換的平臺,其功能包括針對png,jpeg,gif等各類格式圖片的壓縮,以及為上傳圖片自動選擇最優的圖片格式。同時,智圖平臺還會為使用者轉換一份webp格式的圖片 ImageAlpha通過應用有失真壓縮和轉換為更高效的PNG8 + alpha格式,大大減少了24位PNG檔案的檔案大小(包括Alpha透明度) Imageoptim無失真壓縮,並且支援客戶端(Mac客戶端) SquooshGoogle 開源釋出的一款專門用來壓縮圖片的線上服務,除了壓縮尺寸,還能進行簡單的編輯,包括剪裁、減少調色盤
-
如果頁面跳轉之間需要傳遞大量資料,那麼並不建議使用Intent或者Bundle,而是採用RxBus、EventBus、LiveDataBus。這裡著重推薦LiveDataBus。但不能濫用
-
採用 PBF(按功能分包 Package By Feature)參考Blankj的Android開發規範
-
佈局儘量避免巢狀,妥善使用ConstraintLayout、Include、ViewStub、Merge,這裡推薦郭霖大神的(Android新特性介紹,ConstraintLayout完全解析)
-
選擇開源庫要慎重;不要只為某個小功能而匯入一個體積龐大的庫
-
使用一些輔助工具來檢測專案的記憶體溢位、效能檢測、異常報告系統等情況。推薦一些輪子(工具眾多,自行選擇)
Bugly騰訊Bugly,為移動開發者提供專業的異常上報和運營統計,幫助開發者快速發現並解決異常,同時掌握產品運營動態,及時跟進使用者反饋
BlockCanary是一個Android平臺的一個非侵入式的效能監控元件
LeakCanary記憶體洩漏檢測庫
-
使用依賴注入解耦!!!解耦!!!解耦!!!Dagger2 on Android
-
別往Application寫一些無用程式碼,保持它的簡潔,不然會拖慢應用初始化和啟動速度
-
儘量避免使用資料庫,除非真需要
-
使用DialogFragment而不是Dialog,官方解釋
-
不要過多使用列舉,它佔用的記憶體空間要比整數大
-
使用一些Android特有的資料結構,比如SparseArray與Pair等,它們具有更好的效能
-
適當使用軟引用和弱引用,官方解釋
-
使用執行緒池而非建立大量的執行緒;參考:Android 執行緒和執行緒池一篇就夠了
-
適當的新增註釋!!!適當的新增註釋!!!適當的新增註釋!!!
-
別在View的onDraw方法裡面建立物件或者做耗時任務
-
別把Context或者View此等物件設定成靜態
-
儘量採用靜態內部類,可避免潛在由於內部類導致的記憶體洩漏
-
有一套良好的開發規範;參考:Android開發規範
-
程式碼要有層次感,遵循單一職責,參考:設計模式六大原則(1):單一職責原則
目前只想到這麼多,日後更新