在separate thread上,我通过询问将文件复制到“内部存储器”的最佳方式来证明我对内存类型的无知,并且被告知这不是一个好主意,并且最好阅读将文件放入“RAM”。我现在试图了解这两种类型的内存是如何相关的,以及如何使用它们。
我理解“内部存储器被认为是用于存储APK,ROM图像等的闪存。”
我的HTC Hero的规格说有“ROM:512MB,RAM:288MB”,没有说明RAM是如何细分的。
在手机上,“设置” - >“SD&手机存储”页面只是指“SD卡”和“内部手机存储”,而后者只显示一个“可用空间”金额。
Data Storage的Android参考文献提及“内部存储”。这是“你可以保存文件”的地方。该页面还提到了我认为可以存储在“内部存储”中的SQLite数据库文件。但是,该页面似乎没有提供任何有关内部存储与另一种(可能是更动态的)类型之间的RAM细分的解释。
是否存在某种动态划分总RAM(Hero上的288MB)为两个可以不同方式使用的子部分?如果是这样,Android文档中的位置是这样解释的吗?
答案 0 :(得分:40)
我理解“内部存储器被认为是用于存储APK,ROM图像等的闪存。”
我的HTC Hero的规格说有“ROM:512MB,RAM:288MB”,没有说明RAM是如何细分的。
RAM不会在任何类型的永久基础上“细分”。 RAM根据需要运行进程使用。 SDK应用程序要注意的最重要的事情是,进程可以消耗多少RAM的上限 - 在你的Hero上,它应该是16MB。
在手机上,“设置” - >“SD&手机存储”页面只是指“SD卡”和“内部手机存储”,而后者只显示一个“可用空间”金额。
“内部手机存储”是指为APK文件,数据库,首选项和其他本地文件预留的板载闪存空间部分。
该页面还提到了我认为可以存储在“内部存储”中的SQLite数据库文件。
正确。
但是,该页面似乎没有提供任何有关内部存储与另一种(可能是更动态的)类型之间的RAM细分的解释。
RAM与内部存储无关。
是否有某种动态划分总RAM(Hero上的288MB)为两个可以不同方式使用的子部分?
没有
让我们退一步。
RAM是RAM是RAM。手机上的RAM与台式机,笔记本电脑,上网本等RAM并没有太大差别。过去几十年来,这种结构在使用时保持相对稳定,特别是一旦我们从大型机中逃出。运行程序(操作系统和最终用户应用程序)消耗RAM,但仅在它们运行时使用。并且RAM会在重启时被擦除,在手机和桌面上都会被擦除。
现在,您的普通台式机,笔记本电脑或上网本也有一个硬盘驱动器,可以提供比RAM提供更多的永久存储空间。在Android中没有绝对的术语 - 我倾向于使用“板载闪存”,其他人称之为“内部存储”,但正如您将看到的,后一个术语充满了混乱。就像硬盘驱动器一样,板载闪存存储器用于操作系统(也称为Android中的固件),最终用户程序(也称为Android中的APK文件)和最终用户数据(也称为数据库,共享首选项,存储在getFilesDir()
所在位置的其他文件。
板载闪存存储分为几个分区。如果您是Windows用户,分区基本上会说“您的硬盘分为C:,E:和F:驱动器”。在Android中,一个分区专用于固件,另一个分区(“数据分区”)专用于最终用户程序和数据。 (注意:前面的描述并不完全准确,但差异远远超出了本答案的范围。)
所以,记住这一切: