【问题标题】:ABI specific android resource qualifierABI 特定的 android 资源限定符
【发布时间】:2018-04-29 14:17:43
【问题描述】:

我打算在我的应用程序中使用 python 代码。所以我必须随应用程序一起提供 python 二进制文件。我打算将 apk 存储在 raw 资源目录中。

但是,如果我将所有 abi 二进制文件包含在一个 apk 中,apk 的大小会很大,所以我想对我的 apk 进行基于 abi 的拆分。为此,我需要一个 ABI 特定的 android 资源限定符。有这样的吗?我找不到。

【问题讨论】:

    标签: android android-ndk android-resources


    【解决方案1】:

    PackagingOptions 可以与 ProductFlavors 结合以实现任何级别的灵活性,但这并不是实现您声明的目标所必需的。

    我邀请您使用我proposed a while agp 的技巧。底线是,如果您将可执行文件放在 jniLibs 下的预期目录中,并给它们起以 lib 开头并以 .so 结尾的有趣名称strong>,Android 构建工具会很乐意将它们打包到您的 APK 中,安装程序会很乐意根据 ABI 准备它们以供使用。

    这样,您也可以使用ABI-determined split 的全部功能。

    【讨论】:

      【解决方案2】:

      不幸的是,lib/ 下的假 *.so 库似乎不再工作了。它们在文件系统中不可用。 /data/..../{app}/lib 只包含真正的库。 Android 运行时肯定发生了一些变化。

      【讨论】:

      • 如果您分发 apk,它开箱即用。使用 aab,您必须将 android.bundle.enableUncompressedNativeLibs=false 添加到 gradle.properties 文件
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多