dnjiro’s 9VAe blog

誰でもアニメが作れる無料ソフト9VAeきゅうべえ開発者のブログ

DXライブラリをつかって、Amazon版 9VAeきゅうべえをつくる

Amazon Fire7 が3000円程度に値下がりしてたので衝動買いしてしまった。ディスプレイ、筐体、カメラ、バッテリーつきで、RaspberryPi より安い。子供むけタブレットにはぴったりだ。こうなるとアニメソフト 9VAeきゅうべえアンドロイド版が動くかどうか気になって調べてみると、Amazon アプリストアへの登録が無料らしい。アプリストア登録までできるか試してみた。

f:id:dnjiro:20220210143954g:plain



先ずは、FireOSとAndroidOSの違いについて調査。

入手したFire7は、FireOS 6.3で、Android API 25 32bitらしい。最新は64bitにも対応

Fireタブレット
Fire OS AndroidOS相当 Android API
2014年モデル(第4世代)
2017年版 Fire 7 / HD 8 / HD 10
5
5.1
32bit
22

2018年版 Fire HD 8
2019年版 Fire 7 / HD 10
2020年版 Fire HD 8

7
9
32bit
28
2021年版 Fire HD 10
7
9
64bit
28

 9VAeきゅうべえは、Android API 21  以上(動画出力は API24以上)で開発しているので動きそうだ。2014年モデル以降(第4世代)が対象になりそう。

 

Amazonアプリストアへの登録をやってみた

  1. 新規アプリを追加する>Android
  2. 一般情報>価格情報>アプリの説明
  3. 価格情報は無料にする
  4. アプリの説明>アイコン、画像サイズはGooglePlayとは違うので作り直した
  5. APK  32bit版がそのままアップできた。

GooglePlay 向けに、64bitAPK と 32bitAPKを作成していれば、32bitAPKを、Amazon用につかえるみたいだ。今、審査中。

 

32bit版APKのアップで審査パス

1週間くらいかかったが、問題なく公開された。

ということで、DXライブラリをつかって32bit APKをつくれば、Amazonアプリストアに登録できました。

 

64Bit版APKがアップできない

AndroidStudioで、32bit, 64bit, arm x86 全部はいったAPKを作成できるが、それを、Amazonアプリストアにいれると、64bit に対応していないといわれる。

ライブラリの中を調べると、32ビットには、NEON対応のライブラリがあり、64bitにはそれがないため、64bit対応していないと思われているようだ。

APKのなかをみる> AndroidStudio > build > Analyze APK... 

 

NEONは、ARM用のSIMD命令で、64bitはすべてのARMが対応しているため、NEON用ライブラリがないみたいだ。32bit と 64bit のライブラリの数をあわせるために、NEON対応をやめるには、build.gradle に以下をいれる

android {
    defaultConfig {
        externalNativeBuild {
            cmake {
                arguments "-DANDROID_ARM_NEON=FALSE"
            }
        }
    }
}  

これをいれても、NEONができた。ffmpegをつかうと、NEONができるようだ。64bitにはNEONが不要なので、32bitにあるライブラリが64bitにないため、64bit対応不足と、Amazon ストアに判定されてしまう。

 

64bit版しかはいっていない APK をつくるには、つぎのように記述するらしい

android {
    defaultConfig {
        ndk {
            abiFilters 'arm64-v8a', 'x86_64'
        }
    }
}    

これで FFmpegがはいった Amazon用64bit版をつくることができた。

 

結局次の3本のAPKを登録すると、全機種に対応できるようになった。

  1. FFmpegがはいっていない APK (古い機種用)
  2. FFmpegつき(Googleストアと同じ)。これは、32bit 対応にしかならない
  3. FFmpegつき 64bitのみ出力。64bitしかないので64bit対応と判定される