NDK AAsset_read():推荐的缓冲区大小?

NDK AAsset_read(): Recommended buffer size?

只是想知道这里的最佳选择是什么,因为 NDK docs 中没有提出任何建议。我相当确定虽然 bufSizesize_t 类型,但指定 SIZE_MAX 可能不是一个明智的选择!

如果您的文件(这是主观的,但对我来说小是在 512kb 以下)您可以做的是:

AAsset* file = AAssetManager_open(assetManager, "your/file.ext", AASSET_MODE_BUFFER);
size_t fileLength = AAsset_getLength(file);
char* fileContent = new char[fileLength];
AAsset_read(file, fileContent, fileLength);

它实际上可以处理大得多的文件,直到您的内存分配失败。

如果您打算加载大文件,那么我会按 512kb 的 chunck 读取,但同样,这是主观的,没有硬性限制(直到内存分配失败)