android – 在内存有限的情况下,如何优雅地降低我的性能?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android – 在内存有限的情况下,如何优雅地降低我的性能?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2010字,纯文字阅读大概需要3分钟。
内容图文
![android – 在内存有限的情况下,如何优雅地降低我的性能?](/upload/InfoBanner/zyjiaocheng/965/63cdee472e974967ba2aa03c5dd4f3b2.jpg)
我花了最近几天试图消除游戏中的内存泄漏,导致许多内存不足错误.我即将添加大量的图形,虽然不是很复杂,但会大大增加我的系统的处理要求,我有点担心我的内存使用情况,我希望有人可能有给我一些提示.我不想低于Android 2.1,所以请为此定制任何答案.
首先,我的游戏包括:
> 2个活动,13个XML文件(一些与布局的一小部分有关,一些对话框,以及与活动直接相关的2个).
>许多可绘制的,在Adobe Illustrator中制作并转换为PNG.这些可能很大,但并不是非常大,并且在大多数情况下,在任何给定时间内只有少量它们在内存中.
>相当多的对话.
>针对Android 1.6及以上版本.
>我使用了最新的Admob,因此,我必须建立3.2.
>我的模拟器的默认堆大小约为24 MB.
我游戏中的一些示例图片:
我学到:
>尽管我的应用程序总大小只有500K左右,但我不知何故占用24 Megs,由adb shell procrank计算.
>我做了相当多的优化,但没有看到内存的大幅增加.
>使用工具查找Heap中的内容通常只显示大约7 MB,使用大约3 MB.有时候,在打开新的对话框之类的时候,我看到了增加,但我不能说我看到它那么大……
> MAT表明我的类都没有使用异常大量的内存.
所以,鉴于所有这些,我的问题.
> 24 Mb是开发到(1.6 android)的实际要求吗?
>假设它是,我怎样才能为可以处理它的系统提供更好的图形,但不能为旧系统崩溃和刻录?
>我可以使用哪些常见问题来提高内存使用率?
解决方法:
在没有看到您的实际代码的情况下,我无法说明以下内容是否与您相关.但是,值得一试.
如果您还没有这样做,可以考虑使用一种名为LruCache的东西. http://developer.android.com/reference/android/util/LruCache.html
使用此工具,您可以确定您的缓存对象(例如位图)将在何时符合垃圾回收条件.因此,如果你想将其设置为4mb(例如),操作系统将尝试超越它时处理它. (有关实现细节和一个很好的例子,请参阅文档).
唯一的缺点是那个小宝石只带有3.2,所以你必须在AndroidManifest中制作你的min SDK,或者在运行时以编程方式检查api级别以确定你是否可以使用它.前3.2我会说你需要在你正在使用的任何位图上调用recycle(),但如果你已经优化了,我会认为你已经做好了这个机会很好.
这是关于堆和本机内存之间差异的一个很好的小片段. http://code-gotcha.blogspot.com/2011/09/android-bitmap-heap.html它可能(取决于你在做什么)帮助你理解为什么你没有看到你期望的记忆力下降.
最后来自SO的这篇文章也应该有助于处理堆大小:
Detect application heap size in Android
希望有所帮助.
内容总结
以上是互联网集市为您收集整理的android – 在内存有限的情况下,如何优雅地降低我的性能?全部内容,希望文章能够帮你解决android – 在内存有限的情况下,如何优雅地降低我的性能?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。