20條性能優化的建議 App性能優化的建議有哪些( 二 )


  • 圖片縮放:inSampleSize、inScaled、inDensity和inTargetDensity
  • 位圖內存重用:inBitmap的使用, 可以結合LruCache實現 。
  • 推薦開源庫:picasso、Glide
15. Android 網絡通信框架Volley 。
16. 對象池、線程池的合理使用 。
17. 使用IntentService替代Service 。
IntentService優勢:新開線程;順序處理Intent;執行完自動退出 。
18. 盡量不要因一兩個特性而使用大體積類庫 。
19. 對象不用時最好顯式置為Null可以減少GC開銷 。
20. 多了解并使用類庫 。
一些例子1. 當處理字串的時候, 盡量使用String.indexOf, String.lastIndexOf等特殊實現的方法 。 這些方法都是使用C/C++實現的, 比起Java循環快10到100倍 。
2. System.arraycopy方法在有JIT的Nexus One上, 自行編碼的循環快9倍 。
3. android.text.format包下的Formatter類, 提供了IP地址轉換、文件大小轉換等方法;DateFormat類, 提供了各種時間轉換, 都是非常高效的方法 。
4. TextUtils類, 對于字符串處理Android為我們提供了一個簡單實用的TextUtils類, 如果處理比較簡單的內容不用去思考正則表達式不妨試試這個在android.text.TextUtils的類
5. 高性能MemoryFile類, 對于I/O需要頻繁操作的, 主要是和外部存儲相關的I/O操作, MemoryFile通過將 NAND或SD卡上的文件, 分段映射到內存中進行修改處理, 這樣就用高速的RAM代替了ROM或SD卡, 性能自然提高不少, 對于Android手機而言同時還減少了電量消耗 。 該類實現的功能不是很多, 直接從Object上繼承, 通過JNI的方式直接在C底層執行 。
內存優化工具推薦內存分析工具:Memory Monitor 適用于Android Studio
推薦內存泄露分析工作:MAT 適用于eclipse、Android Studio
內存泄露監控工具:LeakCanary

推薦閱讀