日本のデベロッパーの方へ Google Play や Android に関する最新情報をお届け
Android 12 デベロッパー プレビューをリリースしました
2021年2月24日水曜日
この記事は Dave Burke による Android Developers Blog の記事 "
First preview of Android 12
" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
Android アプリは、スマートフォン、ノートパソコン、タブレット、テレビ、自動車といったさまざまなデバイスで、日々数十億人の仕事や趣味、コミュニケーション、創作活動に使われています。皆さんが開発したアプリを利用する人が増えるにつれて、プラットフォームに対する期待値が上がるサイクルも短くなっています。皆さんに早い段階で Android の新しいバージョン リリースを共有する理由の 1 つはそこにあります。
本日 2021 年 2 月 18 日(日本時間 2 月 19 日)、Android の次期バージョンとなる Android 12 で最初の Developer Preview をリリースしました。
アプリやそれを使うあらゆる人々のために優れたプラットフォームを構築するために、フィードバックをお寄せください。 皆さんのテストとフィードバックをお待ちしています。
私たちはプライバシーとセキュリティを中心に据える一方で、バージョンアップのたびに Android OS をより賢く、使いやすくし、パフォーマンスを向上させてきました。Android 12 では、ユーザーのために優れたユーザー エクスペリエンスを構築できる新しいツールを提供する作業も続けています。たとえば、互換メディア トランスコーディングは、まだ最新の動画フォーマットをサポートしていないアプリが最新フォーマットを扱う際に役立ちます。また、画像や動画などの容量が大きなリッチ コンテンツをアプリに簡単にコピーしたり貼り付けることができるようになります。さらに、プライバシー保護や、アプリをすばやく応答させるパフォーマンスの最適化も追加します。
今回発表したデベロッパー プレビューは、Android 12 の始まりに過ぎません。今後正式版リリースに向けて作業を進める中で、さらに多くのことを共有させていただく予定です。この記事では、Android 12 の新機能の概要をご説明します。
Pixel 向けのデベロッパー プレビュー のダウンロード
方法や、詳細な
リリース スケジュール
は、
Android 12 デベロッパー ウェブサイト
をご覧ください。最終的なプロダクトに組み込むには、早い段階のフィードバックが欠かせません。ぜひ
皆さんの感想をお知らせください
。
今月、Android 12 のほかにも、すばらしいユーザー エクスペリエンスを簡単に作ることができる、もう 1 つの重要なツールについてお知らせする予定です。それが、ネイティブ UI を作成する最新ツールキット、Jetpack Compose です。Jetpack Compose の開発の舞台裏をご紹介する
オンライン イベント #TheAndroidShow
をぜひご覧ください。太平洋時間 2 月 24 日午前 9 時(日本時間 2 月 25 日 午前 2 時)より、ライブ配信でお送りします。Jetpack Compose に関する質問は、ハッシュタグ #TheAndroidShow をつけて、Twitter に英語で投稿してください。イベント中にご回答します。
信頼と安全
プライバシーは、私たちが行うすべてのことの中核です。Android 12 では、これまでに引き続き、デバイスとデータを安全に保ちつつ、ユーザーの透明性と制御を向上させることに注力します。このデベロッパー リリースでは、トラッキングに利用できる識別子に関する新たな制御を追加したり、アプリのコンポーネントのデフォルトを安全なものに変更しています。このような変更によってアプリが影響を受ける可能性がありますので、できるだけ早くテストすることをお勧めします。今後のプレビュー リリースでは、プライバシーやセキュリティの機能をさらに追加する予定です。
最新の WebView での SameSite Cookie 動作 -
Chrome
や他のブラウザの変更に合わせて、WebView に新しい SameSite Cookie 動作を組み込みます。これにより、セキュリティとプライバシーが強化され、ウェブサイトをまたぐ Cookie の利用に関するユーザーの透明性と制御が向上します。
詳しくはこちらをご覧ください
。
Netlink MAC の制限 -
プライバシーを保護できるリセット可能な識別子
への移行を行うデベロッパーのサポートを継続します。デバイスをスコープとする Netlink MAC の移行を簡単にするための複数のリリースにわたる作業として、Android 11 では API レベル 30 を対象として Netlink MAC へのアクセスを制限しました。Android 12 では、ターゲット SDK レベルにかかわらず、この制限をすべてのアプリに適用します。
詳しくはこちらをご覧ください
。
コンポーネントの安全なエクスポート -
アプリが意図せずにアクティビティ、サービス、レシーバをエクスポートしてしまうことがないように、
android:exported
属性のデフォルトの扱いをより明示的なものに変更します。この変更により、1 つまたは複数のインテント フィルタを宣言しているコンポーネントは、android:exported 属性を明示的に宣言しなければならなくなります。この変更に伴うインストール エラーが起こらないように、マニフェストのコンポーネントを確認してください。
詳しくはこちらをご覧ください
。
Intent の安全な扱い -
Android 12 では、PendingIntent をさらに安全に扱えるように、各 PendingIntent ごとに可変性フラグ(
FLAG_MUTABLE
または新設される
FLAG_IMMUTABLE
)を明示的に宣言しなければならなくなります。
詳しくはこちらをご覧ください
。
上記の詳細やその他のプライバシーやセキュリティの変更点については、
こちらをご覧ください
。
ユーザー エクスペリエンス ツールの進化
Android 12 では、洗練されたエクスペリエンスと優れたパフォーマンスをユーザーに提供できるように、重要な領域に注力しています。現時点での主なアップデートは以下のとおりです。
互換メディア トランスコーディング -
モバイル デバイスでの HEVC ハードウェア エンコーダの普及に伴い、HEVC フォーマットで録画するカメラアプリが増加しています。このフォーマットは、古いコーデックに比べて画質と圧縮率が大幅に向上しています。ほとんどのアプリは HEVC をサポートすべきですが、それができないアプリのために、互換メディア トランスコーディングを導入します。
この機能を使うと、HEVC をサポートしないアプリは、プラットフォームの機能を利用してファイルを AVC(広い互換性があるフォーマット)に自動トランスコードできます。トランスコード処理には、動画やデバイスのハードウェア特性に応じた時間がかかります。たとえば Pixel 4 では、1 分間の 30fps、1080p の動画のトランスコードに約 9 秒が必要です。トランスコーディング サービスは、アプリがサポートしないメディア フォーマットを宣言するだけで利用できます。デベロッパーの皆さんには、アプリで HEVC をサポートすることを強くお勧めしますが、それが不可能な場合は、互換メディア トランスコーディングを有効にしてください。この機能は、HEVC フォーマットで動画を録画するすべてのデバイスで利用できるようになる予定です。本機能に関するフィードバックをお待ちしています。
詳しくはこちらをご覧ください
。
AVIF イメージ サポート -
画質と圧縮効率を向上させるため、Android 12 では
AV1 イメージ ファイル フォーマット
(AVIF)をプラットフォームでサポートします。AVIF は、
AV1
でエンコードされたイメージとイメージ シーケンスのコンテナ フォーマットです。AVIF は、他の最新イメージ フォーマットと同じく、動画圧縮のフレーム内エンコードを行ったコンテンツの利点を活用しています。JPEG などの古いイメージ フォーマットと比較すると、同じファイルサイズで画質が大幅に向上します。
AVIF (18.2kB) JPEG (20.7kB)
Jake Archibald のブログ記事「
AVIF has landed
」の
イメージ比較
より
フォアグラウンド サービスの最適化 -
フォアグラウンド サービスは、アプリが特定の種類のユーザー向けのタスクを管理する方法として重要です。しかし、多用しすぎるとパフォーマンスに影響し、場合によってはアプリが強制終了することもあります。新しいプラットフォームをターゲットとしたアプリでは、ユーザー エクスペリエンスを向上させるため、バックグラウンドで開始されたフォアグラウンド サービスをブロックします。このパターンから簡単に移行できるように、JobScheduler に新しい
サポート ジョブ
を導入します。このジョブは、プロセスの優先度とネットワーク アクセスが昇格しており、バッテリー セーバーや Doze などの電源の制約を受けずに即時実行できます。
下位互換性を持たせるため、最新リリースの
Jetpack WorkManager ライブラリ
にもサポート ジョブを組み込んでいます。また、ユーザーの気が散ることがないように、一部のフォアグラウンド サービスの通知の表示を最大 10 秒遅らせます。これにより、短いタスクは通知が表示される前に完了する可能性が出てきます。
詳しくはこちらをご覧ください
。
リッチ コンテンツの挿入 -
ユーザーは画像や動画などの表現力の高いコンテンツが大好きです。しかし、アプリでこのようなコンテンツを挿入したり、移動したりすることは、簡単ではありません。そこで、アプリで簡単にリッチ コンテンツを受け取れるように、新しい統合 API を導入します。これにより、クリップボード、キーボード、ドラッグ&ドロップなどのあらゆるソースからコンテンツを受け取れるようになります。
UI コンポーネントに新しいインターフェース
OnReceiveContentListener
をアタッチすると、何らかの仕組みでコンテンツが挿入されたときにコールバックを受け取ります。コードでは、このコールバックを使って 1 か所であらゆるコンテンツの挿入に対応します。プレーン テキスト、スタイル付きテキスト、マークアップ、画像、動画、オーディオ ファイルなどに対応できます。下位互換性を持たせるため、
Androidx
にもこの統合 API を追加しました。
詳しくはこちらをご覧ください
。
触覚と組み合わせたオーディオ効果 -
Android 12 アプリは、スマートフォンのバイブレータを通して、音声と組み合わせた触覚フィードバックを提供できます。振動の強さと周波数はオーディオ セッションで決まるので、迫力あるゲームやオーディオ体験を作成できるようになります。たとえば、ビデオ通話アプリでカスタムの着信音を使って触覚フィードバックで発信者を特定できるようにしたり、レースゲームで大まかな地形を表現したりすることができます。
詳しくはこちらをご覧ください
。
マルチチャンネル オーディオ -
Android 12 には、空間情報を使ったいくつかのオーディオの拡張が導入されます。パススルーとオフロード モードでの MPEG-H 再生がサポートされ、オーディオ ミキサー、リサンプラー、エフェクトが従来は最大 8 チャンネルでしたが、最大 24 チャンネルに最適化されます。
ジェスチャー ナビゲーション向けのイマーシブ モード API の改善 -
ジェスチャー ナビゲーションの簡易性と一貫性向上のため、動画視聴中、読書中、ゲームのプレイ中などの場合に、イマーシブ モードを簡略化します。ゲーム関連のフルスクリーン操作では、アプリは今後も
意図しないジェスチャーから保護
されます。しかし、新しいプラットフォームをターゲットとしたアプリで他のフルスクリーン操作(例: 動画ビューア、読書、フォトギャラリー)を行う場合、ユーザーが 1 回のスワイプでスマートフォンを操作できるようにデフォルトの動作を変更します。
詳しくはこちらをご覧ください
。
通知 UI のアップデート -
通知のデザインを更新し、モダンで使いやすく、便利にしました。今回の最初のプレビューでは、ドロワーやコントロール、テンプレート自体が変更されていることに気づくはずです。システム全般の遷移やアニメーションをスムーズにするための最適化も行っています。Android 12 をターゲットとしたアプリでは、アップデートの一環として、通知をアイコン付きのカスタム コンテンツで装飾します。また、アフォーダンスを拡張し、他のすべての通知と一致するようにします。
詳しくはこちらをご覧ください
。
高速でレスポンシブな通知 -
ユーザーは、通知をタップしたときにすぐにアプリが開くことを期待しています。早ければ早いほど良いのです。デベロッパーは、この期待を満たせるように「トランポリン」(仲介するブロードキャスト レシーバーやサービス)を使って Activity を起動するのではなく、通知をタップしたときに直接 Activity を起動するようにしますが、通知のトランポリンは重大な遅延を引き起こすので、ユーザー エクスペリエンスに影響する可能性があります。
そこで、レスポンシブな通知を維持するため、Android 12 はターゲット Activity の起動を停止し、通知のトランポリンをブロックします。この処理を実装しているアプリ デベロッパーの皆さんは、このパターンからの移行をお願いします。この変更は新しいプラットフォームをターゲットにしたアプリにのみ適用されますが、デベロッパーやユーザーがトランポリンを視覚的に認識できるように、すべてのアプリにトーストが表示されます。
詳しくはこちらをご覧ください
。
Binder IPC 呼び出しの改善 -
パフォーマンス関連の作業の一環として、システム間のばらつきを減らすことに注力しています。そこで、遅延とワークロードの分散に注目し、最後尾(99 パーセンタイルのユースケース)から中央値のエクスペリエンスを減少させる最適化を行いました。その際には、軽量キャッシュ戦略を追加してロックの競合をなくすことを主眼に置き、システムの Binder 呼び出しを改善して遅延の分散を減らすことを目的にしました。これにより、Binder 呼び出し全体のパフォーマンスが約 2 倍向上し、特定の呼び出しが大幅に改善されました。たとえば、
refContentProvider()
が 47 倍、
releaseWakeLock()
が 15 倍、
JobScheduler.schedule()
が 7.9 倍などです。
アプリの互換性
新しいバージョンのプラットフォームをロールアウトするにあたって、アプリの互換性を優先し、迅速かつスムーズにアップデートできるように作業を行っています。皆さんが新しいバージョンの OS に対応する時間を長くとれるよう、Android 12 ではアプリに関連する変更のほとんどがオプトイン方式になっています。また、短時間で対応できるように、ツールやプロセスをアップデートしています。さらに、Android 12 デバイスがアプリの環境向上につながるように、Google Play システム アップデートに新機能を追加しました。
Google Play を経由した Android アップデートの促進 -
デバイスを問わず、一貫性のある安全な環境をアプリに提供するため、
Google Play システム アップデート(Project Mainline)
への注力を拡大し続けます。Android 12 では、Android 12 を実行するデバイス向けにコアランタイムやライブラリのアップデートをプッシュする Android Runtime(ART)モジュールを追加しました。完全なシステム アップデートを行うことなく、ランタイムのパフォーマンス改善や修正、メモリ管理の効率化、Kotlin 命令の高速化を実現できます。さらに、既存モジュールの機能拡張も行っています。たとえば、互換メディア トランスコーディング機能は、アップデート可能なモジュールで配信します。
タブレット、折りたたみ式デバイス、TV 向けの最適化 -
折りたたみ式デバイス、タブレット、TV などの大画面デバイスでアプリを使うユーザーがさらに増えています。今はアプリやゲームを対応させる絶好の機会です。まずは、
タブレット向けの最適化と折りたたみ式デバイス向けのアプリ構築
からスタートしましょう。さらに、リビングルームのテレビ画面向けに、Android TV の最初の Android 12 プレビューも公開します。
このプレビューでは、テレビ向けに最新の Android 機能が提供されるだけでなく、まったく新しい Google TV エクスペリエンスでアプリをテストすることもできます。詳しくは
Android TV Developers のウェブサイト
を、開発を始めるには
ADT-3 デベロッパー キット
をご覧ください。
非 SDK インターフェース リストの更新 -
非 SDK インターフェース
の制限を追加しました。いつものように、フィードバックや
同等のパブリック API のリクエスト
は大歓迎です。
変更点のテストやデバッグの簡易化 -
アプリに影響する可能性がある変更点を簡単にオプトインしてテストできるように、多くの変更点を切り替え可能にしています。この切り替えを利用すると、それぞれの変更を開発者オプションや adb から強制的に有効化、無効化できます。
詳細はこちらをご覧ください
。
開発者向けオプションのアプリの互換性切り替え
Platform Stability マイルストーン -
Android 12 とアプリの互換性を確認し、対応する作業を計画する時間を長くとれるように、昨年と同様に早いタイミングで Platform Stability マイルストーンをお知らせします。
このマイルストーンでは、最終版の SDK や NDK API だけでなく、内部 API やアプリに関連するシステム動作の最終版を配信します。Platform Stability に到達する時期は 2021 年 8 月ごろを想定しています。公式リリースはその数週間後なので、それまでの間に最終テストを行うことができます。詳しいリリース スケジュールは
こちら
をご覧ください。
Android 12 をインストールする
このデベロッパー プレビューには、Android 12 の機能を確認し、アプリをテストして
フィードバック
を私達にお送りいただくために必要なすべてのものが含まれています。
Pixel 3 / 3 XL、Pixel 3a / 3a XL、Pixel 4 / 4 XL、Pixel 4a / 4a 5G、Pixel 5
の
システム イメージへダウンロード
すると、すぐに利用を開始できます。Pixel デバイスをお持ちでない方は、Android Studio で 64 ビット システム イメージと Android Emulator を使うことができます。
セットアップ
の完了後に、以下の対応をお願いします。
新機能や新 API を試す -
早い段階のデベロッパー プレビューでは、皆さんからのフィードバックが不可欠です。Tracker で問題を報告するか、
フィードバックとリクエストのページ
から機能を選択し、アンケートから直接フィードバックをお送りください。
現在のアプリの互換性をテストする -
アプリが Android 12 のデフォルトの動作の変更による影響を受けるかどうかご確認ください。Android 12 を実行しているデバイス、またはエミュレータに現在公開しているアプリをインストールするとテストが可能です。
変更をオプトインしてアプリをテストする -
Android 12 では、動作の変更点はターゲットに新しいプラットフォームを指定した場合のみアプリに影響するようになっており、それをオプトインすることができます。変更点を早めに把握し、評価することが非常に重要ですので、簡単にテストできるように
変更点のオン、オフを個々に切り替え
られるようになっています。
プレビュー システム イメージと SDK は、Android 12 のリリース サイクル期間中、定期的にアップデートされる予定です。今回リリースしたバージョンは、
デベロッパーのみ
を対象としているデベロッパー プレビューです。日常的な使用やユーザーの使用を想定したものではありません。そのため、
手動でのダウンロード
でのみ利用できます。ファクトリ イメージを Pixel デバイスに書き込むか、Android 11 を実行している Pixel デバイスの外部記憶装置から OTA イメージを読み込むことでご利用いただけます。後者の場合は、ブートローダーのアンロックやデータの消去は必要ありません。どちらの方法でも、プレビュー ビルドを手動でインストールすると、以降のプレビューやベータ版の機能はすべて OTA で自動アップデートされます。
詳しくはこちらをご覧ください
。
Android 12 が完成に近づいたら、一般のユーザーも招待してテストしていただく予定です。その際には、Android ベータ版への登録もオープンしますので、ご期待ください。なお、現在のところ、
Android ベータ版では、Android 12 は利用できない
点に注意してください。
完全な情報は、
Android 12 デベロッパー のウェブサイト
でご確認ください。
Reviewed by
Takeshi Hagikura - Developer Relations Team
and Hidenori Fujii - Google Play Developer Marketing APAC
ラベル
#11WeeksOfAndroid
18
#Android12
1
#AndroidDevJourney
1
#androiddevsummit
3
#GoogleIO
11
12l
1
5 star apps
1
AGDE
1
AGDK
2
AGI
1
AI
1
Android
76
Android 10
1
Android 11
1
Android 12 Beta 5
1
Android App Development
40
Android app excellence
1
Android Architecture
1
Android Architecture Components
1
Android Auto
3
Android Automotive OS
1
Android Dev
2
Android Dev Summit 2021
1
Android Developer
29
Android Developers
25
Android Development
7
Android for cars
5
Android Game Development Kit
1
Android Games
1
Android Jetpack
8
Android O
1
android security
7
Android Studio
21
Android Studio Bumblebee
1
Android Tools
2
Android TV
2
Android10
1
Android11
19
Android12
13
android13
2
Android9
1
androidbasics
1
AndroidDev
1
AndroidDevChallenge
4
androidstudio
1
AndroidX
2
announcement
2
Announcements
1
App
2
App Bundle
2
app lifecycle
1
app performance
1
App quality
3
appexcellence
2
appquality
2
AppWidgets
1
Best Apps 2020
1
Best games 2020
1
Best Practices
1
Biometrics
1
Buildbetterapps
2
case study
3
compatibility
2
Compose
8
Conversation API
1
conversations
2
COVID-19
3
Custom Model
1
Dagger Hilt
1
dark theme
1
Delegation
1
Dependency Injection
1
Design Patterns
1
Develop
1
Developer Preview
9
Developer Review
1
Developers Story
5
devices
1
Featured
109
Firebase
1
Firebase Remote Config
1
foldables
5
form factors
1
game
13
Game Development
2
Game Mode API
1
gaming
1
glance
1
Google for Games Developer Summit
1
Google Play
74
Google Play App Safety
1
Google Play Billing
2
Google Play Billing Library
1
Google Play Console
1
Google Play developer distribution agreement
1
Google Play Developer Policies
2
Google Play Devs
2
Google Play Game Services
1
Google Play Games
2
Google Play Store
2
GoogleIO
1
GPS
1
IGF2020
6
IGF2021
9
Indie Game
16
Indie Games Festival
16
Indie Games Festival 2020
7
Indie Games Festival 2021
9
Insights
1
Japanese
15
Japanese Developer
9
Jetpack
13
Jetpack Compose
11
JetpackCompose
4
Kotlin
18
Kotlin Android Extensions
1
Kotlin Beginners
3
Kotlin Symbol Processing
1
Kotlin Vocabulary
2
Large Screens
5
large_screens
1
latest
102
lifull
1
Location
1
Location Data
1
Machine Learning
1
Mad Skills
3
MADSkills
3
Material Design
3
material you
4
Media
6
mikan
1
ML
1
ML Kit
1
Model Maker
1
monetization
3
multiplatform apps
1
Navigation
1
notifications
2
Now in Android
19
people
2
People API
1
Performance
3
permissions
1
Pixel
1
Platform_Update
7
Platform_Updates
1
play
1
Play Billing
1
Play Console
18
Play Store
1
Policies
4
Policy
10
policy compliance
8
policy violations
8
privacy
20
Programming
1
Requirements
3
safety
1
Security
7
stable
1
Story
3
subscriptions
5
Tablets
4
tapple
1
TensorFlow
2
TensorFlow Lite
1
training
1
UI
1
UX
1
wear
1
Wear OS
5
wearos
1
webinar
2
Women in Gaming
1
Workmanager
2
ブログ アーカイブ
2022
4
3
1
2021
12
11
10
9
8
7
6
5
4
3
2
1
2020
12
11
10
9
8
7
6
5
4
3
2
1
2019
12
9
7
6
4
3
2018
8
Feed
Follow @googledevjp
"プロダクトに関するご意見は
プロダクトフォーラム
にお願いします"