Android:构建一个 APK 几乎是嵌入视频文件大小的两倍?

Posted

技术标签:

【中文标题】Android:构建一个 APK 几乎是嵌入视频文件大小的两倍?【英文标题】:Android: Building an APK almost doubles the size of an embedded video file? 【发布时间】:2017-04-27 19:06:32 【问题描述】:

我的 APK 中有一个大小约为 9mb 的视频。没有视频文件的APK文件是14mb。但是,当我添加9mb 视频文件时,apk 大小会跳转到30mb

视频是.mp4 格式,我想知道是什么导致APK 从14mb 跳转到30mb 并带有9mb 视频,这是否正常?谢谢。

更新: 使用 APK 分析器工具时,我的 APK 中有两个 res 文件夹。他们都有视频的副本。实际上我所有的资源都被复制了。这是APK内的文件夹结构:

res
main
   res

【问题讨论】:

使用 android Studio 中的 APK 分析器工具查看 APK 中占用空间的内容。 感谢您的提示。我更新了我的问题。原来我有两个 res 文件夹,它们都有视频文件的副本 视频文件应该在 res/raw 文件夹中 - 你把它放在哪里了? 是的,它在 res/raw 文件夹中,但我不知道为什么它将我的所有资源从我的 main/res 文件夹复制到根 res 文件夹。 【参考方案1】:

我发现了复制我的 apk 中所有资源的问题。

我的 build.gradle 文件中有这段代码

sourceSets 
    main 
        manifest.srcFile 'src/main/AndroidManifest.xml'
        java.srcDirs = ['src/main/java']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['src/main/res'] // <-- This was causing the dup res folder
        assets.srcDirs = ['assets', 'src/main/assets', 'src/main/assets/']
    

我删除了这段代码,现在我的 apk 明显变小了,不再有重复。

【讨论】:

以上是关于Android:构建一个 APK 几乎是嵌入视频文件大小的两倍?的主要内容,如果未能解决你的问题,请参考以下文章

APK 简析

QuickBlox 视频聊天在发布模式下构建 apk 后崩溃

嵌入的 youtube 视频无法在某些 Android 设备中播放

反应原生 - 构建发布 apk 时 webview 不呈现本地 html

Android 构建捆绑包错误或不生成捆绑包

Android - 为不同的处理器架构构建单独的 APK