gpt4 book ai didi

android - Android 上按 ABI 拆分 Assets

转载 作者:行者123 更新时间:2023-12-02 09:28:54 26 4
gpt4 key购买 nike

我见过this guide关于如何为每个 ABI 构建拆分 APK。

但是我的应用程序嵌入了一堆 native 可执行文件作为 Assets 。是否可以根据 ABI 过滤它们?

build.gradle的相关部分:

android {
...
splits {
abi {
enable true
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
// builds assets and places them in src/main/assets
}
}
sourceSets {
main {
assets.srcDirs = ['src/main/assets']
}
}
}

使用 CMake 构建 native 可执行文件后的示例应用程序树:

src
+ main
+ assets
+ x86
| + native-x86.bin
+ x86_64
| + native-x86_64.bin
+ armeabi-v7a
| + native-arm.bin
+ arm64-v8a
+ native-aarch64.bin

每个 ABI 目录都包含 native 二进制文件

我希望每个拆分 APK 仅包含 ABI 特定的 Assets 目录,并过滤其他 Assets 目录。例如,对于arm64 APK:

assets
+ arm64-v8a
+ native-aarch64.bin

最佳答案

检查这个Android documentation

一种解决方案是使用 Flavors。(没有测试过)

  productFlavors {

x86 {
jniLibs.srcDir = /path/to/native-x86.bin
//or maybe
assets.srcDirs = /path/to/native-x86.bin
ndk {
abiFilter "x86"
}
}
armv7 {
jniLibs.srcDir = /path/to/native-arm.bin
ndk {
abiFilter "armeabi-v7a"
}
}

希望对您有帮助。

关于android - Android 上按 ABI 拆分 Assets ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51983380/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com