只为 android apk 保留 armeabi-v7a 是否安全
Is that safe to keep only armeabi-v7a for an android apk
我有一个使用本机库 (snappydb
) 的 android APK。
本机库占用大量空间,所以我只想保留 armeabi-v7a 架构的 snappydb
?
我知道为其他架构删除 snappydb
并非 100% 安全,所以我的问题是:它有多不安全? (我会输多少devices/users?)
仅供参考,我的应用支持的最小 sdk 版本是 16 (JELLY_BEAN)。
我建议使用 Gradle 的 productFlavors 为每个 ABI 生成不同的 APK,因为某些 ABI 可能包含一些汇编代码优化(SSE4、SSE5、Arm Neon 等) ,)
android {
...
flavorDimensions "abi", "version"
productFlavors {
freeapp {
flavorDimension "version"
...
}
x86 {
flavorDimension "abi"
...
}
}
}
或者,如果您使用的是实验性 Gradle 插件
'com.android.tools.build:gradle-experimental:0.1.0'
android.productFlavors {
create ("arm7") {
ndk.abiFilters += "armeabi-v7a"
}
create ("arm8") {
ndk.abiFilters += "arm64-v8a"
}
create ("x86-32") {
ndk.abiFilters += "x86"
}
// for detailed abiFilter descriptions, refer to "Supported ABIs" @
// https://developer.android.com/ndk/guides/abis.html#sa
// build one including all productFlavors
create("fat")
}
您可能不会从 arm-v7a 优化中获益太多,目前没有令人信服的理由包含 64 位构建。但是,如果您保护他们的设备,MIPS 和 X86 所有者将会感谢您。
我有一个使用本机库 (snappydb
) 的 android APK。
本机库占用大量空间,所以我只想保留 armeabi-v7a 架构的 snappydb
?
我知道为其他架构删除 snappydb
并非 100% 安全,所以我的问题是:它有多不安全? (我会输多少devices/users?)
仅供参考,我的应用支持的最小 sdk 版本是 16 (JELLY_BEAN)。
我建议使用 Gradle 的 productFlavors 为每个 ABI 生成不同的 APK,因为某些 ABI 可能包含一些汇编代码优化(SSE4、SSE5、Arm Neon 等) ,)
android {
...
flavorDimensions "abi", "version"
productFlavors {
freeapp {
flavorDimension "version"
...
}
x86 {
flavorDimension "abi"
...
}
}
}
或者,如果您使用的是实验性 Gradle 插件
'com.android.tools.build:gradle-experimental:0.1.0'
android.productFlavors {
create ("arm7") {
ndk.abiFilters += "armeabi-v7a"
}
create ("arm8") {
ndk.abiFilters += "arm64-v8a"
}
create ("x86-32") {
ndk.abiFilters += "x86"
}
// for detailed abiFilter descriptions, refer to "Supported ABIs" @
// https://developer.android.com/ndk/guides/abis.html#sa
// build one including all productFlavors
create("fat")
}
您可能不会从 arm-v7a 优化中获益太多,目前没有令人信服的理由包含 64 位构建。但是,如果您保护他们的设备,MIPS 和 X86 所有者将会感谢您。