Edited at

Android Pie対応についてまとめ


Android Pieとは

公式:https://developer.android.com/about/versions/pie?hl=ja

Android 9.0のこと。

何故Pieかというと、毎versionでお菓子の愛称を付けているから。

6.0はMarshmallow、7.0はNougat、8.0はOreoだった。


機能的な変更点

参考:【まとめ】Android Pie 9.0の新機能、特徴、レビュー、変更点、不具合


  • ホームボタンが廃止になり、バーになった。iPhone XのようなUXに

  • 最近使用したアプリの表示が新しくなり、よく使うアプリが5つ表示された状態の画面になった

  • アプリドロワーが新しくなり、頻繁に使用されるアプリが一番上に表示されるようになった

  • 「アプリのダッシュボードの表示」を搭載

  • 「アプリタイマー」機能の搭載(アプリの利用時間がグラフィックに表示できる)

  • 端末を平面に置き、画面を下にして起動する「Shushモード」の搭載(自動的に音声通知と振動をミュートに)

  • 「ビール」の絵文字デザイン変更

  • テキスト拡大表示
    etc


開発面でのAndroid 9移行対応について

公式:Migrating to Android 9

移行は「基本的な互換性の確認」と「targetSdkVersionを28にする対応」の二つのフェーズがあるとのこと。


基本的な互換性の確認

参考:Behavior changes for all apps

targetSdkVersionを変えなくても、Android 9ではアプリの動作に影響を与える可能性がある。具体的には、以下のような変更点があり、これによってAndroid 9では一部機能が動かないなどの可能性が存在する。


  • non-SDKインターフェースの制限:一部APIでリフレクション経由などでのアクセスがブロックされる

  • Cryptoプロバイダの廃止:SecureRandom.getInstance("SHA1PRNG", "Crypto") を呼び出すと、NoSuchProviderExceptionがスローされる

  • UTF-8デコーダが厳密になり、Unicode標準に準拠するようになる

  • アイドル状態でカメラ、マイク、SensorManagerセンサーにアクセスできなくなる

  • アプリスタンバイバケットの導入:アプリの使用頻度に応じてバケットが割り当てられ、優先度が変化する

  • バッテリーセーバーの改善

  • 電話番号や通話履歴へのアクセスの制限


targetSdkVersionを28にする対応

参考:Behavior changes for apps targeting API 28+


  • フォアグラウンド サービスを使用する際に FOREGROUND_SERVICE パーミッションをリクエストする必要がある

  • ビルドシリアル番号のサポートの終了(Build.SERIALが常に"UNKNOWN"になる)

  • プライベートDNS APIの考慮が必要


  • isCleartextTrafficPermitted()がデフォルトfalseになる。必要に応じてcleartextTrafficPermittedtrueに指定する必要がある

  • アプリが複数のプロセス間で単一のWebViewデータディレクトリを共有できなくなっている

  • ワールドアクセスが可能な Unix パーミッションを使用して、他のアプリとデータを共有できない

  • 現在のデフォルトではないネットワーク上のネットワークトラフィックがカウントされ、そのトラフィックをクエリするために、NetworkStatsManagerクラスのメソッドが提供される

  • Apache HTTP クライアントのサポートが削除される

  • 面積が0のビューはフォーカス不可

  • 4桁および8桁の16進数CSS色を扱うために、CSS Color Module Level 4で策定された動作を有効にする必要がある

  • ドキュメントのルート要素がスクロール要素である場合、適切な処理が実行される

  • 保留されたアプリからの通知が、アプリ再開まで非表示になる


Pie関連のリンク

https://github.com/operando/Notes/tree/master/potatotips_52

https://developers-jp.googleblog.com/2018/10/introducing-android-9-pie.html

https://feel-log.net/android/developer/android_9_pie_migrations_apps/


その他のリンク

[Android]Androidバージョンと対応するAPIレベル/コードネーム一覧

AndroidのAPI LevelとVersionの対応関係一覧表