Android应用程序内存优化
来源:互联网 发布:淘宝一键装修免费软件 编辑:程序博客网 时间:2024/05/16 08:42
在开发Android App的过程中,经常会遇到内存方面的压力,比如OOM,或者频繁GC。
本文不打算涵盖内存优化的所有方面,只是介绍一下我自己遇到的问题和解决方法。
1.确定频繁分配内存的代码路径。
一般来说,频繁分配内存的路径可能会是绘制(draw)相关的方法,排版(layout)相关的方法,某些回调方法(特别是传感器回调方法)。
你可能会检查这部分代码,然后优化它。但是,内存分配可能发生在调用链的更下面,检查代码非常困难。
这里推荐一个工具,DDMS下的Allocation Tracker。它可以显示出程序运行中频繁分配内存的部分,并准确定位到对应的代码。
2.减少频繁的内存分配。
虽然Java是自动回收内存的,但是频繁的内存分配肯定会增加GC方面的压力,导致程序运行不流畅。
减少频繁地创建对象或者不在这些地方创建对象是一个显而易见的方法。
但是,也有一些比较隐秘的内存消耗点,下面就介绍一下for循环的内存消耗。
我们知道,在Java中,for循环有两种写法:
List<String> list = new ArrayList<String>();// 写法一for(int i = 0; i < list.size(); i++) { String s = list.get(i); ......}// 写法二for(String s : list) { ......}
写法二是Java推荐的方法,但是它却需要分配一个迭代器对象。如果是放在onDraw这样的方法中,那么每次调用就需要分配一小块内存。
所以,我推荐在onDraw这样的方法中,使用方法一。
<script type="text/javascript"><!--google_ad_client = "ca-pub-1944176156128447";/* cnblogs 首页横幅 */google_ad_slot = "5419468456";google_ad_width = 728;google_ad_height = 90;//--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
- Android应用程序内存优化
- Android应用程序内存优化
- Android应用程序内存优化
- Android应用程序内存优化
- Android应用程序内存优化
- Android应用程序内存优化
- Android 应用程序如何做内存优化
- Android培训实战教程之应用程序内存优化
- 关于J2ME应用程序内存优化
- android 应用程序优化
- android应用程序优化
- Android应用程序优化注意事项
- Android应用程序性能优化
- Android应用程序性能优化
- Android应用程序冷启动优化
- Android应用程序内存分析
- Android应用程序加大内存
- android应用程序内存分析
- android app的类响应式设计
- 将nbu俩文件解压到一个目录
- html5学习笔记(6)使用canvas绘图2
- [Android Samples视频系列之ApiDemos] App
- Java设计模式之五(单例模式详解)
- Android应用程序内存优化
- JSF 应用程序的生命周期
- jquery+uploadify+springmvc文件上传
- adb命令详解
- 定时器实现方式
- C++深浅拷贝构造函数
- Windows8 各版本区别详解【核心版、Pro专业版、Enterprise企业版、RT版】
- 双网卡配置实现一个账号多人共享上网
- GestureFlip