DXライブラリをつかって、Amazon Fire 版 9VAeきゅうべえをつくる - dnjiro’s 9VAe blog

dnjiro’s 9VAe blog

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

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

 Amazon Fire7 が3000円程度に値下がりしてたので衝動買いしてしまった。ディスプレイ、筐体、カメラ、バッテリーつきで、RaspberryPi より安い。子供むけタブレットにはぴったりだ。調べた結果、アニメソフト 9VAeきゅうべえアンドロイド版を、Amazon アプリストアに登録できた。Amazon Fire HD10 では専用筆圧ペン(別売)がつかえる。手書き入力がつかえるので、メモ書きにも便利。また、2023年、Windows11 の Microsoftストアアプリにもなったが2025年3月5日で終了。orz

 

 

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世代
2024 Fire HD 8(第12世代
8
11
32/64bit
30
1280 x 800
2022 Fire 7(第12世代
8
11
32/64bit
30
1024 x 600
2023 Fire HD 10(第13世代)
8
11
32/64bit
30
1920 x 1200
Fire MAX
8
11
32/64bit
30
2000 x 1200
2023 Fire Max 11(第13世代)
8
11
32/64bit
30
2000 x 1200
Windows11 WSA(2024終了)  
13
32/64bit
31
  •  筆圧スタイラスペン(別売)が使えるのは、13世代の FireHD10,Max11 のみ
  • 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を選びます

プロモーション用動画

  • 幅720px - 1080px(4:3または16:9)

 

 

古いバージョンの作り方

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

 compileSdkVersion 33
minSdkVersion 22
targetSdkVersion 31

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

 

Amazon Fire 実機デバッグ

  1. 開発者オプションを有効にする。設定>端末オプション>バージョン情報>シリアル番号を7回タップ。これで端末オプションの中に「開発者オプション」が追加されます
  2. 開発者オプションをON>USBデバッグをON
  3. AndroidStudioをインストールしたパソコンとUSBケーブルで接続
  4. 「USBデバッグを許可しますか」>このコンピュータをつねに許可>「許可」

これでAndroidStudioに、Fireデバイスが表示されます。

 

アニメGIFは、Silkブラウザで見える

  • 9VAeで出力したアニメGIFは、Amazon Photosだと静止画になります
  • Silkブラウザだと動画再生されます
  • SVGファイルも Silkブラウザで表示できます

Fire HD10用筆圧ペンはすばらしい

  • 9VAe最新版(Ver.6.5.9)では、Amazon Fire HD10 用標準筆圧ペン(5000円程度)がつかえます。
  • 文字入力のときに、手書き文字認識で入力できます。文字の上を横線でかくと削除できるし、非常につかいやすいです。

APK出力時にエラーが出る場合、.idleフォルダを削除

  • stdoのなかの隠しフォルダ .idle にAndroidStudioの状態を覚えているらしい。これに不整合に生じると、ビルドできなくなる。ターミナルから、.idlle フォルダを削除して作り直すと、ビルドできるようになった。
  • APKをつくるときに、keystore の再設定が必要。この値が .idleの中に設定されるようだ。