記憶體在任何軟體開發環境都是非常寶貴的資源,而在行動裝置作業系統上尤其如此,因為行動裝置的實體記憶體通常十分有限。對 Android (Go 版本) 常見的低記憶體裝置而言更是如此。您可以透過下列幾種方式最佳化應用程式中的記憶體,幫助應用程式在這些環境中能順暢運作。
最佳做法
釋出快取記憶體
記憶體可能不足,可能無法像在一般環境中一樣執行背景程序。在這種情況下,您可以使用 onTrimMemory()
從應用程式的程序中修剪不需要的記憶體。為了最好地確定應用程式目前的修剪程度,請使用 ActivityManager.getMyMemoryState(RunningAppProcessInfo)
,並最佳化或修剪任何不必要的資源。例如,您可以透過運算式、搜尋、檢視快取或可開啟的擴充功能,調整不必要的記憶體用量,從而減少應用程式因為記憶體不足而發生當機或 ANR 的次數。
工作排程
並行排程可能會導致同時執行會佔用大量記憶體的多項作業,導致資源超出應用程式尖峰記憶體用量。請嘗試將程序分成正確的執行緒集區中的 CPU 密集型低延遲工作,以便在可能遇到各種資源限制的裝置上執行。
記憶體流失
諸如 Android Studio 中的記憶體分析器和 Perfetto 等各種工具,專門用於找出並減少應用程式中的記憶體流失情形。強烈建議您使用這些工具,找出並修正潛在的記憶體問題,讓應用程式的其他元件在不對系統施加額外壓力的情況下執行。
其他提示
- 大型圖片或可繪項目會耗用應用程式中較多的記憶體。識別並最佳化大型或全彩點陣圖,以降低記憶體用量。
- 為 Android (Go 版本) 建構 GIF 時,請試著在應用程式中選擇 GIF 的其他選項,因為 GIF 會耗用大量記憶體。
- 您可以使用 WebP、pngcrush 和 pngquant 等工具縮減 PNG 檔案大小,同時不犧牲圖片品質。這些工具都能縮減 PNG 檔案的大小,同時維持良好的圖片品質。
- aapt 工具可以在建構過程中,以無損壓縮的方式調整
res/drawable/
中的圖片資源。舉例來說,aapt 工具可以將不需要超過 256 種顏色的真實色彩 PNG 轉換成具有調色盤的 8 位元 PNG。這樣圖片品質相同,但記憶體使用量較低。