我有一个应用程序,它使用了相当多的图形.
当我在我的模拟器(1.5 – 2.2)上反复打开和关闭我的应用程序时,它运行正常并通过检查堆我可以看到所有内容都正在清理并正确使用.
但是,当我在HTC Aria手机(2.1)上运行我的应用程序时,每次尝试重新打开它时应用程序都会崩溃.当我查看堆时,我可以看到对象没有被清理,就像它们在模拟器中一样.
有谁知道为什么会发生这种行为?我确实在另一个HTC Aria(一个朋友)上尝试过它,它和我的手机一样崩溃,所以我认为它不仅仅与我的特定手机隔离.
任何想法或想法将非常感谢为什么事情在模拟器上正常清理,而不是在我的手机上清理.有一点需要注意的是,我几天前在手机上工作正常,而且我没有太大变化,现在它不能在我的手机上工作,所以这对我来说有点神秘.
谢谢!
注意:
崩溃是由OutOfMemory异常引起的.我正在预加载一些图形,并且没有足够的内存使两个应用程序实例同时运行,因此它崩溃了,因为应用程序的第一个实例没有正确清理.
最佳答案 你有几个模拟器,都运行这个应用程序,关闭它并重新启动它.
您的
Android设备有多个进程同时运行,如后台同步,Facebook通知,Twitter通知,日历同步,通讯录同步等.
一种看待这种情况的方法是尝试模仿不同仿真器上的Android设备状态,并查看是否可以在仿真器上获得相同的错误.使用一些在后台同步的应用程序和其他使用大量内存的应用程序.然后,您拥有一个模拟现实世界的测试环境,您可以将应用程序更改为不崩溃的状态.也许尽量缩小图像以减少内存使用.
请记住,您永远不能强迫Garbace收集器启动.您只能告诉系统可以收集此垃圾.