リリースしようとしたらネイティブサポートが減っていた
背景
Google Play Consoleからアプリのアップデートをリリースしようとした
課題
警告が出ていて、よく見ると前回のapkからネイティブサポートの値が減っている(mips)
このアプリの対象端末数は変換がないのでおそらくリリースに影響はないだろうが、本当に影響がないか調査する
調査
注: これまで NDK は ARMv5(armeabi)、32 ビットおよび 64 ビットの MIPS をサポートしていましたが、こうした ABI のサポートは NDK r17 で削除されました。
2011年頃には,携帯端末への進出を狙い,AndroidでもMIPSを搭載するタブレットが一時的に存在していましたが,いまやその影をみることもありません。 おそらく現在使われているmipsのAndroid端末はないだろう。
アプリの対応abiは、apkをunzipした lib
以下に入っているみたい。
実装
今回のリリースで入った変更なので、どこのコミットで消えてるかを見ればわかるはず。
- 前回のリリースから、マージコミットの最初のコミットを一覧する
git log ${last_version}.. --first-parent --oneline
gggggg Merge pull request #7 ffffff Merge pull request #6 eeeeee Merge pull request #5 dddddd Merge pull request #4 cccccc Merge pull request #3 bbbbbb Merge pull request #2 aaaaaa Merge pull request #1
だいたい真ん中のコミットをチェックアウト
git checkout dddddd
apk生成
./gradlew assembleRelease
apkの中身を見る
unzip -l app/build/outputs/apk/production/release/app-release.apk | grep lib/
2184400 00-00-1980 00:00 lib/arm64-v8a/libRSSupport.so
72000 00-00-1980 00:00 lib/arm64-v8a/librsjni.so
70192 00-00-1980 00:00 lib/arm64-v8a/librsjni_androidx.so
1783824 00-00-1980 00:00 lib/armeabi-v7a/libRSSupport.so
59888 00-00-1980 00:00 lib/armeabi-v7a/librsjni.so
54256 00-00-1980 00:00 lib/armeabi-v7a/librsjni_androidx.so
1504188 00-00-1980 00:00 lib/x86/libRSSupport.so
57956 00-00-1980 00:00 lib/x86/librsjni.so
65288 00-00-1980 00:00 lib/x86/librsjni_androidx.so
1475264 00-00-1980 00:00 lib/x86_64/libRSSupport.so
67912 00-00-1980 00:00 lib/x86_64/librsjni.so
74256 00-00-1980 00:00 lib/x86_64/librsjni_androidx.so
以上を2分探索で繰り返し、どこでmipsが消えてるかを探す。
結果、とあるライブラリのアップデートでで消えているのに気づいた。 さらに調べると、そのライブラリの依存しているライブラリが、minSdkVersionが9から14に上がっていた。おそらくこれだろう。