dnjiro’s 9VAe blog

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

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

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

 

FireOSとAndroidOSの違い

入手したFire7は、FireOS 6.3で、Android API 25 32bitらしい。最新は64bitにも対応。APIとAndroidVer.の関係はこちら

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

2018年版 Fire HD 8(第8世代
2019年版 Fire 7 / HD 10(第9世代
2020年版 Fire HD 8(第10世代

7
9
32bit
28
2014 Fire HDX(第4世代
5
5.1
32bit
22
2560 x 1600
2021 Fire HD 10(第11世代
7
9
32/64bit
28
1920 x 1200
2022 Fire HD 8(第12世代
8
11
32/64bit
30
1280 x 800
2022 Fire 7(第12世代
8
11
32/64bit
30
1024 x 600
Fire MAX
8
11
32/64bit
30
2000 x 1200
Windows11 WSA  
13
32/64bit
31

 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 (古い機種用 SDK-API31で作成)
  2. FFmpegつき(Googleストアと同じ)。これは、32bit 対応にしかならない
  3. FFmpegつき 64bitのみ出力。64bitしかないので64bit対応と判定される

Windows11モバイルアプリ対応

  • Windows 11から、Amazonアプリがストアから入れられるようになった。
  • APKを登録し、Windows対応デバイスを選んで対応するをチェックすれば、Windowsストアから検索していれられるようになる。ただし、32bit版を登録していると、64bit版が有効にできないので注意(複数のAPKを登録している場合、ひとつ有効にしていると、他のAPKを有効にできない)
  • 動画出力、日本語音声合成も可能(ただし男の声になった)
  • Chromebook版9VAeと同じと考えてよさそう
  • データは、Androidサブシステムの、Download > 9VAeフォルダに保存されるが、WSAを初期化すると削除されるみたい。
  • データを取り出すには、WSAのファイル共有オプションを設定すると Windowsのドキュメントフォルダにデータが読み書きできるようになる。

 

マウス、キーボード、Windows11の検出

以下のJavaで検出できます

PackageManager pm = getApplicationContext().getPackageManager();
if (pm.hasSystemFeature(PackageManager.FEATURE_PC)){
IsPC="1"; //Chromebook
if(Build.BRAND.equals("Windows")){
IsPC="2";//Windows
}
}else{
IsPC="0"; //SmartPhone
}

マウスかタッチの区別は不明、マウスイベントはタッチイベントに変換してアプリに渡されるみたいです。キーボードはAndroid版のコードがそのまま動きました。

Windows11 WSA 版の問題点

  • マウスホイールがおかしい。DxLibの GetMouseWheelRotVol()が動作しない。
  • Windowsフォルダから読み込んだ画像、音は、9VAeフォルダに保存する。そのため同名ファイルで別の内容をつくることができない(アプリの作り方の問題)。
  • 連番ファイルはWindowsフォルダから9VAeフォルダに複製したものをつかうしかできない
  • 1000x728x32bit の png画像 が SoftImage によみこめなかった。512KB以上のサイズの画像がよみこめない様子。
  • 点を結合したときに点の周りの◯が見えない(実機では表示される)

Windows11 WSA 便利ツール

  • ファイルマネージャ(Haligames) : 実行するたびに落ちるが、Windows11のフォルダを、まるごと9VAeフォルダにコピーできる。転送したファイルは9VAeのファイルから読めるが、9VAeフォルダからは見えない。

新しいアプリの追加

9VAeを改造して「1コマアニメーター?」を作ったときのメモです

AndroidStudio プロジェクト名変更

Amazonn Fire版アプリは、AndroidStudioで作るが、既存のプロジェクトを複製して新しいプロジェクトにするのが簡単。その方法(参考記事:Zenn

     
  1. Android Studioの左側にあるディレクトリツリー(Project)から「app/src/main/java/(旧パッケージ名)」を開く
  2. パッケージ名のディレクトリを右クリックして「Refactor」>「Rename...」をクリック
  3. 変更したいパッケージ名に書き換え「Refactor」をクリック
  4. Refuctoring Preview が下に表示されたら「Do Refuctor」をクリック
  5. Edit >FindInFiles で古い名前を検索し、必要なら新しい名前に修正
  6. 「Build」>「Clean Project」して、「Make」
  7. 左のタブから「.idea」フォルダを削除し、もう一度プロジェクトを読み込んで「.idea」を作成しなおせば、プロジェクト名が変わります(.ideaは環境設定のキャッシュみたいなもの?)

アイコンの変更・追加

  1. [Project] ウィンドウで [Android] ビューを選択
  2. res フォルダを右クリックして、[New] > [Image Asset] を選択
  3. Android9以上なら、普通に、アクションバー アイコンを作成。res/drawable フォルダに 512x512 四角形透明なしのPNG画像をいれておき、Image Assetの画像に設定すれば、必要な画像が自動生成されます
  4. タブアイコン、通知アイコンを作成。これは png 画像ではなく、マテリアルアイコン

Amazon ストアへの新規登録

新規アプリの申請

  • アプリタイトル:
  • アプリSKU:com.qvae.OnePic
  • アプリのカテゴリー:
  • カスタマーサポート連絡先
  • Eメール、電話番号(任意)、ウェブ(任意)

アプリファイルのアップロード

ターゲットアプリ

  • ここでWindows11を選びます

古いバージョンの作り方

古い端末用のアプリは、以下の設定で作成できました。

 compileSdkVersion 33
minSdkVersion 22
targetSdkVersion 31

バージョンの整合性をとるために数字を工夫する必要があるようです