第十四屆 佳作

mobile-dev
Android app 效能優化
evanchen

系列文章

DAY 11

減少畫面的重複繪製

在我們已經透過 Layout 的優化來減少 UI 的階層,接下來要往繪製的效能來優化。每一次的繪製都需要成本,所以如果可以減少繪製的步驟,就可以提升效率。 重複...

DAY 12

檢測畫面的重複繪製

Android 系統提供了一個檢測App是否存在重複繪製的工具,這個工具可以直接在手機裡開啟。點選開發人員選項 → 針對 GPU 重複繪圖進行偵錯。開啟之後,系...

DAY 13

Android 的記憶體效能優化

這篇開始要進入到 Android 在使用記憶體上的效能優化。在記憶體效能篇,我們將依序來介紹跟記憶體效能有關的議題: Android 的記憶體管理 OOM (...

DAY 14

Out of memory 記憶體不足

在 Android 造成 OOM 的原因主要有 2 個: 用了太多的記憶體 記憶體無法正常釋放 這一篇我們要來談談如何避免用了太多的記憶體。 處理大型圖片的...

DAY 15

Memory leak 記憶體洩漏

當我們產生了一個物件,就會在 Heap 中配置一塊記憶體來處理,當一個物件不再使用時,就會進行 GC (Garbage Collection ) 垃圾回收機制,...

DAY 16

Application context 與 Activity context

上一篇我們介紹了一個因 Activity 被 Singleton 參考所發生的 Memory leak 。 object Class1 { latein...

DAY 17

WeakReference 弱引用

Weak reference、Soft reference 可以用來解決 Memory leak 的問題,當我們用 Weak reference 指向某個物件,...

DAY 18

使用 Coroutine 減少 Memory leak

在背景執行緒執行一段任務,未完成時就離開 Activity 是有可能造成 Memory leak 的。如下程式碼是一段使用背景執行緒請求網路資料: 呼叫 ne...

DAY 19

使用 LeakCanary 找出 Memory leak

LeakCanary 是 Square 公司所開發出來的檢測 Memory leak 的工具。不需要撰寫程式碼就可以自動偵測 Activity 與 Fragme...

DAY 20

使用 Profiler 找出記憶體的異常使用

我們在 Memory leak 篇介紹了如何使用 Profiler 來找出 Memory leak。接著將繼續介紹使用 Profiler 來分析記憶體。Prof...