Android“内部存储”已使用但未报告


9

作为运行姜饼的Nexus One的所有者,我一直在争取在手机的内部存储空间中保留可用空间。今天,我注意到了一些奇怪的事情。

Andorid的“管理应用程序”屏幕的底部显示了一个条形图,该条形图报告了手机的“内部存储”(我有2900万可用空间)。单击应用程序时,可以看到“应用程序”和应用程序的“数据”的存储空间。在大多数情况下,该应用程序存储在SD卡上。该应用程序的“数据”存储在电话中(我想)。

我发现的是,我没有看到占用内部存储的全部内容。例如,我的内部存储器有29M的可用空间。SD卡中存储的Angry Birds应用程序为314万。数据为4.0K。然后,我删除了《愤怒的小鸟》(gasp!),我的免费内部存储器跃升到31M。因此,当我只希望它释放4.0K时,它似乎已释放了2M。知道这里发生了什么吗?

Answers:


4

可用空间差异可以由三个相关因素来解释,这些因素最终可能会给您一些有关内部存储器上可用实际空间的误导性信息:

  1. 报告的可用空间

    在“管理应用程序”屏幕末尾报告的可用空间四舍五入为MB,它会根据您打开该屏幕的时间为您提供常规的可用空间估算,并且会不时更新(根据我的测试,每一分钟)。

    我之所以提到“四舍五入”,是因为如果您访问“存储设置”面板,则会清楚地看到可用空间(低至KB)。

  2. 应用分配

    正如t0mm13b所提到的,应用程序可能会完全移至SDCard或留下一部分,此问题与应用程序本身的开发更相关,没有遵循的标准规则。

    我使用“愤怒的小鸟”进行了一次练习,尽管下载内容提到了20MB,但安装后消耗了24MB。使用“管理应用程序”屏幕中为此目的的选项将其移动到SD卡后,内部存储器中剩下1.85MB的空间,外加4KB的数据。

  3. 来自其他应用程序或正在运行的服务的临时系统文件

    当我编写此答案时,报告的可用空间在2MB之间变化,这告诉我们操作系统正在根据正在运行的内容不断创建和释放空间。

可能还有其他因素与Gingerbread使用的ext4文件系统规范有关,但我认为它们不能更好地解释2MB的差异。


通过上面提到的三点,在使用带有备用Gingerbread ROM的设备对您提到的应用程序进行练习时,我设法解决了2MB的差异,就像您提到的空间一样。


确定已占用的内部和外部空间

在评论之后,关于一种准确了解应用程序在设备上的占用量并能够通过外部或内部存储查看的方法,我目前使用的最准确的应用程序是SanDisk Corp.的SanDisk Memory Zone。可从Google Play商店免费获得。

  1. 开启应用程式
  2. 选择所需的存储
  3. 检查有关它的细节

    磁盘扫描程序屏幕截图


很好的解释,就像Zuul总是这样:)那么,您是否可以说最终用户有任何方法可以清楚地确定应用程序占用了多少空间,以及在何处-不涉及“复杂的事情”,例如使用终端应用程序?由于我们在这里有许多有关“我的存储空间去了哪里”的问题,因此这将是一个很大的帮助。
伊兹

添加到我以前的评论,因为我没有说清楚:我的意思是确定多少空间是通过对内部存储的应用程序占用,有多少外部存储 -也就是说,看看有多少在哪里。最好的办法当然是可以在一处看到所有这些内容,这与我在图形存储浏览器中的回答所显示的相反。
伊兹

我相信,当使用股票Apps2SD将其移至SD时,其应用程序dex文件往往会留在手机内存中。所以我的理论是,应用程序的dex文件越少,App2SD的效率就越高。
伊凡(Irfan)2012年

我已经问过自己,给定的“应用程序分配”中是否包含Dalvik缓存。对于临时文件也是如此,这可以通过其所有者(uid)进行识别-但这将需要对文件系统进行全面扫描,这将花费一些时间和资源,但理论上可以按需完成(通过某些重新扫描按钮)。
伊齐

1
感谢您的补充,@ Zuul!使用该应用程序时:屏幕截图显示“手机内存”没有划分。是否会区分/data/data/data分区,而分区和分区通常会引起混淆(如果这些分区是单独的分区-并非所有设备/ Android版本都适用)?
伊齐

3

查看一下,我发现了一些有用的应用程序,可以显示存储的位置。

首先是DiskUsage。尽管屏幕截图1在此处显示了sdcard,但应用程序Playstore页面上的视频清楚地表明,它也可以在内部存储设备上使用,甚至可以链接到通常通过菜单->应用程序->管理应用程序找到的应用程序页面。您可以步行和放大/缩小每个区域,如屏幕截图上的注释所示。

我的第二个候选人是Folder Size Chart,它具有不同的设计,并且如屏幕截图2所示,还可以处理内部存储。

磁盘使用情况 文件夹尺寸表

这两个无疑可以帮助识别“存储猪”。在Playstore中发现了许多遵循此概念的其他工具,但大多数只限于sdcard或需要root用户访问权限。


3

由于N1与HTC Incredible密切相关,因此您可能会遇到困扰令人难以置信的用户(例如我自己)的同一存储空间不足问题。当我由于缺少分区空间而开始遇到强制关闭应用程序的问题时,我提出了一个相关问题,后来在对有关HTC Incredible上的错误“空间不足”(内部存储)警告的问题的回答中巩固了我对数据分区的理解。:

...我的应用程序设置屏幕向我显示了/data使用情况(绝不接近满,数字与/dataDiskUsage报告的大小相匹配),尽管我的应用程序实际上受较小的限制/data/data(我经常在这里空间不足)...

我发现报告为“内部存储”的数字表示完全无用的东西,并且从所有方面来说,对帮助我实际管理应用程序存储毫无用处。我同意Izzy在他对DiskUsage的推荐中,我发现它非常有用,特别是在生根时(具有root权限可以显示/data/data分区使用情况)。使用终端仿真器调查使用情况也有助于诊断我的问题。当您查看/data/data/data分区时,是否会看到相同的差异?


2

这听起来像您正在使用Apps2SD或同等功能,从而将应用程序移动到SDCard上,仅一部分应用程序存储在内部存储器中,其余部分存储在SDCard中。

为了进行验证,请检查SDCard并查看应用程序的数据是否仍然存在,/sdcard/Android/data/并在其中显示已安装的应用程序的软件包名称。

这是Apps2SD的正常机制。


谢谢,我正在使用Link2SD。我没有意识到它会遗留一部分应用程序。这有助于解释它。
rcourtna 2012年

1

许多人有这样的问题,而我也有同样的问题。将应用程序移动到SD卡只会延迟一些问题,因为其他内容会占用内部存储空间。我终于想通了,效果很好。

我有Galaxy Tab 7,但许多Android设备都会遇到这种情况。所谓/data的实际上并不只是数据,而是Android在其中安装应用程序apk以及与之相关的一些数据的地方。如果您将apk强制安装在SD卡上,它仍会使用一些/data空间(少量)来存储某些数据。

我发现的问题是/data/tombstone,您将找到10个名为的文件tombstone_0#。这些是由Android收集的持续/不间断的调试信息。这些文件会随着时间的推移而建立。对于普通用户,您不需要这样做。删除所有。这4个文件使用了1.89GB内部平板电脑存储空间中的1.4GB。

为此,您将需要根设备。是的,你必须。它不会爆炸,请放心,我已经做到了,还有其他很多!然后,使用“ Root Explorer”之类的程序浏览并删除垃圾邮件。如果您之前曾对设备进行过root操作,它将请求并被授予root特权,并且您将能够做任何您想做的事情。

要启动您的设备,只需在Google上“ root android [my device model]”,您便会快速找到如何启动您的设备。

这个问题是设计缺陷。当内部存储空间不足时,Android应该启动后台任务来清理该垃圾。


也请在此处查看我对您的类似答案的评论-我从来没有看到墓碑占用的空间超过10MB,您的情况是第一个。即使,它也需要root才能删除它们。PS:由于“墓碑”在Unix / Linux上被称为“核心转储”,因此其大小随相应(崩溃)的进程所使用的内存而异。很明显,您的应用程序是非常消耗内存的应用程序:)
Izzy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.