为扩展包创建 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的主要内容,如果未能解决你的问题,请参考以下文章

在RStudio中的mac上创建zip包

PHP下载压缩包文件

压缩文件zip怎么解压

MAC系统下unzip解压中文文件名乱码

mac如何解压加密了的zip,密码已知

ZIP格式的文件怎么解压?