この記事は エンジニアリング部門副社長、Dave Burke による Android Developers Blog の記事 " Second Beta of Android 14 " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Google I/O と同じタイミングで、Android 14 の 2 回目のベータ版をリリースしました。Google I/O では、Android 14 の多くの新機能を詳しく取り上げたセッションも開催されました。今回のベータ版 2 には、カメラとメディア、プライバシーとセキュリティ、システム UI、デベロッパーの生産性に関連する機能強化が含まれています。大画面デバイスのエクスペリエンス改善も続けています。また、一部のパートナー製スマートフォン、タブレット、折りたたみ式でも、初めて Android 14 ベータ版プログラムを利用できるようになります。
Android は、年間を通して機能強化と新機能を提供します。Android の継続的な改善においては、Android ベータ版プログラムのフィードバックが重要な役割を果たします。Android14 デベロッパー サイトには、Pixel にダウンロードする方法やリリース スケジュールなど、ベータ版に関する多くの情報が掲載されています。皆さんの感想を聞くのを楽しみにしています。そして、Android を誰もが使えるプラットフォームにするために、引き続きご協力をお願いいたします。
現在、Android 14 ベータ版は、iQOO、Lenovo、Nothing、OnePlus、OPPO、Realme、Tecno、vivo、Xiaomi などのパートナーから公開されています。
Android デバイスは、最高級のカメラが搭載されていることで知られています。Android 13 では、数十万色に対応した鮮やかなハイ ダイナミック レンジ (HDR) 動画の録画、デバイス メーカーが夜間モードやぼけなどの機能を利用するために使うカメラ拡張機能、最適化されたカメラ ストリームのユースケースなどのサポートが追加されました。Android 14 は、これらの機能がベースになっています。
Android に、10 ビット ハイ ダイナミック レンジ (HDR) イメージのサポートが追加されます。写真撮影時に、センサーからの情報をこれまでより多く保持できるので、鮮やかな色とコントラストを再現できます。Android が利用する Ultra HDR 形式 (英語) は JPEG と完全下位互換なので、アプリはシームレスに HDR イメージを利用でき、必要な場合はスタンダード ダイナミック レンジ (SDR) で表示することもできます。アプリのアクティビティ ウィンドウで HDR UI の使用がオプトインされている場合、フレームワークは UI で HDR イメージを自動的にレンダリングします。オプトインは、マニフェストのエントリか、実行時に Window.setColorMode (英語) を呼び出して行います。
対応するデバイスでは、10 ビット圧縮の静止画像 (英語) を撮影することもできます。センサーから取得できる色が増えるので、事後編集の柔軟性が向上します。Ultra HDR イメージに関連付けられた Gainmap (英語) は、OpenGL や Vulkan を使ったイメージのレンダリングに利用できます。
Android 14 では、カメラ拡張機能 (英語) のアップグレードと強化が行われています。アプリで長時間の処理を扱えるようになるので、大量の計算を実行するアルゴリズムを使ってイメージを改善できるようになります。その一例が、対応するデバイスでの低光量写真撮影です。これにより、カメラ拡張機能を使ったユーザー エクスペリエンスがさらに確かなものになります。改善の例として、以下が挙げられます。(※以下リンク全て英語)
現在のシーンや環境条件を利用して、静止画撮影処理の動的なレイテンシ予測の正確さを大幅に向上させます。CameraExtensionSession.getRealtimeStillCaptureLatency() を呼び出すと、2 つのレイテンシ予測メソッドを含む StillCaptureLatency オブジェクトを取得できます。getCaptureLatency() メソッドは、onCaptureStarted() から onCaptureProcessStarted() までの間の予測レイテンシを返します。getProcessingLatency() メソッドは、onCaptureProcessStarted() から最後の処理フレームが利用できるようになるまでの予測レイテンシを返します。
アプリで長い時間がかかる静止画撮影処理操作の現在の進捗状況を表示できるようにするために、撮影の進捗状況コールバックがサポートされます。この機能が利用できるかどうかは、CameraExtensionCharacteristics.isCaptureProcessProgressAvailable() で確認できます。利用できる場合は、onCaptureProcessProgressed() コールバックを実装すると、パラメータとして進捗状況(0 から 100)が渡されます。
拡張機能の効果の程度を指定する CaptureRequest.EXTENSION_STRENGTH や、背景をぼかす程度を指定する EXTENSION_BOKEH などの拡張機能固有のメタデータ。
カメラ拡張機能の静止画撮影のポストビュー機能。最終イメージよりも早く、処理前のイメージを提供できます。拡張機能の処理レイテンシが増加している場合は、ポストビュー イメージをプレースホルダとし、のちほど最終イメージに切り替えることで、UX を改善できます。この機能が利用できるかどうかは、CameraExtensionCharacteristics.isPostviewAvailable() で確認できます。利用できる場合は、OutputConfiguration を ExtensionSessionConfiguration.setPostviewOutputConfiguration() に渡すことができます。
SurfaceView のサポート。最適化された電源効率のよいプレビュー レンダーパスを実現できます。
拡張機能の使用中に、タップしてフォーカスやズームする機能をサポート。
CameraCharacteristics (英語) の REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE (英語) に SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW (英語) が含まれる場合、アプリで高度なセンサー機能を利用できます。CaptureRequest (英語) とストリームのユースケースを CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW (英語) に設定した RAW ターゲットを使うと、ズームした RAW ストリームに全視野と同じピクセル数を割り当てることができます。リクエスト オーバーライド コントロールを実装することで、別のカメラのコントロールが準備できる前でも、更新されたカメラでズーム コントロールを利用できるようになります。
Android 14 では、USB 有線ヘッドセットでオーディオ マニア級の体験を実現するために、ロスレス オーディオ形式がサポートされます。USB デバイスに優先ミキサー属性を問い合わせたり、優先ミキサー属性の変更を受け取るリスナーを登録したり、新しい AudioMixerAttributes (英語) クラスを使ってミキサー属性を設定したりできるようになります。これは、オーディオ ミキサーのチャンネル マスク、サンプルレート、動作などの形式を表します。このクラスを使うと、ミキシング、ボリューム調整、処理効果なしでオーディオを直接送信 (英語) できます。今年中にこの機能をデバイスに導入できるように、現在は OEM パートナーと協力して作業を進めています。
Android 14 には、描画キャンバスのレイヤ内で最先端の GPU 機能を活用するための高度なグラフィック機能が追加されています。
Android では、カスタムのシェーディングに対応した三角形メッシュの描画を以前からサポートしていますが、入力メッシュ形式はあらかじめ定義されたいくつかの属性の組み合わせに限られていました。Android 14 では、カスタム メッシュ (英語) のサポートが追加されます。これは三角形 (英語) または三角形ストリップ (英語) として定義でき、インデックスをつけることもできます。これらのメッシュは、カスタム属性 (英語) 、頂点ストライド、varying (英語) 、AGSL (英語) で記述した頂点とフラグメント シェーダーで指定します (英語) 。頂点シェーダーでは、position や color などの varying を定義します、フラグメント シェーダーでピクセルの色を定義することもできます。その場合、通常は頂点シェーダーで作成した varying を使います。フラグメント シェーダーで色が指定された場合、メッシュの描画 (英語) 時に選択されたブレンドモード (英語) を使って現在の Paint (英語) の色とブレンドされます。柔軟性を向上するため、フラグメント シェーダーと頂点シェーダーには uniform (英語) を渡すこともできます。
Android の Canvas (英語) API を使い、ハードウェア アクセラレーションを利用して HardwareBuffer (英語) に簡単に描画できるようにするため、Android 14 に HardwareBufferRenderer (英語) が導入されます。SurfaceControl (英語) 経由でシステム コンポジタと通信し、低レイテンシ描画するユースケースでは、特にこれが便利です。
Android 14 では、引き続きプライバシーに重点を置いています。ユーザーが制御できることを増やし、データとその共有方法についての可視性を高める新機能が導入されます。
ヘルスコネクトは、ユーザーの健康とフィットネスのデータを格納するオンデバイスのリポジトリです。ユーザーはお気に入りのアプリ間でデータを共有でき、どのデータをどのアプリと共有するかを 1 か所で管理できます。
現在、ヘルスコネクトは Google Play ストアでアプリとしてダウンロードできます。Android 14 以降のヘルスコネクトはプラットフォームの一部となり、Google Play システム アップデートでアップデートを受け取るため、個別にダウンロードする必要はなくなります。これにより、ヘルスコネクトを頻繁にアップデートできるようになります。また、Android 14 以降を実行するデバイスでは、アプリから確実にヘルスコネクトを利用できます。ユーザーは、デバイスの [設定] からヘルスコネクトにアクセスできます。プライバシー管理はシステム設定に組み込まれています。
ヘルスコネクトでは、エクササイズのルートがサポートされるようになります。ワークアウトのルートは共有することも、マップ上で視覚化することもできます。ルートは時間内に保存された場所のリストとして定義され、アプリからエクササイズのセッションにルートを挿入して結びつけることができます。ユーザーがこの機密データを完全に制御できるようにするため、ユーザーは個々のルートを別のアプリと共有することを許可する必要があります。
新機能はこれだけではありません。ヘルスコネクトの詳細は、別のブログ投稿で紹介しています。Android の Health の新機能 (英語) をご覧ください。
さらに、位置情報の権限を持つアプリでデータの共有方法が変更され、サードパーティとのデータ共有が開始された場合には、ユーザーに定期的な通知が送られるようになります。
新しい位置情報データ共有アップデート ページは、デバイスの [設定] からアクセスできるようになる予定です。
Android 11 (API レベル 30) では、すべてのアプリが Notification.Builder#sendFullScreenIntent (英語) を使って、スマートフォンがロックされている際に全画面表示インテントを送信できました。AndroidManifest で USE_FULL_SCREEN_INTENT (英語) 権限を宣言すると、アプリのインストール時にこれを自動付与することもできました。
全画面表示インテント通知は、通話の着信やユーザーが設定したアラーム時計など、ユーザーがすぐに注目すべき非常に優先度の高い通知を実現するために設計されています。Android 14 以降では、インストール時にこの権限を付与されるアプリを、通話とアラームを提供するアプリのみに制限します。
Android 14 にアップデートする前にインストールされたアプリでは、この権限は引き続き有効です。ユーザーはこの権限のオンとオフを切り替えることができます。
新しい API NotificationManager.canUseScreenIntent (英語) を使うと、アプリに権限が付与されているかを確認できます。付与されていない場合、アプリで新しいインテント ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT (英語) を使って設定ページを開くことができます。ユーザーはこのページから権限を付与できます。
Android 14 ベータ版 2 リリースでは、複数の改善と新しいデベロッパー向けガイドを追加して、アプリのアクティビティ間を移動する際にシームレスなアニメーションを実現できるようにしています。(※以下リンク全て英語)
android:enableOnBackInvokedCallback=true を設定すると、アプリ全体ではなく、アクティビティごとに予測型「戻る」システム アニメーションをオプトインできます。
ボトムシート、サイドシート、検索用の新しいマテリアル コンポーネント アニメーションを追加しました。
カスタムのアプリ内アニメーションと遷移を作成するためのデザインガイド を作成しました。
カスタムのアプリ内遷移アニメーションに対応するため、以下の新しい API を追加しました。
OnBackPressedCallback の handleOnBackStarted、handleOnBackProgressed、handleOnBackCancelled
OnBackAnimationCallback の onBackStarted、onBackProgressed、onBackCancelled
ユーザーのスワイプバックに応答する遷移には、overridePendingTransition ではなく overrideActivityTransition を使用してください。
Android 14 ベータ版 2 でも、予測型「戻る」の全機能をデベロッパー オプションで制御できる点は変わりません。アプリを予測型「戻る」に移行するためのデベロッパー ガイドと、カスタムのアプリ内遷移を作成するためのデベロッパー ガイドをご覧ください。
ベータ版 2 は、2023 年 6 月に予定されている Platform Stability まであと一歩です。Platform Stability では、Android 14 SDK と NDK API、そしてアプリに関連するシステム動作が最終版となります。Android 14 ベータ版を実行するデバイスが多くなるため、これから数週間のうちに、Android 14 で皆さんのアプリを試すユーザーが増え、見つかった問題が報告される可能性があります。
互換性テストを実施するには、公開しているアプリを Android 14 ベータ版を実行しているデバイスかエミュレータにインストールし、アプリのフローをすべて試します。重点的にテストを実施すべき点については、動作の変更点を確認してください。見つかった問題を解決できたら、できる限り早くアップデートを公開しましょう。
このタイミングで、アプリのターゲットを Android 14 にする準備を始めることをおすすめします。開発者向けオプションで、アプリの互換性変更を切り替えてテストを行いましょう。
ベータ版 2 のリリースには、Android 14 の機能を試し、アプリをテストしてフィードバックを提供するために必要なすべてのものが含まれています。タブレットや折りたたみ式でアプリをテストする場合、パートナー製のデバイスを使うこともできますが、一番簡単な方法は、Pixel Tablet または Pixel Fold 構成の 64 ビット Android Emulator システム イメージを使うことです。これらは、Android Studio SDK Manager の最新プレビュー版から取得できます。こちらからサポート対象の Pixel デバイスを登録し、今回と今後の Android 14 ベータ版やフィーチャー ドロップのベータ版アップデートを無線 (OTA) で受け取ることもできます。
Android 14 向けに最高の開発をするには、Android Studio Hedgehog (英語) の最新リリースを使うことをおすすめします。セットアップの完了後にやるべきことは、以下のとおりです。
新しい機能や API を試す – API の確定に向けて、皆さんのフィードバックが不可欠です。問題は、フィードバック ページのトラッカーで報告してください。
現在のアプリの互換性をテストする – アプリが Android 14 のデフォルト動作の変更による影響を受けるかどうかを確認します。Android 14 を実行しているデバイスかエミュレータにアプリをインストールし、幅広くテストします。
変更をオプトインしてアプリをテストする – Android 14 では、動作の変更点はターゲットに新しいプラットフォームを指定した場合にのみアプリに影響するようになっており、それをオプトインすることができます。変更点を早めに把握し、評価することが重要です。簡単にテストできるように、変更点のオン、オフを個々に切り替えられるようになっています。
ベータ版のシステム イメージと SDK は、Android 14 のリリース サイクル期間を通じて定期的にアップデートされる予定です。
ベータ版の入手方法の詳しい説明は、Android 14 デベロッパー サイトをご覧ください。
Reviewed by Mari Kawanishi - Developer Marketing Manager, Google Play