この記事は Dave Burke による Android Developers Blog の記事 " The first developer preview of Android 13 " を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
2022 年 2 月 10 日、Android 13 デベロッパー プレビュー 1 を公開しました。本日は、Android の次期リリースの概要を初めてお伝えします。Android 13 では、プライバシーとセキュリティ、デベロッパーの生産性という重要なテーマに取り組み続けます。また、12L で行った最新アップデートをベースとして、現在使われている 2 億 5000 万台以上の大画面 Android デバイスのメリットを活用していただけるようサポートします。
これは、Android 13 の始まりにすぎません。今後リリースに向けて作業を進める中で、さらに多くのことを共有する予定です。以下、新機能の概要について説明します。Pixel 向けのダウンロード (英語) やリリース スケジュール (英語) の詳細については、Android 13 デベロッパー サイト (英語) をご覧ください。いつものように、機能を最終リリースに含めるためには、早い段階でフィードバックを得ることが不可欠です。皆さんの感想を聞くのを楽しみにしています。そして、Android を誰もが使えるプラットフォームにするために、引き続き協力をお願いいたします!
ユーザーは、重要な個人情報や機密情報を安心して預けることができる OS やアプリを求めています。プライバシーは Android の製品理念の中核です。Android 13 では、デバイスで安全な環境を提供し、ユーザーが制御できることを増やす取り組みを通して、あらゆる人のために高品質で責任あるプラットフォームを構築することに主眼を置いています。2022 年 2 月 10 日 のリリースでは、ユーザーが写真や動画を安全にアプリと共有できる写真選択や、アプリが位置情報のパーミッションを取得する必要性を一層少なくするための新しい Wi-Fi パーミッションを導入します。新しい API を試し、変更によってアプリが受ける影響をテストしてみることをお勧めします。
写真選択と API - 写真や動画に関するユーザーのプライバシーを守るため、Android 13 にシステムレベルで写真選択機能を追加します。これは、ユーザーにとって、ローカルとクラウドベースの写真の両方を安全に共有する標準的で最適な方法になります。長年にわたって Android に搭載されているドキュメント選択機能を使うことで、デバイス上のすべてのメディア ファイルを参照するパーミッションを必要とせず、特定のドキュメントをアプリと共有できます。今回の写真選択では、この機能を拡張し、写真や動画を選択する便利な専用機能を追加します。アプリは、写真選択 API (英語) を使って共有された写真や動画にアクセスします。デバイス上のすべてのメディア ファイルを参照するパーミッションは必要ありません。Google Play システム アップデートを通じて、この写真選択をさらに多くの Android ユーザーに提供したいと考えています。Android 11 以降を実行するデバイス (Go デバイスは除く) を対象に、MediaProvider モジュールのアップデートとして提供する予定です。ぜひ写真選択 API を試してみて、フィードバックをお知らせください (英語) !
写真選択を使うと、一貫性のある安全な方法で、
特定の写真や動画へのアクセス権をアプリに与えることができる
ニアバイ デバイスの Wi-Fi パーミッション - Android 13 では、近くにあるアクセス ポイントへの Wi-Fi 接続を管理するアプリに対して、NEARBY_WIFI_DEVICES (英語) ランタイム パーミッション(NEARBY_DEVICES パーミッション グループの一部)を導入します。この新しいパーミッションは、多くの一般的な Wi-Fi API (英語) を呼び出すアプリに必要です。これを持つアプリは、位置情報のパーミッションがなくても、Wi-Fi で近くのデバイスを検出したり、それと接続したりできます。これまで、近くの Wi-Fi デバイスと接続する必要があり、デバイスの位置情報は必要としないアプリにとって、位置情報のパーミッション要件は高いハードルでした。Android 13 をターゲットにするアプリでは、そうする代わりに、NEARBY_WIFI_DEVICES パーミッションと “neverForLocation” フラグ (英語) をリクエストできるようになります。これにより、デベロッパーの手間を減らしつつ、プライバシー フレンドリーなアプリ設計が推進されます。詳しくはこちら (英語) をご覧ください。
Android 13 では、デベロッパーの生産性を向上させる新機能やツールも導入されます。数十億台のデバイスで動作する美しいアプリを作る皆さんをサポートすることは、私たちの中核となるミッションの 1 つです。その点は、Android 13 の仕組みであろうと、愛されている Kotlin 言語や Jetpack のこだわりがある API をはじめとする最先端の Android 開発用のツールであろうと変わりません。皆さんの生産性を上げることで、開発コストを下げ、皆さんがこれからもすばらしいエクスペリエンスの開発に集中できるようにしたいと考えています。以下では、2022 年 2 月 10 日のリリースに含まれている新機能の一部を紹介します。
クイック設定配置 API - 通知シェードのクイック設定は、ユーザーがアプリから離れずに設定を変更したり、すぐにアクションを実行したりできる便利な方法です。カスタムタイル (英語) を提供するアプリのために、ユーザーが簡単にタイルを見つけてクイック設定に追加できるようにします。新しいタイル配置 API (英語) を使うと、カスタムタイルをアクティブなクイック設定タイルに直接追加するプロンプトをアプリから表示できます。新しいシステム ダイアログを使うと、わざわざクイック設定に移動してタイルを追加しなくても、アプリを離れずに 1 つの手順でタイルを追加できます。
テーマ対応アプリアイコン - Android 13 では、Material You のダイナミック カラーを Google アプリ以外にも拡大し、すべてのアプリアイコンで、壁紙などのテーマのプリファレンスの色合いを引き継いだアイコンをオプトインできるようにします。アプリで必要なのは、モノクロのアプリアイコン (英語) 通知ドローアブルなど) を提供し、アダプティブ アイコンの XML を微調整することだけです。オプトインしたユーザーに一貫性のあるエクスペリエンスを提供できるよう、すべてのデベロッパーの皆さんには、互換性のあるアイコンを提供することをお勧めします。テーマ対応アプリアイコンは、まず Pixel デバイスでサポートされます。現在、パートナーのデバイス メーカーと連携して、対応デバイスを増やす作業を進めています。詳しくはこちら (英語) をご覧ください。
アプリごとの言語設定 - アプリによっては、多言語ユーザーのニーズを満たすため、ユーザーがシステム言語とは異なる言語を選べるようになっています。そのようなアプリでは、新しいプラットフォーム API (英語) を呼び出して、ユーザーの優先言語の設定や取得を行えるようになります。これにより、アプリのランタイム言語を設定する際のボイラープレート コードを減らし、互換性を向上させることができます。さらに互換性を向上させるため、同様の API を Jetpack ライブラリにも追加する予定です。詳しくはこちら (英語) をご覧ください。
ハイフネーションの高速化 - ハイフネーションを行うと、折り返されたテキストが読みやすくなり、UI のアダプティブ性が増します。Android 13 では、ハイフネーションのパフォーマンスを最適化して 200% 近く向上させ、TextView で有効化してもレンダリング パフォーマンスにほとんど影響を与えなくなっています。ハイフネーションを高速化するには、setHyphenationFrequency() (英語) で、新しい頻度 fullFast (英語) または normalFast (英語) を使います。ぜひハイフネーションの高速化をお試しいただき、感想をお聞かせください!
プログラマブル シェーダー - Android 13 では、プログラム可能な RuntimeShader (英語) オブジェクトがサポートされます。このオブジェクトの動作は、Android Graphics Shading Language (AGSL) で定義できます。AGSL は、構文は GLSL とほぼ同じですが、Android レンダリング エンジンの内部で動作して、Android キャンバスの描画やビュー コンテンツのフィルタリングをカスタマイズします。Android のリップル エフェクト、ぼかし、ストレッチ オーバースクロールは、内部的にこのシェーダーを使って実装しています。Android 13 では、皆さんのアプリでも同じような高度なエフェクトを作れるようになります。
AGSL アニメーション シェーダー
元になっているのはこちらの GLSL シェーダー
OpenJDK 11 アップデート - Android 13 では、Android のコア ライブラリを刷新して OpenJDK 11 LTS リリースに合わせる作業を始めています。これには、ライブラリのアップデートと、アプリおよびプラットフォーム デベロッパー向けの Java 11 プログラミング言語のサポートの両方が含まれます。また、Google Play システム アップデートにより、さらに多くのデバイスにコア ライブラリの変更を提供することも計画しています。このアップデートは、Android 12 以降を実行するデバイスを対象に、ART モジュール アップデートの一環として行う予定です。詳しくはこちら (英語) をご覧ください。
新しいバージョンのプラットフォームをリリースするたびに、アプリの互換性を優先し、迅速かつスムーズにアップデートできるように作業を行っています。皆さんが時間に余裕を持てるよう、Android 13 ではアプリに関連する変更のほとんどがオプトイン方式になっています。また、短時間で対応できるように、ツールやプロセスをアップデートしています。
Google Play を経由した Android アップデートの促進 - Android 13 では、デバイスを問わず、一貫性のある安全な環境をアプリに提供するため、また新機能をユーザーに配信するため、Google Play システム アップデート (Project Mainline) 英語) への注力を拡大し続けます。今では、写真選択や OpenJDK 11 などの新機能を、既存モジュールのアップデートという形で古いバージョンの Android ユーザーに直接プッシュできます。Bluetooth や超広帯域無線 (UWB) などの新モジュールも追加され、Android でコア機能をアップデートできる範囲はさらに広がっています。
タブレット、折りたたみ式、Chromebook 向けの最適化 - タブレット、折りたたみ式、Chromebook などの大画面デバイスには勢いがあります。今こそ、アプリをこのようなデバイスに対応させ、どんな画面にも適応できる完全にアダプティブなアプリをデザインしましょう。タブレット向けの最適化ガイドから始めて、大画面向けの開発や折りたたみ式デバイス向けの開発の方法を学ぶことができます。
変更点のテストやデバッグの簡易化 - アプリに影響を与える可能性がある変更点を簡単にオプトインしてテストできるように、今年も多くの変更点を切り替え可能にしています。この切り替えを利用すると、それぞれの変更を開発者向けオプションや adb から強制的に有効化、無効化できます。詳しくはこちら (英語) をご覧ください。
開発者向けオプションでのアプリの互換性切り替え
Platform Stability マイルストーン - アプリの互換性作業を計画する時間を長くとれるように、昨年と同様にかなり早いタイミングで Platform Stability マイルストーンをお知らせします。このマイルストーンでは、最終版の SDK や NDK API だけでなく、内部 API やアプリに関連するシステム動作の最終版を配信します。今年は、2022 年 6 月に Platform Stability に到達することを想定しています。その後、数週間の最終テストの期間を経て、公式リリースを迎える予定です。詳しいリリース スケジュールはこちら (英語) をご覧ください。
デベロッパー プレビューには、Android 13 の機能を試し、アプリをテストしてフィードバック (英語) を提供するために必要なすべてのものが含まれています。タブレットや折りたたみ式でアプリのテストを始める一番簡単な方法は、タブレットまたは折りたたみ式設定の Android Emulator を使うことです。完全な設定手順はこちらにあります。スマートフォンの場合は、システム イメージ (英語) を Pixel 6 Pro、Pixel 6、Pixel 5a 5G、Pixel 5、Pixel 4a(5G)、Pixel 4a、Pixel 4 XL、Pixel 4 のいずれかのデバイスに書き込むと、すぐに始めることができます。Pixel デバイスをお持ちでない方は、Android Studio で 64 ビット システム イメージと Android Emulator を使うことができます。さらに幅広くテストできるように、GSI イメージも公開しています。
セットアップ (英語) の完了後にやるべきことは、以下のとおりです。
プレビュー システム イメージと SDK は、Android 13 のリリース サイクル期間中、定期的にアップデートされる予定です。このプレビューの第 1 弾リリースは、デベロッパーのみを対象としています。日常的な使用やユーザーの使用を想定したものではありません。そのため、手動のダウンロードでのみ利用できます。プレビュー ビルドを手動でインストールすると、今後のプレビューやベータ版の無線 (OTA) アップデートをすべて自動的に受け取ります。詳しくはこちら (英語) をご覧ください。
ベータ版リリースに近づいたら、ユーザーも招待して Android 13 を試していただく予定です。その際には、Android ベータ版プログラムへの登録もオープンします。現在のところ、Android 13 のベータ版はまだ利用できない点に注意してください。
完全な情報は、Android 13 デベロッパー サイト (英語) でご覧いただけます。
Java および OpenJDK は Oracle および、またはその関連会社の商標または登録商標です。