配置更改后android应用程序的内存使用情况

配置更改后android应用程序的内存使用情况,android,android-studio,memory,loader,Android,Android Studio,Memory,Loader,我最近进入了android开发领域,并且一直在学习Udacity上提供的一些android基础课程。我尝试过使用他们的论坛,但我并没有取得多大成功,所以我在这里发问 目前我正在学习第四门课程,内容涉及网络。其中一个课程介绍了先使用AsyncTask类,然后使用Loader异步加载数据。在异步任务上使用加载器的部分原因是,后者可能会导致内存泄漏,例如,如果手机在检索数据时方向发生变化。装载机应该没有这个问题。使用Android Studio上的监视器,我检查了在使用Loader时,每当我更改课程演

我最近进入了android开发领域,并且一直在学习Udacity上提供的一些android基础课程。我尝试过使用他们的论坛,但我并没有取得多大成功,所以我在这里发问

目前我正在学习第四门课程,内容涉及网络。其中一个课程介绍了先使用AsyncTask类,然后使用Loader异步加载数据。在异步任务上使用加载器的部分原因是,后者可能会导致内存泄漏,例如,如果手机在检索数据时方向发生变化。装载机应该没有这个问题。使用Android Studio上的监视器,我检查了在使用Loader时,每当我更改课程演示应用程序的方向时,使用的内存量。无论方向如何变化,可用内存量都会下降

我只使用空的应用程序模板尝试了同样的事情,同样的事情也会发生;显示器上显示的可用空间量将下降,分配的空间量将上升。在我单击监视器上的“启动垃圾收集器”图标之前,可用空间的数量不会下降。通过阅读,我了解到在方向更改时,活动会被销毁(通过在活动的onDestroy()回调上记录一条消息来确认这一点,然后切换方向),然后重新创建。但是被破坏的活动所使用的内存不应该被释放吗?为什么

谢谢


但它仍然不能回答我的问题(被破坏的活动所使用的内存不应该被释放吗?

你提出了一个有趣的问题,你是否也尝试过从水平方向旋转到垂直方向,然后再反向,要查看是否将重新创建水平的还是仅使用内存中缓存的?每次我更改方向(垂直到水平或水平到垂直)时,可用内存量都会下降。@stillsleep Well,我可以理解为什么在配置更改时空模板应用程序的内存会下降,因为它只处理主线程,但是您能否确认
加载程序
的内存在通过后台线程执行数据/网络过程时会像
异步任务
一样被占用?另外,您是否为
加载程序
相应地使用了
日志
,并注意到
加载程序
对于某个ID最多创建一次,因此在配置更改时只调用
onLoadFinished()
日志
,我只是想知道为什么显示器上显示的RAM在初始活动被破坏后,在配置更改时通常不会下降。您可能想知道如何工作。您提出了一个有趣的问题,您是否也尝试过从水平旋转到垂直,然后再反向旋转,要查看是否将重新创建水平的还是仅使用内存中缓存的?每次我更改方向(垂直到水平或水平到垂直)时,可用内存量都会下降。@stillsleep Well,我可以理解为什么在配置更改时空模板应用程序的内存会下降,因为它只处理主线程,但是您能否确认
加载程序
的内存在通过后台线程执行数据/网络过程时会像
异步任务
一样被占用?另外,您是否为
加载程序
相应地使用了
日志
,并注意到
加载程序
对于某个ID最多创建一次,因此在配置更改时只调用
onLoadFinished()
日志
,我只是想知道为什么显示器上显示的RAM在初始活动被破坏后,通常不会在配置更改时恢复。您可能想知道如何工作。