从apk

时间:2015-09-01 14:19:56

标签: android gradle abi

在我的应用程序中,我使用renderscript,它具有x86,armeabi-v7a和mips(每个~2.7Mb)的本机代码。另外我读到mips架构只有几个设备。因此,我想将我的应用程序捆绑在两个APK中:通用(例如x86和armeabi-v7a)和mips。我发现split section有助于为mips创建apk,但是通用apk仍然包含mips架构。所以我的问题是如何从结果apk中排除abi?

由于

1 个答案:

答案 0 :(得分:10)

您可以尝试设置包含除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。你可以定义一个" universal"包含x86armeabi-v7a的风味。

他们有另一个test project,其build.gradle包含:

splits {
    abi {
        enable true
        reset()
        include 'x86', 'armeabi-v7a', 'mips'
    }
}

您可以使用类似的内容,然后从中删除mips