GoogleがAndroid 11を開発者向けプレビューとしてリリースした。開発者は自身のアプリケーションを次期Androidに対応できると同時に、早期フィードバックを提供することにより、リリースを堅牢化する上でGoogleに協力することが可能になる。Android 11には、既存アプリに影響を与える可能性のある多数の動作変更の他、新しい機能とAPI、新たなプライバシオプションも含まれている。
Android 11ではメディア管理、コネクティビティ、データ共有、マシンラーニングなど、多数の新APIがサポートされている。
MediaStore APIでは、ファイルへの書き込みアクセス許可、"お気に入り"ファイルの作成、ファイルをゴミ箱へいれる、または即時削除といった、メディアファイルのバッチ操作の実行がサポートされるようになった。ファイルにアクセスするパスを直接使用して、サードパーティ製ライブラリの使用を簡略化することもできる。GLESおよびVulkanグラフィック層をネイティブアプリケーションコードにロードして、デバッグのパフォーマンスを改善することも可能だ。
新しいResourceLoader
APIとResourceProvider
APIを使えば、アプリからリソースの検索およびロードを行う方法を拡大することができる。これは、アプリケーションAPKに代えて特定のディレクトリを使う、というように、独自のアセットローディングを行うためのものだ。さらにC/C++を使用する開発者ならば、NDK ImageDecorder
APIを使って、イメージを直接デコードすることが可能になる。
Android 11で新機能が追加されたもうひとつの分野であるマシンラーニングでは、具体的にはTensorFlow Liteの新しい量子化スキーム、QoS用の新しいMLコントロール、コンポーネント間のデータ管理の合理化によるデータの冗長性低減などのサポートが追加されている。新設された`BiometricManager.Authenticatorsインターフェースにより、生体認証サポートも拡張された。
プライバシに関してもいくつかの変更が行われており、Scoped Storageの拡張、バックグラウンドでのロケーションアクセスなどが導入された他、新しいワンタイムパーミッションモデルにより、ロケーションやマイク、カメラへのアクセスをユーザがワンステップで許可できるようになった。
上にあげたプライバシの変更はすべて、既存のアプリに影響するものであるため、Googleは開発者に対して、自身のアプリがこれらに適合していることをチェックするように、明確に要請している。Android 11にはこの他にも、既存アプリに影響する可能性のある動作上の変更がいくつかある。例えばJobScheduler
では、パフォーマンス面での潜在的な問題を特定するために、制限の指定が必須となった。また、ユーザが特定の許可要求を2回拒否した場合、OSがそれを"同じ質問をしない"という意味だと解釈するようになった。さらに、これまではアプリ特有の画面にユーザを移動させるために使用されていたACTION_MANAGE_OVERLAY_PERMISSION
が、常に最上位の設定画面に移動するように変更された。
Android 11で実施された変更の数は多く、ここではすべてを紹介できないので、詳細については公式資料で確認してほしい。Android 11はまだ完成していない点も忘れてはならない。Googleは数ヶ月中に、新たなプレビューバージョンを公開する予定である。