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

Eng*_*eer 0 android-ndk android-assets

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

Sis*_*str 5

如果您的文件很小(这是主观的,但对我来说小于 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);
Run Code Online (Sandbox Code Playgroud)

它实际上可以用于更大的文件,直到您的内存分配失败。

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