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

时间:2015-07-26 11:20:10

标签: android-ndk android-assets

只是想知道什么是最优的,因为NDK docs没有提出任何建议。我很确定虽然bufSize的类型为size_t,但指定SIZE_MAX可能不是明智的选择!

1 个答案:

答案 0 :(得分:3)

如果您的文件(这是主观的,但对于我来说小于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但是再次,这是主观的,没有硬限制(直到内存分配失败)