Android/Kotlin備忘録: SplashScreen APIが導入されていなかったアプリ (targetSDK ≥ 33)
最近、アプリの開発用にと、10-インチ画面の安いAndroidタブレット (WiFi)を購入しました。
カタログ上だと、そのタブレットの搭載OSは「Android 12」 (コードネーム: スノーコーン) となっていて、には「Android 14」 (コードネーム: 逆さケーキ) がリリースされているので、OSの型落ちが少し気になりましたが、購入後、電源を入れて少し使っていると「アップデートがあります」という通知が出たのでポチポチしたらすんなりと「Android 12」から「Android 13」 (コードネーム: ティラミス) にアップデートされました。
これまでアプリ開発には主にエミュレーターのAndroidを使っていて、手持ちのAndroidデバイスでは一番新しいOSのものが「Android 9」 (コードネーム: パイ)でしたw。
これで開発したアプリも実機で確認が出来るという事で、早速、Google Playで公開しているアプリをテストしてみましたが、「ツイキャス専門店『コメ欄』Lite」のバージョン0.1.1nがすごい事になっていました。
バージョン0.1.1n
上の動画はAndroid13のタブレットで『コメ欄』Liteのバージョン0.1.1nの動作チェックを行った際の録画になりますが、前のフレームが消えすに残って重なって表示され、何が何なのか見えなくなってしまっています。
解決方法: SplashScreen API
結果としては、それまで使っていたスプラッシュ画面を、Android 12で追加された「SplashScreen API」を使う仕様に変更した処、テストに使ったAndroid13のタブレットでは問題が解決されていました。
👉『スプラッシュ画面の実装を Android 12 以降に移行する』(Androidデベロッパー)
詳細
エミュレータ上のAndroid13では同様の問題の確認は出来なかったのですが、実は、「Google Playコンソール」の「リリース前レポート」に残っていたスクリーンショットで、アプリバージョン0.1.1nのテストで使われたデバイスのAndroidバージョンが14の場合には、上のタブレットで起きたのと同様の問題が起きていた事を確認する事が出来ました。
又、同じレポートでAndroidバージョンが13の場合は、スプラッシュ画面に表示される緑色のロゴマークの「キィー」がメイン画面に残っているという問題だけが確認出来ました。
これらは全く予期していないかった不都合でしたが、リリース前レポートには特に「UIが近すぎる」などと言った警告も無かったので、複数のUIが重複して存在しているのではなく、画面の描画に問題があるはずだと思ったのと、以前、新しいAndroidでスプラッシュ画面の仕様が変わったという話はどこかで聞いていたので、初めの時点でスプラッシュ画面が関連しているかもしれないという予想はしていました。
今回の不都合は古い仕様のスプラッシュ画面が実装されているアプリをそのままSDK 34 (Android 14)でビルドをすると発生するみたいですが、上記のリンクで説明されているスプラッシュ画面を「SplashScreen API」に切り替える事でも解決される様です。
長い間更新をしていなかったAndroidアプリを最新のSDKでビルドし直す際は注意すべき点かもしれません。
コメント
コメントを投稿