-
加载大图片或者一次性加载多张图片,应该在异步线程中进行图片的加载,涉及到 IO 操作,以及 CPU 密集操作,很可能引起卡顿。
-
在 ListView,ViewPager,RecyclerView,GirdView 等组件中使用图片时,应做好图片的缓存避免始终持有图片导致内存溢出,也避免重复创建图片,引起性能问题。使用Glide等图片库
-
使用 webp 替换 png 格式,或者使用 TinyPNG 类似工具压缩处理,减少包体积
-
应根据实际展示需要,压缩图片,而不是直接显示原图。手机屏幕比较小,直接显示原图,并不会增加视觉上的收益,但是却会耗费大量宝贵的内存。
-
在 Activity#onPause()或 Activity#onStop()回调中,关闭当前 activity 正在执行的的动画
-
在动画或者其他异步任务结束时,应该考虑回调时的环境是否还支持业务处理。Activity 的 onStop()函数已经执行,且在该函数中主动释放了资源,此时回调中如果不做判断就会空指针崩溃。
-
使用 RGB_565 代替 RGB_888,减少内存占用。大多数场景使用的是ARGB_8888 和 RGB_565,RGB_565 能够在保证图片质量的情况下大大减少内存的开销,是解决 OOM 的一种方法。但是一定要注意 RGB_565 是没有透明度的,如果图片本身需要保留透明度,那么就不能使用 RGB_565
-
大图片资源不要直接打包到 apk,可以考虑通过文件仓库远程下载,减小包体积
Android Bitmap&Drawable&动画的优化建议
猜你喜欢
转载自blog.csdn.net/jdfkldjlkjdl/article/details/104946825
今日推荐
周排行