Android - 我在哪里解压缩我的apk扩展文件?

时间:2012-05-08 20:13:18

标签: android apk expansion

我们已经破坏了谷歌的APK大小限制,并计划通过扩展包发送我们的声音文件下载。 “assets”文件夹中有两个directoriess,用于保存我们的oggsm,音乐和声音

第一部分进展顺利,设法将包含这2个目录和大约200个文件的压缩文件推送到obb文件夹,并可以打开zip并访问其中的文件。

问题是我把它们放在哪里?

我一直在尝试获取我们的apk数据最初解压缩位置的根目录,并将声音放回到之前居住的相同位置。

这是正确的还是我们应该使用getexternalfilesdir()并将我的两个文件夹放在那里并使用新位置来播放声音?

感谢您的回复。

1 个答案:

答案 0 :(得分:4)

请不要解压缩您的APK扩展文件。通过使用zip -0添加它们,将您的资源存储在APK文件(未压缩)中。然后,您可以直接从APK扩展文件中流式传输它们。如果您解压缩APK扩展文件,则需要将文件存储两次,因为如果您更新了应用程序,Google Play将再次下载APK扩展文件。

Android中的所有音频和视频API都将采用FileDescriptor,偏移量和长度。

示例:

http://developer.android.com/reference/android/media/MediaPlayer.html#setDataSource(java.io.FileDescriptor,长,长)

事实证明,APK扩展文件包附带的示例代码在ZipResourceFile中有一个返回AssetFileDescriptor的函数。

AssetFileDescriptor对象返回偏移量和长度,以及原始文件描述符。