性能优化

性能优化

主线程主要工作是更新UI,不要做耗时操作

图片加载优化,压缩,缓存网络图片

列表控件优化,比如RecyclerView采用增量刷新替代全量刷新

减少布局绘制层级

分析工具

As profiler

Memory Analyzer

Leak Canary

网络优化

后台限制或减少网络请求,比如借助JobScheduler进行任务调度

内存优化

内存分配

SparceArray,ArrayMap等Android提供的数据结构

内存泄漏

未关闭系统资源,比如registerReceiver, File等

WebView内存泄漏

匿名类:new AsyncTask, new Thread, TimerTask,这些匿名类对象结束前会持有Activity引用,导致无法回收,造成内存泄漏

混淆

//开启代码混淆
 minifyEnabled true
 //Zipalign优化
 zipAlignEnabled true
 //移除无用的resource文件
 shrinkResources true

资源

defaultConfig {
 //只保留指定和默认的资源
 resConfigs('zh-rCN','ko')
}

动态库打包

ndk {
 //可以选择只保留需要的
 abiFilters "armeabi", "armeabi-v7a"
 }

apk瘦身

Last updated

Was this helpful?