从 apk 中排除 abi
Exclude abi from apk
在我的应用程序中,我使用 renderscript,它具有 x86、armeabi-v7a 和 mips(每个约 2.7Mb)的本机代码。我还读到 mips 架构只有几个设备。所以我想将我的应用程序捆绑在两个 APK 中:通用(例如 x86 和 armeabi-v7a)和 mips。我发现拆分部分有助于为 mips 创建 apk,但通用 apk 仍然包含 mips 架构。所以我的问题是如何从结果 apk 中排除 abi?
谢谢
您可以尝试设置另一种风格,其中包含除 MIPS 以外的所有内容。在属于 Android Gradle 插件源的测试项目之一的 build.gradle
文件中,我发现了这个:
apply from: "../commonHeader.gradle"
buildscript { apply from: "../commonBuildScript.gradle", to: buildscript }
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion = rootProject.ext.buildToolsVersion
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
arm {
ndk {
abiFilters "armeabi-v7a", "armeabi"
}
}
mips {
ndk {
abiFilter "mips"
}
}
}
}
看起来他们的 arm
风格基本上包括两个常见的 ARM ABI。您或许可以定义一个包含 x86
和 armeabi-v7a
.
的 "universal" 风味
他们还有另一个 test project, whose build.gradle
包含:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a', 'mips'
}
}
您也许可以使用类似的东西,然后从那里删除 mips
。
在我的应用程序中,我使用 renderscript,它具有 x86、armeabi-v7a 和 mips(每个约 2.7Mb)的本机代码。我还读到 mips 架构只有几个设备。所以我想将我的应用程序捆绑在两个 APK 中:通用(例如 x86 和 armeabi-v7a)和 mips。我发现拆分部分有助于为 mips 创建 apk,但通用 apk 仍然包含 mips 架构。所以我的问题是如何从结果 apk 中排除 abi?
谢谢
您可以尝试设置另一种风格,其中包含除 MIPS 以外的所有内容。在属于 Android Gradle 插件源的测试项目之一的 build.gradle
文件中,我发现了这个:
apply from: "../commonHeader.gradle"
buildscript { apply from: "../commonBuildScript.gradle", to: buildscript }
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion = rootProject.ext.buildToolsVersion
productFlavors {
x86 {
ndk {
abiFilter "x86"
}
}
arm {
ndk {
abiFilters "armeabi-v7a", "armeabi"
}
}
mips {
ndk {
abiFilter "mips"
}
}
}
}
看起来他们的 arm
风格基本上包括两个常见的 ARM ABI。您或许可以定义一个包含 x86
和 armeabi-v7a
.
他们还有另一个 test project, whose build.gradle
包含:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a', 'mips'
}
}
您也许可以使用类似的东西,然后从那里删除 mips
。