如何仅在 ram 上存储(远程检索图像)而不保存文件,在 corona sdk 中?
How to only store (the remotly retrieved image) on ram and not save the file, in corona sdk?
Corona SDK 提供了一项功能,您可以 get a remote image
语法是:
display.loadRemoteImage( url, method, listener [, params],
destFilename [, baseDir] [, x, y] )
我的问题是:如何将远程图片直接加载到内存中,而不必存储在手机上?我不想存储在 destFilename
中怎么办?
如果没有将图像存储在设备上,则无法显示图像。所有浏览器都以相同的方式工作。他们在本地存储图像,直到不需要为止。
您最好的选择是将其存储在临时目录中,这样当应用程序关闭或 phone 关闭或重新启动时,文件会丢失并且不会占用硬盘内存。
您可以将以下内容用作 baseDir:
system.TemporaryDirectory
这是从 Corona 的文档中抓取的示例:
display.loadRemoteImage("http://coronalabs.com/images/coronalogogrey.png", "GET",networkListener, "coronalogogrey.png", system.TemporaryDirectory, 50,50 )
编辑
这是另一个答案的引述,显示了应用程序的总体情况 运行:https://android.stackexchange.com/questions/80867/understanding-ram-sd-card-and-device-memory-of-an-smartphone
RAM - Random Accessed Memory - When running an application on your
phone, the application is loaded from your device memory into the RAM,
just like on a computer, the main purpose for this is access speed is
far greater in RAM.
在您的例子中,您在 运行 时将远程图像加载到临时文件夹中。 /tmp 文件夹位于您的沙盒中,位于移动存储中。但是,您目前在 运行ning 应用程序的 RAM 上使用它。
加载后,此图像会暂时放入 RAM 上的此文件夹中,以便快速高效地使用。在关闭您的应用程序之前,我假设您将清理您的临时文件夹。此图像永远不会存储在临时文件夹中供以后使用。它仅在使用 RAM 的 运行 时间内使用。
我不能 100% 确定这一点,因为 Corona 没有这方面的任何文档。我清楚地知道的是 1) RAM 用于 运行ning 应用程序 2) tmp 文件夹通常在关闭应用程序之前被清除。这些事实可用于验证在 运行 时间内使用的远程图像是否直接放置在 RAM 中。为了 100% 保证运行ce,我们需要研究移动内存管理的人。
把它想象成一个变量。您的变量是在 运行 时创建的,并放置在 RAM 中以供临时使用。您在这里通过在 运行 时间加载远程图像来做完全相同的事情。如果图像在您的应用程序文件夹中,那么加载它只会将其从内存加载到 RAM 中。在您的情况下,您很可能使用 RAM 来存储图像。
Corona SDK 提供了一项功能,您可以 get a remote image
语法是:
display.loadRemoteImage( url, method, listener [, params], destFilename [, baseDir] [, x, y] )
我的问题是:如何将远程图片直接加载到内存中,而不必存储在手机上?我不想存储在 destFilename
中怎么办?
如果没有将图像存储在设备上,则无法显示图像。所有浏览器都以相同的方式工作。他们在本地存储图像,直到不需要为止。
您最好的选择是将其存储在临时目录中,这样当应用程序关闭或 phone 关闭或重新启动时,文件会丢失并且不会占用硬盘内存。
您可以将以下内容用作 baseDir:
system.TemporaryDirectory
这是从 Corona 的文档中抓取的示例:
display.loadRemoteImage("http://coronalabs.com/images/coronalogogrey.png", "GET",networkListener, "coronalogogrey.png", system.TemporaryDirectory, 50,50 )
编辑
这是另一个答案的引述,显示了应用程序的总体情况 运行:https://android.stackexchange.com/questions/80867/understanding-ram-sd-card-and-device-memory-of-an-smartphone
RAM - Random Accessed Memory - When running an application on your phone, the application is loaded from your device memory into the RAM, just like on a computer, the main purpose for this is access speed is far greater in RAM.
在您的例子中,您在 运行 时将远程图像加载到临时文件夹中。 /tmp 文件夹位于您的沙盒中,位于移动存储中。但是,您目前在 运行ning 应用程序的 RAM 上使用它。
加载后,此图像会暂时放入 RAM 上的此文件夹中,以便快速高效地使用。在关闭您的应用程序之前,我假设您将清理您的临时文件夹。此图像永远不会存储在临时文件夹中供以后使用。它仅在使用 RAM 的 运行 时间内使用。
我不能 100% 确定这一点,因为 Corona 没有这方面的任何文档。我清楚地知道的是 1) RAM 用于 运行ning 应用程序 2) tmp 文件夹通常在关闭应用程序之前被清除。这些事实可用于验证在 运行 时间内使用的远程图像是否直接放置在 RAM 中。为了 100% 保证运行ce,我们需要研究移动内存管理的人。
把它想象成一个变量。您的变量是在 运行 时创建的,并放置在 RAM 中以供临时使用。您在这里通过在 运行 时间加载远程图像来做完全相同的事情。如果图像在您的应用程序文件夹中,那么加载它只会将其从内存加载到 RAM 中。在您的情况下,您很可能使用 RAM 来存储图像。