如何更改我的代码以使用APK扩展文件?

时间:2013-03-18 03:03:14

标签: android apk

我的应用程序超过50MB因为我使用了很多MP3文件。我通常这样做......

uri = Uri.parse("android.resource://red.cricket.RecordAlbum/" + R.raw.track_001_64kb );

...但如果我必须使用APK扩展文件,我认为上面的代码行必须改变。但转变为什么?任何帮助是极大的赞赏!

编辑1) 谢谢你的回答泰德。我确实创建了这样的扩展文件:

red@ubuntu:~/android/workspace/Album/res/raw$ zip -n .mp3 main.1.com.redcricket.Album.obb *mp3

那我现在该怎么办? rm -f *mp3; cd ../..; ant clean ; ant debug我不认为这会起作用。我在哪里放main.1.com.redcricket.Album.obb文件?

1 个答案:

答案 0 :(得分:1)

the docs中的步骤非常明确。概括地说,步骤是:

  1. 从.apk中删除.mp3文件并将其放入扩展文件中。根据指示命名扩展文件。文件的格式可以是您想要的任何内容,但文档建议您对音频文件使用未压缩的ZIP格式。 Android包含APK expansion ZIP library,可用于直接从ZIP文件加载.mp3文件,而无需解压缩。
  2. 重写应用以在位置

    中查找扩展文件
    Context ctx = getContext();  
    String loc = ctx.getExternalStorageDirectory()
             + "/Android/obb/" + ctx.getPackageName();
    
  3. 编写代码,以便在文件不存在的情况下,您的应用会使用文档中所述的Application Licensing service从Google Play下载该代码。这一步涉及到相当多的编码和配置。

  4. 使用APK扩展ZIP库访问所需的.mp3文件。这些文档通过调用带文件描述符的MediaPlayer.setDataSource(),ZIP文件的偏移量和文件长度,从扩展文件加载MP3的示例。
  5. 另请参阅this thread了解有关如何执行此操作的更多详细信息。