如何为几种CPU架构拆分APK?

时间:2019-07-11 12:00:37

标签: android bundle android-app-bundle

我开发了一个在Google Play中发布的应用程序。 我收到Google的来信,说我的应用程序必须适合64位设备(https://developer.android.com/distribute/best-practices/develop/64-bit)的新要求

我的应用使用了ffmpeg库,该库未提供针对64位架构的构建:https://github.com/WritingMinds/ffmpeg-android-java

使用此库的APK分析看起来像这样: enter image description here

如您所见,仅提供32位体系结构。

因此,我用新的FFmpeg库替换了新的https://github.com/bravobit/FFmpeg-Android 另外,我还在我的应用build.gradle文件中添加了一行:

  ndk.abiFilters 'armeabi-v7a','arm64-v8a','x86','x86_64'

然后我组装了一个新的apk文件并进行了分析。结果是: enter image description here

问题1:arm目录是指64位系统的目录吗?

问题2:上一个屏幕快照中的目录libs哪里去了?正常吗?

这还不是全部。如您所见,APK大小增加了20 Mb。这非常糟糕,因此我决定将App Bundle机制应用于我的应用程序。 我在应用程序的build.gradle文件中添加了几行:


    bundle {
        density {
            enableSplit = true
        }
        abi {
            enableSplit = true
        }
    }

然后组装一个捆绑包。在此之后,我希望获得一个包含apk文件的捆绑包,并按密度和abi体系结构划分。但是我只有密度划分的Bundle,对于不同的CPU没有相同的apk:

enter image description here

问题3:为什么我的捆绑包中不包含按CPU架构划分的apk?所有按密度划分的apk都包含两种架构(arm和armeabi)的库

0 个答案:

没有答案