Android资源——在磁盘上还是在ZIP中?

Android资源——在磁盘上还是在ZIP中?,android,Android,当我得到一个android资源(或资产)的InputStream时,我很困惑到底发生了什么低级操作。是指向磁盘上实际文件的输入流,我可以通过UNIX风格的read()和write()通过JNI访问该文件。或者InputStream是指向APK ZIP文件的某种特殊包装器,在这种情况下,每次执行read()调用时都会进行难看的解压缩操作 如果是后者,那么你怎么能在Android上的视频资源上获得良好的IO性能呢?如果你想写一个视频播放器,可以在视频文件中来回搜索,并且通常具有良好的IO性能,该怎么

当我得到一个android资源(或资产)的InputStream时,我很困惑到底发生了什么低级操作。是指向磁盘上实际文件的输入流,我可以通过UNIX风格的read()和write()通过JNI访问该文件。或者InputStream是指向APK ZIP文件的某种特殊包装器,在这种情况下,每次执行read()调用时都会进行难看的解压缩操作

如果是后者,那么你怎么能在Android上的视频资源上获得良好的IO性能呢?如果你想写一个视频播放器,可以在视频文件中来回搜索,并且通常具有良好的IO性能,该怎么办


我必须首先将视频文件存储为资产,然后在应用程序第一次运行时通过openFileOutput()将其手动复制到磁盘上吗?

视频文件通常不会像我在这里提到的那样进行压缩:

此外,由于apk中的未压缩文件是使用对齐的,因此可以使用访问这些文件

如果您想调查如何实现对这些文件的访问,这可能是一个很好的起点