Android 可用的应用程序';执行过程中的内存

Android 可用的应用程序';执行过程中的内存,android,memory-management,Android,Memory Management,我如何知道我的应用程序在运行中有多少可用内存?我的应用程序下载一些位图并将其保存(在内存中),这样就不会再次下载位图而给用户带来麻烦。但据我所知,Java的堆只有16MB,因此我需要处理一些内存不足的情况,并扔掉一些下载的位图(并非所有位图都同时显示,但如果已经下载,用户只需单击一下就可以看到它们) 有没有方法获得实际可用内存(即java堆可用内存)?,而不是担心这些,请考虑在A中包装代表每个图像的对象。然后,只需使用Map进行缓存,或者以任何方式进行缓存即可 这样,如果它已经在缓存中,就使用它

我如何知道我的应用程序在运行中有多少可用内存?我的应用程序下载一些位图并将其保存(在内存中),这样就不会再次下载位图而给用户带来麻烦。但据我所知,Java的堆只有16MB,因此我需要处理一些内存不足的情况,并扔掉一些下载的位图(并非所有位图都同时显示,但如果已经下载,用户只需单击一下就可以看到它们)


有没有方法获得实际可用内存(即java堆可用内存)?

,而不是担心这些,请考虑在A中包装代表每个图像的对象。然后,只需使用
Map
进行缓存,或者以任何方式进行缓存即可


这样,如果它已经在缓存中,就使用它。如果它不在缓存中(或者它以前从未被访问过,或者它已经被GC处理过),那么再次获取它。

安卓内存博客


查看..这可能会对你有所帮助..

第一个是报告“类磁盘”专用存储区域,第二个是系统ram统计数据。感谢Chris Stratton提供的信息。我删除了不必要的链接,只留下了所需的信息……首先,您可能需要决定是否要下载这些链接,而不是将其保存在设备上的非易失性存储中,即私人文件区域或共享外部存储(“SD卡”),以便它们在会话中保持不变。然后你可以考虑将它们存储在内存中,或者根据需要加载它们,或者各种按需自动方案。我希望避免将文件保存在SD卡上,因为SD卡的速度非常慢。不过,我会试试扎克的建议,因为它似乎很有希望。我会试试看。我将等待,看看是否有一种方法可以按照我解释的方式获取可用内存,以便其他用户可以看到答案。(以防万一,投赞成票:D…好建议)我会记下你的答案,因为Patrick Dubroy在Google I/O 2011上的演示,在你发布的链接中。这是一次极好的演讲,内容丰富,确实帮助了我。谢谢链接已断开。请在您的帖子中添加相关信息。