为扩展包创建 0% 压缩的 zip 文件 mac

Create 0% compressed zip file mac for expansion pack

我正在尝试为 Android 应用创建扩展包,其中包含大约 100 个 .mp3 文件。据我从文档和 this SO 问题中了解到,zip 文件必须压缩为 0%。

如何在 mac 上创建 0% 压缩的 zip 文件?

尝试使用此命令创建扩展文件

$ jobb -d pathToFolder -o fileName.obb -k secret-key -pn packageName -pv 1

有关详细信息,请参阅 This

以下是扩展包的有效实现,其中包含一个包含 .mp3 文件的 zip 文件:

创建一个压缩率为 0% 的 zip 文件(在终端的 mac 上):

  1. 将所有要压缩的文件放在一个文件夹中。我们称它为 FOLDER_WITH_FILES_TO_ZIP

  2. cd 进入 FOLDER_WITH_FILES_TO_ZIP

  3. 的父目录
  4. 使用以下 bash 脚本创建文件名为 FILENAME.zip

    的 zip 文件

    $ zip -0 -r FILENAME.zip FOLDER_WITH_FILES_TO_ZIP

在 google 播放控制台中上传新的 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(); }