私のアプリケーションでは、x86、armeabi-v7a、およびmips(それぞれ約2.7Mb)のネイティブコードを持つrenderscriptを使用しています。また、mipsアーキテクチャにはいくつかのデバイスしかないことも読みました。そこで、アプリケーションをユニバーサル(x86やarmeabi-v7aなど)とmipsの2つのAPKにバンドルしたいと思います。分割セクションはmipsのapkを作成するのに役立ちますが、ユニバーサルapkにはまだmipsアーキテクチャが含まれています。だから私の質問は、結果apkからabiを除外する方法ですか?
ありがとう
MIPS以外のすべてを含む別のフレーバーを設定してみることができます。 Android Gradleプラグインソースの一部であるテストプロジェクトの1つからの 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
フレーバーには基本的に2つの一般的なARM ABIが含まれているようです。おそらくx86
とarmeabi-v7a
を含む「ユニバーサル」フレーバーを定義できます。
彼らには別の テストプロジェクト があり、その build.gradle
には以下が含まれています:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a', 'mips'
}
}
同様のものを使用して、そこからmips
を削除できる場合があります。