zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

android 应用对内存是如何限制的?我们应该如何合理使用内存?如何限制的?

Android内存应用 如何 我们 限制 应该 合理
2023-09-27 14:27:33 时间

Android 应用的开发语言为 Java,每个应用最大可使用的堆内存受到 Android 系统的限制
•Android 每一个应用的堆内存大小有限
•通常的情况为 16M-48M
•通过 ActivityManager 的 getMemoryClass()来查询可用堆内存限制
•3.0(HoneyComb)以上的版本可以通过 largeHeap=“true”来申请更多的堆内存
•NexusS(4.2.1):normal 192, largeHeap 512
•如果试图申请的内存大于当前余下的堆内存就会引发 OutOfMemoryError()
•应用程序由于各方面的限制,需要注意减少内存占用,避免出现内存泄漏。

mActivityManager=(ActivityManager)this.getSystemService(Context.ACTIVITY_SERVICE);
mMaxMemory=mActivityManager.getMemoryClass();

如何合理使用内存?

1、注意资源回收,像数据库,输入输出流,定位操作这样的对象,要在使用完及时关闭流。
2、少使用静态变量,因为系统将静态变量的优先级设定的很高,会最后回收。所以可能因为静态变量导致该回收的没有回收。而回收了不该回收的内存。
3、注意大图片的缩放,如果载入的图片很大,要先经过自己程序的处理,降低分辨率等。最好设置多种分辨率格式的图片,以减少内存消耗。
4、 动态注册监听, 把一些只有显示的时候才使用到的监听放进程序内部, 而不是放在 manifesat中去。
5、减少使用动画,或者适当减少动画的帧数。
6、注意自己的程序逻辑,在该关闭自己程序的控件的时候,主动关闭,不要交给系统去决定。(这个要自己把握好, 也不是说都自己搞定, 只有那些自己确定需要关闭的对象, 自己将其关闭。 )