导图社区 高性能开发
一张思维导图带你了解高性能开发的相关内容,包含布局优化、内存优化、网络、电量、多线程等,收藏下图了解吧!
温故而知新,android架构组件知识归纳,学起来,up up up!!!
社区模板帮助中心,点此进入>>
安全教育的重要性
个人日常活动安排思维导图
西游记主要人物性格分析
17种头脑风暴法
如何令自己更快乐
头脑风暴法四个原则
思维导图
第二职业规划书
记一篇有颜又有料的笔记-by babe
伯赞学习技巧
Android 高性能开发
布局优化
去掉窗口的默认图层,减少灰质
.9图片会被做特殊处理,被遮挡的情况不会被绘制(?)
内存优化
内存泄漏
一个不再被使用的对象被另外一个还活着的对象引用,在这种情况下,垃圾回收器会跳过它,因为这种引用关系足以让该对象继续驻留在内存中。
内存抖动
大量的新对象被实例化,导致程序无法承载这样的内存分配,垃圾回收被大量调用。
最佳实践
尽可能避免自动装箱。自动装箱会影响性能,而且包装类所占的内存大小要比基础数据类型大得多。
在数据数量不大于1000的情况下,使用Sparse数组来取代Map
语法
for循环>while循环>iterator循环
慎用枚举
对于是基本类型或字符串的静态常量,我们应该要加上static关键词
使用stringBuffer和stringBuilder让字符串操作更高效
关闭流的时候,要给关闭操作加try catch,避免第一个关闭操作报异常,导致后面的流无法关闭。
通过对象池模式和享元模式在大量使用对象的时候,减少内存分配
减少组件的内存泄露
尽量不要用activity作为context,可以使用application的context替代
注意静态变量,非静态内部类和单例
记得及时关闭完成工作的service,尽可能使用IntentService,因为它工作完成后会自动停止
图片处理
只加载部分的图片
压缩
网络
减少连接数,合并一些通用的连接
预先获取网络数据
缓存控制
指数避退算法
优化轮询
电量
避免无用的网络请求
按需对待BroadcastReceiver
多线程
使用HandlerThread