Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 大约1mb文件大小限制?_Android - Fatal编程技术网

Android 大约1mb文件大小限制?

Android 大约1mb文件大小限制?,android,Android,我的应用程序需要保存大约2-20mb的文件。当我尝试这样做时,我遇到了一个OutOfMemory异常。我读了一些书,看起来Android的文件大小限制是1mb。这是正确的吗?如果是这样的话,除了将每个文件分割成1mb块之外,还有什么方法可以绕过这个限制吗 主应用程序需要很小,比如

我的应用程序需要保存大约2-20mb的文件。当我尝试这样做时,我遇到了一个OutOfMemory异常。我读了一些书,看起来Android的文件大小限制是1mb。这是正确的吗?如果是这样的话,除了将每个文件分割成1mb块之外,还有什么方法可以绕过这个限制吗

主应用程序需要很小,比如<1 MB,但只要将文件保存在存储卡上,就可以保存任意多的文件,也可以保存任意大的文件。可用于应用程序(和其他安全数据)的可用空间有限,通常低于128 MB。因此,基本上你需要保持你的应用程序小,并把大的部分作为一个附加或额外的文件,可以放在存储卡上。如果您的应用程序将使用可用空间中的20MB,则将大大减少使用该应用程序的人数。

主应用程序需要较小,如<1 MB,但您可以保存任意数量的文件,只要将其保存在存储卡上,就可以保存任意大小的文件。可用于应用程序(和其他安全数据)的可用空间有限,通常低于128 MB。因此,基本上你需要保持你的应用程序小,并把大的部分作为一个附加或额外的文件,可以放在存储卡上。如果您的应用程序将使用20MB的可用空间,它将大大减少使用它的人数。

OutOfMemoryError意味着您超出了VM的RAM预算,即16MB或24MB,具体取决于您使用的设备。它与文件大小无关

您可能指的1MB限制是APK文件中压缩资产的最大大小

应用程序专用数据区或外部存储中的文件可以根据文件系统的允许大小而定。(我听说Android用于SD卡的FAT32实现对单个文件有2GB的限制,但不记得该线程的分辨率。)可用磁盘空间可能是一个更大的问题


回到您最初的问题,检查logcat输出(通过
adb logcat
或DDMS),查看在OOM触发之前是否有来自垃圾收集器的消息。

OutOfMemoryError表示您超出了VM的RAM预算,即16MB或24MB,具体取决于您使用的设备。它与文件大小无关

您可能指的1MB限制是APK文件中压缩资产的最大大小

应用程序专用数据区或外部存储中的文件可以根据文件系统的允许大小而定。(我听说Android用于SD卡的FAT32实现对单个文件有2GB的限制,但不记得该线程的分辨率。)可用磁盘空间可能是一个更大的问题


回到您最初的问题,检查logcat输出(通过
adb logcat
或DDMS),查看在OOM触发之前是否有来自垃圾收集器的消息。

我认为这不准确。例如,浏览器是一个应用程序,但它可以下载任意大小的文件。您确定这不是您的应用程序的问题吗?你检查过你是否有足够的空间了吗?你能说得更准确些吗?你是在进行服务器调用吗?你是在解析时出错还是在获取输入流时出错。我是在android模拟器上运行的,而不是在实际设备上运行的。我的应用程序下载xml文件,对其进行解析,将信息存储在自定义的可序列化类中,然后使用ObjectOutputStream将其写入文件。解析并将其存储在类中效果良好。只有当我试图保存文件时,我才会遇到问题。事实上,如果我从类中删除大约2/3的数据,它可以很好地保存。我认为,由于数据在内存中占用了大量空间,保存文件可能会将其推到边缘。有没有办法增加应用程序分配的总虚拟内存?我认为这不准确。例如,浏览器是一个应用程序,但它可以下载任意大小的文件。您确定这不是您的应用程序的问题吗?你检查过你是否有足够的空间了吗?你能说得更准确些吗?你是在进行服务器调用吗?你是在解析时出错还是在获取输入流时出错。我是在android模拟器上运行的,而不是在实际设备上运行的。我的应用程序下载xml文件,对其进行解析,将信息存储在自定义的可序列化类中,然后使用ObjectOutputStream将其写入文件。解析并将其存储在类中效果良好。只有当我试图保存文件时,我才会遇到问题。事实上,如果我从类中删除大约2/3的数据,它可以很好地保存。我认为,由于数据在内存中占用了大量空间,保存文件可能会将其推到边缘。有没有办法增加应用程序分配的总虚拟内存?嗨,新安卓操作系统的1MB限制现在还存在吗?我找不到任何关于这个的文档。你知道我在哪里可以找到它吗?看看代码,似乎限制在Froyo中存在,但在姜饼中消除了。请参阅Froyo的frameworks/base/include/utils/Asset.h中的UNCOMPRESS_DATA_MAX以了解它是如何定义的。嗨,我在哪里可以找到android源文件?它们不是Java代码吗?Android框架的一部分是用C/C++编写的。有关下载完整目录树的信息,请参阅。(请记住,您需要Froyo或更早版本才能看到此限制。)或者请参见中的第67行。嗨,新的Android操作系统现在是否仍然存在1MB限制?我找不到任何关于这个的文档。你知道我在哪里可以找到它吗?看看代码,似乎限制在Froyo中存在,但在姜饼中消除了。请参阅Froyo的frameworks/base/include/utils/Asset.h中的UNCOMPRESS_DATA_MAX以了解它是如何定义的。嗨,我在哪里可以找到android源文件?它们不是Java代码吗?Android框架的一部分是wr