Android 14 Developer Preview 1リリース:変更点と新機能
|2023年2月8日9:30AM(現地時間)、GoogleよりAndroid 14 Developer Preview1が発表されました。最新のAndroid 14(Android U、コードネームはUpsideDownCakeです。Android 14 DP1)のアップデートを速報でお伝えします。
Android 14 DP1でのアップデートはAndroid 13までの注力分野を維持しており、基本的な路線はここ数年で大きな変化はありません。パフォーマンス、プライバシー、セキュリティ、そしてユーザー体験、開発者の生産性向上です。
Android 14 DP1はエミュレータのほかPixel 7 Pro、Pixel 7、Pixel 6a、Pixel 6 Pro、Pixel 6、Pixel 5a 5G、Pixel 5、Pixel 4a (5G)で現時点より確認できます。また対応アプリの開発環境はAndroid Studio Giraffeを推奨しています。※本記事執筆時点ではOTAでのアップデートは未提供です。
今後のマイルストーンとリファレンス
最終版までのマイルストーンは次のとおりです。最終リリースまで概ね四半期ごとにステップを設けており、Quarterly Platform Release (QPR)と呼んで開発者からのフィードバックを集めています。
Android 14では、開発者向けの公開(意見収集フェーズ)と、ベータリリース、そしてプラットフォーム安定性確認の3つのフェーズを経て最終リリースを行います。2023年6月までがベータ期間(Beta 3まで)となり、2023年6月以降は基本的にAPIの挙動変更はなくなり、動作確認や不具合修正が中心となります(Beta 4,5が対象です)。月単位や各フェーズの説明など詳細なマイルストーンはこちらをご確認ください。
次のリストは本記事の執筆にあたって参考にしたリファレンスです。
- The first developer preview of Android 14 グーグル公式開発者ブログ
- Android 14 Developer Previewサイト
- 開発者プレビューでみつけた不具合、フィードバックの連絡先
- Android 14の試し方、エミュレータ、フラッシュイメージのダウンロード方法
- Android 14で変更・影響のある機能リストと注釈
- アプリ挙動の変更(すべてのアプリ:Android 14プラットフォーム上で受ける影響の解説)
- Android 14をターゲットとするアプリ挙動の変更
- Android 14の新機能(APIの変更、追加等)
- Android 14 DP1のAPI Differences Reports
- Jetpack librariesアップデートリスト(2023年2月8日、DP1にあわせて数多くのライブラリが更新)
以下はAndroid 14 DP1で導入された機能・制限・変更点の一覧表、注目ポイント等の解説です。続きからどうぞ!
Core Functions(基本機能の変更・追加)
- 大画面への最適化(こちらはAndroid 13までの変更です。Window sizeクラスの導入、Activity embeddingなど)
- バックグラウンド処理の変更(JobSchedulerとForeground Servicesを更新/追加)
- Android 14ではアプリは適切なフォアグラウンドサービスタイプを指定する必要があります(すくなくとも1つ、サービスにタイプを記載する)
- データ転送用の新しいAPIを追加しました
- バッテリーの節約を目的にブロードキャストを最適化し、アプリが受け取るタイミングを変更(システムはブロードキャストの受け取りをキューイングして待たせることがある)
- Android 13以降をターゲットにしたアプリではSCHEDULE_EXACT_ALARM(正確な時刻に起動するためのPermission)はデフォルトで拒否されます
- ユーザーはフォントを200%に拡大できるように(Android 13までのPixelでは130%が上限)
- アプリごとの言語設定を動的に変えるAPIを追加
- 文法上の性別がある言語へのサポートを強化し、パーソナライズを促進するGrammatical Inflection APIを追加
- OpenJDK 17のサポートを追加
- アプリ互換性検証機能の提供(開発者向けオプションと ADB コマンドから特定機能のON/OFFを制御できます)
- Android Work(エンタープライズ)向けに連絡先等のクロスプロファイルアクセス
開発者オプションからアクセスできる「アプリの互換性検証機能」では、Android 14がアプリにどのような影響を与えるか、個別にチェックできます。画像にあるようなリストは、それぞれがAndroidシステムのもつフィーチャーフラグで、どのような機能を制御できるかはこちらのページで解説しています。
Privacy & Security(セキュリティ強化)
プライバシーやセキュリティ強化のため、アプリの挙動について、Android 14 DP1では次の制約が追加されています。基本的には開発者が意図していない機能の公開や、意図しない動作を防ぐスタンスです。
- 動的にブロードキャストレシーバーを登録する際にはAndroid 13で追加された公開・非公開設定を明示的に指定しなければなりません。
- 暗黙的Intentの受け取り方を変更し、パッケージを指定しないインテントをアプリ内部に送信することを制限します(明示的に公開する必要があります)
- 動的なコードローディング(DCL)でのセキュリティイシューを軽減するため、動的に読み込む場合、読み取り専用属性が必要になります。
- Android 14 以降ではtargetSdkVersionが23未満のアプリはインストール不可となります。
- Credential Manager とパスキーのサポートを追加
- 非SDKインターフェイスを制限(これまでのリストを更新し、利用できないAPIのリストが変わりました)
Android 14の新機能
ここまで機能変更等の一覧を紹介しましたが、Android 14 DP1の新機能について個別に解説します。アプリごとの言語設定はAndroid 13のときに追加された機能ですが、Android 14では動的更新等もサポートされるようになりました。IMEとのインターフェイス(言語設定)を追加し、アプリの言語設定にあわせたキーボード等を表示することもできるようになります。
ユーザーに合わせたローカライズの一貫として、Grammatical Inflection APIも面白い取り組みです。フランス語のような文法上の性別がある言語は、これまで扱いにくかったのですが(アプリからユーザーの性別や対象となる人物に基づいて翻訳文を指定できなかった)、このAPIを使えばより自然な翻訳を提供可能としています。Android Studioでのサポートは未提供ですが、将来のPreviewリリースで対応予定とのことです。
アクセシビリティ機能では最大のフォントサイズが130%から200%に変更がありました。Android 14上でアプリでのレイアウトが破綻しないか(この場合は「情報を必要な利用者へ、欠落せず適切に届けられるか」という意味です)文字や文章が欠けたりしないか、開発者として検証してください。テキストサイズの指定方法や非線形のフォントスケーリングのテストはこちらのドキュメントをみてください。
APIリファレンス変更の雑感
Android 14 DP1のAPIリファレンスで面白いと感じたポイントをまとめておきます。
- android.adservices.topics 広告関連が追加されており、サードパーティクッキーに変わる手法としてGoogleが提唱しているTOPICSベース機能をOS統合しようとしている。
- android.credentials セキュリティ強化。CreadentialManager関連(Passkey等)がOS統合され始めており、より安全にユーザーデータやアクセスを管理できる仕組みが整備されつつある。
- android.healthconnect ヘルスコネクト関連機能。WatchやFitといった健康管理などプライバシーが必要なデバイス、センサーデータの管理機構が追加され始めている。
- https://developer.android.com/reference/android/os/Build.VERSION_CODES.html#UPSIDE_DOWN_CAKE どんなケーキかな?とおもったらフライパンとかで焼くときに下側になる(切ったリンゴとか)が、食べるときにひっくり返して上側にくる逆さまケーキという意味らしい。
- android.view Jetpack Compose後、新機能が追加されないわけではなく、よりレンダリングを細かく制御できるような下位レイヤーのAPIが追加されていてパフォーマンス向上のための取り組みを行っている。
- BackEvent ウインドウエッジでのスワイプをハンドリングするためのクラスが追加
Android 14 DP1のまとめ
Android 14 DP1ではプラットフォームのコア機能アップデートや、セキュリティ・プライバシーにかかわる変更がメインです。開発者向けプレビューの立ち位置からもわかるようにフレームワークの基礎的なアップデートが中心です。ワクワクするような機能はDP2やBeta 1以降(Google I/O 2023かもしれませんね)に期待することになります。
Android 12,13を振り返ってみても、DP1の変更は派手ではありません。しかし後戻りしにくい重要な変更を含んでいます(Android 14 DP1ではフォアグラウンドサービスのタイプ指定やブロードキャストレシーバ、暗黙的インテント、動的コードローディング等の扱い変更が代表的でしょう)、特にCreadentialManagerやPasskeyのセキュリティ機能強化は利用者のプライバシーを守るためには必須の機能です。
DP1では発表されなかったJetpack Composeの新ライブラリやパフォーマンス改善、Android Studio Preview Giraffeなど開発環境の新機能、生産性向上のための新機能アナウンス・ツール発表が楽しみですね。
※執筆後にJetpackライブラリのアップデートがあったことを確認しています。
本記事はGoogle公式リファレンス、Android Developer向けの公式ブログ等の初出情報を元にして執筆しました。Google I/OのようなGoogleの開発者との直接的なディスカッションは行っていません。可能な限り正確な表記を心がけていますが誤りを含んでいる場合があります。もし見つけたらTwitterなど @mhidaka までご連絡ください。