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

时间:2015-03-23 03:59:38

标签: android zip apk-expansion-files

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

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

2 个答案:

答案 0 :(得分:2)

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

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

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

  2. cd进入FOLDER_WITH_FILES_TO_ZIP的父目录

  3. 使用以下bash脚本创建一个文件名为FILENAME.zip的zip文件

    $ zip -0 -r FILENAME.zip FOLDER_WITH_FILES_TO_ZIP

  4. 在google play console中上传新的apk以及zip文件。

    以下是从zip文件设置MediaPlayer对象的dataSource的示例代码。请注意我如何将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(); }
    

答案 1 :(得分:1)

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

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

有关详细信息,请参阅This