【发布时间】:2019-01-29 16:34:06
【问题描述】:
我已经看到 this guide 了解如何为每个 ABI 构建拆分 APK。
但是,我的应用程序嵌入了一堆本机可执行文件作为资产。是否可以根据 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 构建本机可执行文件后的示例应用程序树:
src
+ main
+ assets
+ x86
| + native-x86.bin
+ x86_64
| + native-x86_64.bin
+ armeabi-v7a
| + native-arm.bin
+ arm64-v8a
+ native-aarch64.bin
每个 ABI 目录都包含本机二进制文件
我希望每个拆分的 APK 仅包含特定于 ABI 的资产目录,而过滤其他的。例如,对于 arm64 APK:
assets
+ arm64-v8a
+ native-aarch64.bin
【问题讨论】:
-
曾经有一个使用产品风味的配方,虽然我最近没有研究过这一点。