Asset Manager 资源

原文链接 https://developer.android.google.cn/ndk/reference/group___asset.html

文件

file asset_manager.h
file asset_manager_jni.h

asset_manager.h
类型定义符:
AAssetManager
AAsetDir
AAsset

枚举

enum{AASSET_MODE_UNKNOWN = 0,
AASSET_MODE_RANDOM = 1,
AASSET_MODE_STREAMING = 2,
AASSET_MODE_BUFFER =3}

函数

AAssetDir * AAssetManager_openDir (AAssetManager *mgr, const char *dirName)
AAsset * AAssetManager_open (AAssetManager *mgr, const char *filename, int mode)
const char * AAssetDir_getNextFileName (AAssetDir *assetDir)
void AAssetDir_rewind (AAssetDir *assetDir)
void AAssetDir_close (AAssetDir *assetDir)
int AAsset_read (AAsset *asset, void *buf, size_t count)
off_t AAsset_seek (AAsset *asset, off_t offset, int whence)
off64_t AAsset_seek64 (AAsset *asset, off64_t offset, int whence)
void AAsset_close (AAsset *asset)
const void * AAsset_getBuffer (AAsset *asset)
off_t AAsset_getLength (AAsset *asset)
off64_t AAsset_getLength64 (AAsset *asset)
off_t AAsset_getRemainingLength (AAsset *asset)
off64_t AAsset_getRemainingLength64 (AAsset *asset)
int AAsset_openFileDescriptor (AAsset *asset, off_t *outStart, off_t *outLength)
int AAsset_openFileDescriptor64 (AAsset *asset, off64_t *outStart, off64_t *outLength)
int AAsset_isAllocated (AAsset *asset)
AAssetManager * AAssetManager_fromJava (JNIEnv *env, jobject assetManager)

详细说明
类型定义符文档
typedef struct AAsset AAsset
AAsset 提供只读资源的访问
AAsset 对象并非线程安全对象,因此不应在所有线程之间共享。

typedef struct AAssetDir AAssetDir
AAssetDir 能够访问单个目录那样访问资源层次结构组块。内容由AAssetManager填充。
文件列表将按ASCII值伊升序排列。

typedef struct AAssetManager AAssetManager
AAssetManager通过创建AAsset对象提供对应用原始资源的访问。
AAssetManager是Java AAssetManager 低级别原生实现的包装器,可使用AAssetManager——fromJava()来获取指针。
可利用AAssetDir对象来存取单个目录,以类似文件系统的方式检查资源层次结构。
可在多个线程之间共享原生AAssetManager指针。

枚举类型文档

匿名 enum
使用AAssetManager_open打开资源的可用访问模式
枚举器:
AASSET_MODE_UNKNOWN 没有关于数据访问方式的具体信息
AASSET_MODE_RANDOM 读取数据块,并向前和向后寻找
AASSET_MODE_STREAMING 顺序读取,并偶尔向前寻找
AASSET_MODE_BUFFER 调用方计划请求获得包含所有数据的只读缓冲区

函数文档

void AAsset_close 关闭该资源,从而释放所有关联的资源。
const void * AAsset_getBuffer 获取指向包含资源全部内容的缓冲区指针
失败时返回NULL
off_t AAsset_getLength 报告资源数据总大小
off64_t AAsset_getLength64 报告资源总大小。使用64位数字报告大小,而不像AAsset——getLength那样使用32位数字报告。
off_t AAsset_getRemainingLength 报告可从当前位置读取的资源数据的总量。
off_t64 AAsset_getRemainingLength64 报告可从当前位置读取的资源数据总量
使用64位报告而不是像AASSET_getRemainingLength那样使用32位数字报告。
int AAsset_isAllocated 返回该资源内部缓冲区是否分配在普通内存中。
int AAsset_openFileDescriptor 打开一个可用于读取资源数据的新文件描述符。如果start或length不能使用32位数字表示,将会被截断。如果文件较大,请改用AAsset_openFileDescriptor64.
如果无法直接访问文件描述符,则返回值<0。
int AAsset_openFileDescriptor64 打开一个可用于读取资源数据的新文件描述符。
使用64位数字表示偏移和长度,而不是像AAsset_openFIleDescriptor那样使用32位数字表示。如果无法直接访问文件描述符(例如,如果资源已压缩),则返回值<0。
int AAsset_read 尝试从当前便宜中读取数据的字节”count”。
返回读取的字节数,EOF时返回0,出错时返回<0的值。
off_t AAsset_seek 寻找到资源数据内的指定偏移。“whence”使用的常量与Iseek()/fseek()相同。
成功时返回新位置,出错时返回(off_t)-1。
off64_tAAsset_seek64 关闭打开的AAssetIdr_close,从而释放所有相关资源。
const char* AAssetDir_getNextFileName
循环访问资源目录中的文件。所有文件名都已返回时返回一个NULL字符串。
返回的文件名适合传递给AAssetManager_open()。此处返回的字符串由AssetDir实现拥有,如果在此AAssetDir实例上进行了任何其他调用,则不能保证其始终有效。
void AAssetDir_rewind 将AAssetDir_getNextFileName()的迭代状态重置至开头。
AAssetManager * AAssetManager_fromJava
已知Dalvik AssetManager对象,获取相应的原生AAssetManager对象。请注意,调用方负责获取和保持对jobject的VM引用,以防止在原生对象处于使用状态时系统将其作为垃圾进行回收。
AAsset* AAssetManager_open
打开一个资源
此处返回的对相应通过调用AAsset_close(0进行释放。
AAssetDir* AAssetManager_openDir 打开资源层次结构内的指定目录。随后可通过AAssetDir函数检查该目录。要打开顶级目录,请传入”作为dirName。
此处返回的对象应通过调用AAssetDir_close进行释放。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值