質問が重複している可能性がありますが、見つかりません。コードを使用して、電話のABIを取得するにはどうすればよいのでしょうか。私はgradleファイルで指示されるかもしれない異なるインターフェースがあることを知っています。しかし問題は、特定のデバイスのABIを正確に取得して、SuperSUを使用して手動でsystem/lib /フォルダーにコピーできるようにする方法です。ありがとうございました。
Android.productFlavors {
// for detailed abiFilter descriptions, refer to "Supported ABIs" @
// https://developer.Android.com/ndk/guides/abis.html#sa
create("arm") {
ndk.abiFilters.add("armeabi")
}
create("arm7") {
ndk.abiFilters.add("armeabi-v7a")
}
create("arm8") {
ndk.abiFilters.add("arm64-v8a")
}
create("x86") {
ndk.abiFilters.add("x86")
}
create("x86-64") {
ndk.abiFilters.add("x86_64")
}
create("mips") {
ndk.abiFilters.add("mips")
}
create("mips-64") {
ndk.abiFilters.add("mips64")
}
// To include all cpu architectures, leaves abiFilters empty
create("all")
}
これを行うには2つの方法があります。 1つは廃止予定ですが、機能しますが、もう1つは電話を実行する必要がありますAndroid 5.0以降。
非推奨の方法
現在のすべての電話をサポートしたい場合は、次を使用できます。
import Android.os.Build;
String ABI = Build.CPU_ABI;
新しい方法
新しい方法では、サポートされているすべてのABIのリストが実際に提供されます。最初のインデックスは、使用する最も好ましいABIです( APIリファレンス ):
import Android.os.Build;
String ABI = Build.SUPPORTED_ABIS[0];
両方の方法は、Android 5.1.1で動作するようにテストされています。これらは次のいずれかを返します。
今後のABIはここにリストされます: https://developer.Android.com/ndk/guides/abis.html#sa
[〜#〜] tldr [〜#〜]:すべてのAndroidバージョンで機能するbandoncontortionのソリューションの結合バージョンです:
public String getAbi() {
if (Android.os.Build.VERSION.SDK_INT >= Android.os.Build.VERSION_CODES.Lollipop) {
// on newer Android versions, we'll return only the most important Abi version
return Build.SUPPORTED_ABIS[0];
}
else {
// on pre-Lollip versions, we got only one Abi
return Build.CPU_ABI;
}
}