10.2 Android布局优化之内存优化
2016-03-22 08:58
375 查看
直接开始内存优化实例吧
10.2.1 Bitmap优化
Bitmap是造成内存占用过高甚至是OOM的最大威胁,下面是合理使用BItmap的小技巧:
使用适当分辨率和大小的图片
要把图片放进与它分辨率相匹配的资源文件夹中,避免消耗更多资源,同时,在适当的时候,显示合适的图片大小,例如在图片列表中,使用缩略图thumbnails,而在详细的时候再显示原图,或者在图片要求不高的地方,尽量降低图片的精度;
及时回收内存
一旦使用完bitmap要及时调用recycle()的方法释放内存资源
使用图片缓存
通过内存缓存(LruCache)和硬盘缓存(DiskLruCache)。
10.2.2 代码优化
对常量使用static修饰符
使用静态方法,比普通方法高15%的访问速度
减少不必要的成员变量
减少不必要的对象
尽量不使用枚举、少用迭代器
对Cursor、Receiver、Sensor、File等对象时,注意它们的回收
使用RenderScript、OpenGL来进行非常复杂的绘图操作
使用SurfaceVIew来替代VIew进行大量、频繁的绘图操作
尽量使用视图缓存,而不是每次都是用inflate来解析视图
10.2.1 Bitmap优化
Bitmap是造成内存占用过高甚至是OOM的最大威胁,下面是合理使用BItmap的小技巧:
使用适当分辨率和大小的图片
要把图片放进与它分辨率相匹配的资源文件夹中,避免消耗更多资源,同时,在适当的时候,显示合适的图片大小,例如在图片列表中,使用缩略图thumbnails,而在详细的时候再显示原图,或者在图片要求不高的地方,尽量降低图片的精度;
及时回收内存
一旦使用完bitmap要及时调用recycle()的方法释放内存资源
使用图片缓存
通过内存缓存(LruCache)和硬盘缓存(DiskLruCache)。
10.2.2 代码优化
对常量使用static修饰符
使用静态方法,比普通方法高15%的访问速度
减少不必要的成员变量
减少不必要的对象
尽量不使用枚举、少用迭代器
对Cursor、Receiver、Sensor、File等对象时,注意它们的回收
使用RenderScript、OpenGL来进行非常复杂的绘图操作
使用SurfaceVIew来替代VIew进行大量、频繁的绘图操作
尽量使用视图缓存,而不是每次都是用inflate来解析视图
相关文章推荐
- MySQL 优化
- Google排名优化的几个影响因素
- DB2优化(简易版)
- Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架
- C#中尾递归的使用、优化及编译器优化
- 对优化Ruby on Rails性能的一些办法的探究
- 优化Ruby脚本效率实例分享
- Asp编码优化技巧
- 如何监测和优化OLAP数据库
- mysql -参数thread_cache_size优化方法 小结
- 深入学习SQL Server聚合函数算法优化技巧
- MySQL常见的底层优化操作教程及相关建议
- 详解mysql的limit经典用法及优化实例
- 数据库学习建议之提高数据库速度的十条建议
- oracle数据库sql的优化总结
- SQL语句性能优化(续)
- SQL语句优化提高数据库性能
- SQL优化经验总结
- SQL优化技巧指南
- SQL Server优化50法汇总