LoginSignup
6
3

More than 3 years have passed since last update.

Androidアプリ64bit化必須に向けて検証デバイスのABIを調べる方法

Posted at

Androidアプリ64bit化必須に向けて検証デバイスのABIを調べる方法

スクリーンショット1.png
https://developer.android.com/distribute/best-practices/develop/64-bit

上記ページのとおり、
2019年8月1日以降、GooglePlayで公開するアプリは 64bitアーキテクチャをサポートする必要があるとのこと。
更には2021年8月1日から64bit版が含まれていないアプリはGooglePlayから排除されるとのこと。

アプリ(apk)を64bit対応することはもちろん、
その後に64bit対応端末できちんと動作するのかを検証する必要があります。

そこで手持ちのデバイスのCPUアーキテクチャーが何なのか、
サポートしているABIは何なのかを調べる方法を以下に掲載します。

※ABIの詳しい内容については以下ページにあります。
https://developer.android.com/ndk/guides/abis#sa

■ABI分類

プラットフォーム 32bitライブラリ 64bitライブラリ
ARM armeabi, armeabi-v7a arm64-v8a
x86 x86 x86_64

■adbコマンドで調べる

  1. USBなどで調べたいデバイスをPC/Macに繋げる
  2. コンソール(ターミナル)を開く
  3. 以下adbコマンドを実行する

$ adb shell getprop ro.product.cpu.abi

実際の実行例
$ adb shell getprop ro.product.cpu.abi
arm64-v8a

これで完了。


とは言え、現存のデバイスは、
ARMであれば、上記結果がarm64-v8aであっても、
下位互換性があるようなので、
armeabi, armeabi-v7aもサポートされるため、
結局のところarm64-v8aがなくても、
動作確認はできてしまう。


// Your app's build.gradle
    apply plugin: 'com.android.app'

    android {
       compileSdkVersion 27
       defaultConfig {
           appId "com.google.example.64bit"
           minSdkVersion 15
           targetSdkVersion 28
           versionCode 1
           versionName "1.0"
           ndk.abiFilters 'armeabi','armeabi-v7a','arm64-v8a','x86','x86_64'
    // ...

app/build.gradle

ためしにAndroidStudioで確認してみる

  1. app/build.gradleを開く
  2. ndk.abiFiltersからarm系('armeabi','armeabi-v7a','arm64-v8a')を外す
  3. 繋いだデバイスの実行を試みる(繋いだデバイスのABIは'arm64-v8a')

スクリーンショット2.png

Device supports arm64-v8a, armeabi-v7a, armeabi, but APK only supports x86, x86_64
とエラーが表示される

armeabiarmeabi-v7aどちらかが含まれていればエラーは表示されず、正常に動作するため、ABIがarm64-v8aのデバイスで64bitライブラリがなくとも、32bitのライブラリで動作することが分かる

6
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
3