Edited at

いまさらAdobe AIRアプリをAndroidへ移植

特殊な業界向けということもあり、これまで会社レベルでAndroidに縁無かったんですが、この度動かすことになり、ちょっと躓いたのでメモ。


バックグラウンドでも低FPSで動作し続ける

いや、これホントビックリしましたね……。メニュー画面戻っても音流れ続けてるんですもん。:sweat_smile: これがAndroidの仕様とは……。結論から言うと自前でアプリ内の停止・復旧処理を書く必要があるんですが、アプリの性質&元の設計&変更コストからNativeApplication.exit();で逃げました。:scream: 正味ここAIR側で簡単に一括処理できるようにしてほしかったというのは(ry


SWC埋め込んでると、起動が異常に遅くなる

これホントどハマリしましたねぇ……。具体的な症状としては20秒ぐらいブラックスクリーン状態が続いた後にようやく起動する感じですね。デスクトップやiOSだとプログレスバーいらないレベルの軽量アプリで用意してないし、AIR for Androidではスプラッシュスクリーン設定できないし、どうしたものかと。

これに対してはSWCを埋め込んだ本体ファイルを直接APK化するのではなく、プリローダー用のflaファイルを用意してそちらをAPK化し、SWCを埋め込んだ本体ファイルを読み込むという形に変えるだけで何故か爆速になる:rolling_eyes:んで、これが手っ取り早いかと。早くなる道理が無いと最初スルーしてたんですが、後から試しにやったら本当に早くなって吹きました。おそらくは起動処理とSWCの読み込みがバッティングしてるんだと思うんですが……。


参考

It is too long time to load swc files (only Android)