为扩展包创建 0% 压缩的 zip 文件 mac
Posted
技术标签:
【中文标题】为扩展包创建 0% 压缩的 zip 文件 mac【英文标题】:Create 0% compressed zip file mac for expansion pack 【发布时间】:2015-03-23 03:59:37 【问题描述】:我正在尝试为一个包含大约 100 个 .mp3 文件的 android 应用程序创建一个扩展包。正如我从文档和this SO 问题中了解到的那样,zip 文件必须是 0% 压缩的。
如何在 Mac 上创建 0% 压缩的 zip 文件?
【问题讨论】:
【参考方案1】:以下是扩展包的工作实现,带有一个包含 .mp3 文件的 zip 文件:
创建一个压缩率为 0% 的 zip 文件(在终端中的 mac 上):
将所有要压缩的文件放在一个文件夹中。我们称之为 FOLDER_WITH_FILES_TO_ZIP
cd 到 FOLDER_WITH_FILES_TO_ZIP 的父目录
使用以下 bash 脚本创建一个文件名为 FILENAME.zip 的 zip 文件
$ zip -0 -r FILENAME.zip FOLDER_WITH_FILES_TO_ZIP
在 google play 控制台中上传新的 apk 以及 zip 文件。
以下是从 zip 文件中设置 MediaPlayer 对象的数据源的示例代码。请注意我如何将FOLDER_WITH_FILES_TO_ZIP/
包含在 .mp3 文件的路径中。这很关键。
soundFileName = "test_file.mp3";
soundFileName = "FOLDER_WITH_FILES_TO_ZIP/" +soundFileName;
try
// Get a ZipResourceFile representing a specific expansion file
ZipResourceFile expansionFile = APKExpansionSupport.
//Get the zip file with main obb file version 7 and no patch obb file
getAPKExpansionZipFile(MainActivity.this.getApplicationContext(),7,0);
//Get the asset file descriptor
AssetFileDescriptor assetFileDescriptor = expansionFile.getAssetFileDescriptor(soundFileName);
//Set the dataSource
mediaPlayer.setDataSource(assetFileDescriptor.getFileDescriptor(), assetFileDescriptor.getStartOffset(), assetFileDescriptor.getLength());
catch (IllegalArgumentException e) e.printStackTrace();
catch (IllegalStateException e) e.printStackTrace();
catch (IOException e) e.printStackTrace();
【讨论】:
您能解释一下“-0”在终端邮政编码中的作用吗?谢谢!【参考方案2】:尝试使用此命令创建扩展文件
$ jobb -d pathToFolder -o fileName.obb -k secret-key -pn packageName -pv 1
更多详情见This
【讨论】:
以上是关于为扩展包创建 0% 压缩的 zip 文件 mac的主要内容,如果未能解决你的问题,请参考以下文章