你应该问自己的问题
1. 我的内存要求是什么?
您需要大量内存(不是物理内存,而是在堆中)来处理数据还是最少?现在一天中的大多数设备都带有 64 MB 堆大小,但这因制造商而异。即使对于相同的 API 级别,它也是不同的。找出你的最小值,然后确保你有足够的堆内存可用。
要监视您在运行时消耗的内存,请检查此
要了解当前设备上可用的堆内存量,请检查this和this。
请记住,android 不像 windows,每个应用程序都以相同数量的堆内存开始,并且对于该设备上的每个应用程序来说都是恒定的。这意味着不允许应用程序增长超出此可用内存。您可以通过清单中的此标记请求额外内存, android:largeHeap="true"
但此功能不适用于 pre 3.0 OS 版本。
我已经在其中几乎所有内存都被其他应用程序使用的移动设备中尝试了这个应用程序。我的应用程序无法拍摄照片。当我删除一些应用程序时,我的应用程序工作正常。
上述假设非常令人困惑,因为当您的应用程序运行 Android 时将所有其他应用程序放在一边,这意味着您的应用程序将具有由您的堆大小定义的内存,并且如果操作系统认为它需要更多内存或未能分配更多内存,它将杀死这些进程。Android 优先考虑当前正在运行的任务。因此,如果您正在与应用程序交互,那么它的内存极不可能比堆大小少。他们可能有其他应用程序出现问题的不同原因。
2. 我的 API 要求是什么?
如果您使用的是旧 API 和级别不可用的任何特殊 API,那么您有两个选择,或者您说您的应用程序根本不支持该 API 版本,或者您可以支持该特定功能。
3. 我的硬件要求是什么?
问问自己,您是否正在使用任何专业软件或硬件,是否所有设备都可以使用该特殊硬件?例如,NFC、蓝牙。
4. 我的显示要求是什么?这个应用程序仅适用于移动设备还是同时适用于移动设备和平板电脑?那些介于平板电脑和手机之间的 7 英寸呢?
5. 我的本地化要求是什么?
这个应用程序是否依赖任何特殊字符集?如果某个设备没有这些字符怎么办。
而且,仅供参考,您提到的对象数量不应超过几 MB。但在使用位图时要小心。读这个