Asset
摘要
枚举 |
|
---|---|
Anonymous Enum 16{
|
enum 使用 AAssetManager_open 打开 asset 的可用访问模式。 |
类型定义 |
|
---|---|
AAsset
|
typedefstruct AAsset
AAsset 提供对只读 asset 的访问。 |
AAssetDir
|
typedefstruct AAssetDir
AAssetDir 提供对 asset 层级结构中某个部分的访问,就像它是单个目录一样。 |
AAssetManager
|
typedefstruct AAssetManager
AAssetManager 通过创建 AAsset 对象来提供对应用原始 asset 的访问。 |
函数 |
|
---|---|
AAssetDir_close(AAssetDir *assetDir)
|
void
关闭已打开的 AAssetDir,释放所有相关资源。
|
AAssetDir_getNextFileName(AAssetDir *assetDir)
|
const char *
迭代 asset 目录中的文件。
|
AAssetDir_rewind(AAssetDir *assetDir)
|
void
将 AAssetDir_getNextFileName() 的迭代状态重置到开头。
|
AAssetManager_fromJava(JNIEnv *env, jobject assetManager)
|
给定 Dalvik AssetManager 对象,获取相应的原生 AAssetManager 对象。
|
AAssetManager_open(AAssetManager *mgr, const char *filename, int mode)
|
AAsset *
打开 asset。
|
AAssetManager_openDir(AAssetManager *mgr, const char *dirName)
|
打开 asset 层级结构中指定的目录。
|
AAsset_close(AAsset *asset)
|
void
关闭 asset,释放所有相关资源。
|
AAsset_getBuffer(AAsset *asset)
|
const void *
获取指向包含 asset 全部内容的缓冲区的指针。
|
AAsset_getLength(AAsset *asset)
|
off_t
报告 asset 数据的总大小。
|
AAsset_getLength64(AAsset *asset)
|
off64_t
报告 asset 数据的总大小。
|
AAsset_getRemainingLength(AAsset *asset)
|
off_t
报告从当前位置可读取的 asset 数据总量。
|
AAsset_getRemainingLength64(AAsset *asset)
|
off64_t
报告从当前位置可读取的 asset 数据总量。
|
AAsset_isAllocated(AAsset *asset)
|
int
返回此 asset 的内部缓冲区是否分配在普通 RAM 中(即
|
AAsset_openFileDescriptor(AAsset *asset, off_t *outStart, off_t *outLength)
|
int
打开一个新的文件描述符,可用于读取 asset 数据。
|
AAsset_openFileDescriptor64(AAsset *asset, off64_t *outStart, off64_t *outLength)
|
int
打开一个新的文件描述符,可用于读取 asset 数据。
|
AAsset_read(AAsset *asset, void *buf, size_t count)
|
int
尝试从当前偏移量读取 'count' 字节的数据。
|
AAsset_seek(AAsset *asset, off_t offset, int whence)
|
off_t
定位到 asset 数据中的指定偏移量。
|
AAsset_seek64(AAsset *asset, off64_t offset, int whence)
|
off64_t
定位到 asset 数据中的指定偏移量。
|
枚举
Anonymous Enum 16
声明于android/asset_manager.h
Anonymous Enum 16
使用 AAssetManager_open 打开 asset 的可用访问模式。
属性 | |
---|---|
AASSET_MODE_BUFFER |
调用者计划请求包含所有数据的只读缓冲区。 |
AASSET_MODE_RANDOM |
读取分块,并向前和向后查找。 |
AASSET_MODE_STREAMING |
顺序读取,偶尔向前查找。 |
AASSET_MODE_UNKNOWN |
没有关于数据访问方式的特定信息。 |
类型定义
AAssetManager
声明于android/asset_manager.h
struct AAssetManager AAssetManager
AAssetManager 通过创建 AAsset 对象来提供对应用原始 asset 的访问。
AAssetManager 是 Java AAssetManager 低级原生实现的封装器,可以使用 AAssetManager_fromJava() 获取指针。
asset 层级结构可以像文件系统一样进行检查,使用 AAssetDir 对象浏览单个目录。
原生 AAssetManager 指针可以在多个线程之间共享。
函数
AAssetDir_close
声明于android/asset_manager.h
void AAssetDir_close( AAssetDir *assetDir )
关闭已打开的 AAssetDir,释放所有相关资源。
AAssetDir_getNextFileName
声明于android/asset_manager.h
const char * AAssetDir_getNextFileName( AAssetDir *assetDir )
迭代 asset 目录中的文件。
当所有文件名都已返回时,返回 NULL 字符串。
返回的文件名适合传递给 AAssetManager_open()。
此处返回的字符串由 AssetDir 实现拥有,如果在同一 AAssetDir 实例上进行任何其他调用,不能保证其保持有效。
AAssetDir_rewind
声明于android/asset_manager.h
void AAssetDir_rewind( AAssetDir *assetDir )
将 AAssetDir_getNextFileName() 的迭代状态重置到开头。
AAssetManager_fromJava
声明于android/asset_manager_jni.h
AAssetManager * AAssetManager_fromJava( JNIEnv *env, jobject assetManager )
给定 Dalvik AssetManager 对象,获取相应的原生 AAssetManager 对象。
请注意,调用者负责获取并持有 jobject 的 VM 引用,以防止原生对象在使用期间被垃圾回收。
AAssetManager_open
声明于android/asset_manager.h
AAsset * AAssetManager_open( AAssetManager *mgr, const char *filename, int mode )
打开 asset。
此处返回的对象应通过调用 AAsset_close() 来释放。
AAssetManager_openDir
声明于android/asset_manager.h
AAssetDir * AAssetManager_openDir( AAssetManager *mgr, const char *dirName )
打开 asset 层级结构中指定的目录。
然后可以使用 AAssetDir 函数检查该目录。要打开顶级目录,将 "" 作为 dirName 传入。
此处返回的对象应通过调用 AAssetDir_close() 来释放。
AAsset_getBuffer
声明于android/asset_manager.h
const void * AAsset_getBuffer( AAsset *asset )
获取指向包含 asset 全部内容的缓冲区的指针。
失败时返回 NULL。
AAsset_getLength
声明于android/asset_manager.h
off_t AAsset_getLength( AAsset *asset )
报告 asset 数据的总大小。
AAsset_getLength64
声明于android/asset_manager.h
off64_t AAsset_getLength64( AAsset *asset )
报告 asset 数据的总大小。
使用 64 位数字而不是 AAsset_getLength 那样的 32 位数字报告大小。
AAsset_getRemainingLength
声明于android/asset_manager.h
off_t AAsset_getRemainingLength( AAsset *asset )
报告从当前位置可读取的 asset 数据总量。
AAsset_getRemainingLength64
声明于android/asset_manager.h
off64_t AAsset_getRemainingLength64( AAsset *asset )
报告从当前位置可读取的 asset 数据总量。
使用 64 位数字而不是 AAsset_getRemainingLength 那样的 32 位数字。
AAsset_isAllocated
声明于android/asset_manager.h
int AAsset_isAllocated( AAsset *asset )
返回此 asset 的内部缓冲区是否分配在普通 RAM 中(即
未 mmap)。
AAsset_openFileDescriptor
声明于android/asset_manager.h
int AAsset_openFileDescriptor( AAsset *asset, off_t *outStart, off_t *outLength )
打开一个新的文件描述符,可用于读取 asset 数据。
如果 start 或 length 不能由 32 位数字表示,它将被截断。如果文件很大,请改用 AAsset_openFileDescriptor64。
如果无法直接进行 fd 访问(例如,如果 asset 已压缩),则返回 < 0。
AAsset_openFileDescriptor64
声明于android/asset_manager.h
int AAsset_openFileDescriptor64( AAsset *asset, off64_t *outStart, off64_t *outLength )
打开一个新的文件描述符,可用于读取 asset 数据。
使用 64 位数字表示偏移量和长度,而不是 AAsset_openFileDescriptor 那样使用 32 位数字。
如果无法直接进行 fd 访问(例如,如果 asset 已压缩),则返回 < 0。
AAsset_read
声明于android/asset_manager.h
int AAsset_read( AAsset *asset, void *buf, size_t count )
尝试从当前偏移量读取 'count' 字节的数据。
返回读取的字节数,到达文件末尾时返回零,出错时返回 < 0。
AAsset_seek
声明于android/asset_manager.h
off_t AAsset_seek( AAsset *asset, off_t offset, int whence )
定位到 asset 数据中的指定偏移量。
'whence' 使用与 lseek()/fseek() 相同的常量。
成功时返回新位置,出错时返回 (off_t) -1。
AAsset_seek64
声明于android/asset_manager.h
off64_t AAsset_seek64( AAsset *asset, off64_t offset, int whence )
定位到 asset 数据中的指定偏移量。
'whence' 使用与 lseek()/fseek() 相同的常量。
对大文件使用 64 位数据类型,而不是 AAsset_seek 使用的 32 位类型。
成功时返回新位置,出错时返回 (off64_t) -1。