每个架构单独构建,但生成的 APK 文件是相同的?

问题描述 投票:0回答:1

我希望为每个架构单独构建,并分别分发它们。所以我做了一些研究,例如查看了Android - 为不同的处理器架构构建单独的APK和链接文章https://androidbycode.wordpress.com/2015/06/30/android-ndk-version-code -scheme-for-publishing-apks-per-architecture/ 据我所知,我似乎遵循了这些步骤。根据这些资源,我将以下内容添加到我的

build.gradle

...
android {
    ...
    splits {
        abi {
            enable true
            reset()
            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
            universalApk false
        }
    }
}
...

通过这些更改,我确实获得了每个架构的单独 APK。但是,生成的文件是相同的:

$ md5sum *
9673c9c50c3d2d8dbe02b073676b90d4  app-arm64-v8a-release-unsigned.apk
9673c9c50c3d2d8dbe02b073676b90d4  app-armeabi-v7a-release-unsigned.apk
9673c9c50c3d2d8dbe02b073676b90d4  app-x86_64-release-unsigned.apk
9673c9c50c3d2d8dbe02b073676b90d4  app-x86-release-unsigned.apk

这怎么可能?我做错了什么?不幸的是,我没有针对每种架构的设备进行测试。但在我看来,构建应该为每个架构产生相同的校验和是错误的。

如果相关,这是我的完整内容

build.gradle
https://pastebin.com/v6Ya3Kan

android gradle build architecture build.gradle
1个回答
0
投票

APK 文件只是 zip 文件。您可以解压它们进行检查。您还可以使用 APK 分析器 查看它们包含的内容。

如果您的 Android 项目仅包含 Java/Kotlin 代码,该代码将被编译成 dex 文件,这不依赖于设备的 CPU 架构。

如果您有 C/C++ 代码(用于游戏、性能计算、跨平台库),将通过 Android 本机开发套件 (NDK) 处理到 CPU 架构库中,需要将其包含在相应的 APK 文件中。

© www.soinside.com 2019 - 2024. All rights reserved.