如何知道在运行中我的应用程序有多少内存可用?我的应用程序下载一些位图并保存(在内存中)它们,以免再次下载它的用户。但据我所知,Java的堆只有16MB,所以我需要处理一些低内存情况并丢弃一些下载的位图(并非所有的位图都在同一时间显示,但它们可能对用户可见只需点击一下,如果已经下载)。执行期间可用应用程序的内存
有没有办法获得实际的可用内存(也就是说,Java堆可用内存)?
如何知道在运行中我的应用程序有多少内存可用?我的应用程序下载一些位图并保存(在内存中)它们,以免再次下载它的用户。但据我所知,Java的堆只有16MB,所以我需要处理一些低内存情况并丢弃一些下载的位图(并非所有的位图都在同一时间显示,但它们可能对用户可见只需点击一下,如果已经下载)。执行期间可用应用程序的内存
有没有办法获得实际的可用内存(也就是说,Java堆可用内存)?
在Android上存储一个博客
http://codelog.dexetra.com/post/47690459692/getting-around-android-memory-blues
检查出来..它可以帮助ü..
不要担心所有这些,请考虑将表示每个图像的对象包装在WeakReference中。然后只需使用Map<String, WeakReference<Image>>
缓存即可,或者您正在执行此操作。
这样,如果它已经在缓存中,就使用它。如果它不在缓存中(或者它以前从未被访问过,或者它已经被GC'd),那么重新获取它。
我会试试看。我会等待看看是否有办法按照我解释的方式获取可用内存,以便其他用户可能会看到答案。 (以防万一,投票:D ...好建议) – Alesqui
首先是报告“圆盘状”专用存储区,第二系统RAM统计。 –
感谢您的信息克里斯斯特拉顿。我删除了不必要的链接,只留下了所需的信息,然后... – Alesqui
首先,您可能需要决定是否要将它们下载到设备的非易失性存储器中,即私有文件区或共享外部存储器(“sdcard “),所以他们坚持不同的会议。然后,您可以考虑将它们放在内存中,或根据需要加载它们,或者考虑各种按需自动方案。 –