繁体   English   中英

当活动被杀死时,堆大小如何增加

[英]How is heap size increasing when activity is killed

我不知道以前是否有这个问题,但我想知道事情是如何运作的。

我有两个活动* Test_Activity *和* Second_Activity *。 Test_Activity有一个调用Second_Activity的按钮(通过using和Intent调用),在我的Second_Activity中,我有一个按钮可以返回到第一个(使用Intent )。 我尝试从测试中调用第二个,然后从第二个开始重新测试。 我尝试了大约10次(在此期间没有杀死活动)当我更新时发现我的堆大小从3.027Mb - 4.002Mb

之后,我在调用其他活动时将*finish()*添加到编码中,重复相同的过程10次。 我发现堆大小仍在增加。 怎么样..?? 当活动被杀死时,它是不是从记忆中删除了......? 如果堆大小继续这样,那么当我的应用程序达到最大限制时,我的应用程序就不会被杀死。 android中应用程序的堆大小限制是多少???

我想澄清的另一件事是,为什么只有2个活动(如上所述)没有太多资源的应用程序消耗的堆大小为3.027Mb? 我没有添加任何drawables或任何东西。

这种增长(3到4MB)绝对无关紧要。 如果需要,Android可以实例化并保留一些资源。 如果你真的担心内存消耗,你应该使用MAT进行内存分析 这是一篇关于内存管理的技术文章 如果你觉得程序中有一些内存泄漏(活动挂在某处,你不知道在哪里和如何),这里有一个Google IO视频演示 ,可以帮助你跟踪它。

After that I added *onFinish()* to the coding中没有Android调用的onFinish回调方法。

应用程序使用的总堆未标准化。 我在索尼上看到了相同的应用程序使用4到6 MB,而三星上的相同应用程序则需要15到20 MB。 这是一个非常简单的应用程序......这一切都取决于制造商。 只要你没有泄漏大量的内存块,或者你没有使用比实际需要的资源更大的资源,你就不应该担心这些不同的内存使用情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM