Googleがスマホなど向け次期OS「Android 12」の開発者向けプレビュー版をリリース!

Googleは18日(現地時間)、スマートフォン(スマホ)やタブレットなど向けプラットフォーム「Android」の次期バージョン「Android 12」を発表しています。合わせて開発者向けプレビュー版「Android 12 Developer Preview 1」( http://developer.android.com/preview/ )を公開しています。

今回提供されたAndroid 12 Developer Preview 1はAndroidエミュレーターのほか、Pixel 3、Pixel 3 XL、Pixel 3a、Pixel 3a XL、Pixel 4、Pixel 4 XL、Pixel 4a、Pixel 4a (5G)、Pixel 5でテストするためのファクトリーイメージやSDKが含まれており、ファクトリーイメージまたはOTAイメージから手動で導入するようになっています。

なお、ネットワーク経由によるソフトウェア更新(OTA)は現時点では用意されておらず、今後提供が開始される予定の一般向けベータ版「Android Beta Program」( https://g.co/androidbeta )によって提供され、ベータ版はPixelシリーズ以外にも従来通りに他メーカーの一部製品にも順次提供される見込み。

Android 12 Developer Preview 1のPixelシリーズにおけるビルド番号は「SPP1.210122.020.A3」で、Androidセキュリティーパッチレベルは「February 2021」となっており、Google Play servicesは「21.02.12」となります。またエミュレーターではx86 64bitとARM v8-Aがサポートされ、APIレベルは「S DP1」となっているということです。

02

Android 12は現在の最新バージョンの「Android 11」の次のメジャーアップデートとなる予定のバージョンで、最近の流れであるセキュリティーやプライバシーをより強化しており、ITのシンプルさと実用性、プライバシーと生産性を向上させる多くの機能が導入されているということです。

正式版のリリースまでのスケジュールは今回のDeveloper Preview 1に続いて3月に「Developer Preview 2」、4月に「Developer Preview 3」、5月に初のベータ版となる「Beta 1」が提供され、6〜7月に「Beta 2」および「Beta 3」、8月にPlatform Stability版となる「Beta 4」が提供され、その後、数週間でRC(Release candidate)版を経て正式版がリリースされる予定となっています。

03

今回提供が開始されたAndroid Developer Preview 1ではAndroid 12で導入される新機能の一部のみとなっており、正式版のリリースが近づくにつれてさらに多くの機能が追加される予定だとのことで。現時点で紹介されているAndroid 12の主な新機能は以下の通りで、詳細はAndroid Developer Blogの記事やAndroid Developer Previewの公式Webページをご確認ください。

【信頼と安全】
追跡に使用できる識別子の新しいコントロールやアプリコンポーネントのより安全なデフォルトなどが追加されます。なお、これらの変更はアプリに影響を与える可能性があるため、できるだけ早くテストすることがお勧めされています。

・WebViewにおいて最新のSameSite Cookieの挙動
Chromeやその他のWebブラウザーの変更に合わせてWebViewには新しいSameSite Cookieの動作が含まれ、セキュリティーとプライバシーを強化し、ユーザーがWebサイト間でCookieを使用する方法をより透過的に制御できるようにします。詳細は https://developer.android.com/about/versions/12/behavior-changes-12#samesite より。

・制限付きNetlink MACの導入
開発者がプライバシーを保護するリセット可能な識別子に移行するのを引き続き支援し、デバイススコープのNetlink MACの移行を容易にするマルチリリースの取り組みとして、Android 11ではAPIレベル30に基づいてアクセスを制限し、Android 12ではtargetSDKレベルに関係なくすべてのアプリに制限を適用しています。詳細は https://developer.android.com/about/versions/12/behavior-changes-all#mac-address より。

・より安全なコンポーネントのエクスポート
アプリがアクティビティーやサービス、レシーバーを誤ってエクスポートするのを防ぐために「android:exported」属性のデフォルトの処理をより明示的に変更しています。この変更により、1つ以上のインテントフィルターを宣言するコンポーネントはandroid:exported属性を明示的に宣言する必要があり、この変更によるインストールエラーを回避するためにマニフェストでコンポーネントを検査する必要があります。詳細は https://developer.android.com/about/versions/12/behavior-changes-12#exported より。

・インテントのより安全な処理
保留中のインテント処理をより安全にするためにAndroid 12では保留中のインテントごとに「FLAG_MUTABLE」または新しい「FLAG_IMMUTABLE」のいずれかの可変性フラグを明示的に宣言する必要があります。詳細は https://developer.android.com/about/versions/12/behavior-changes-12#pending-intent-mutability より。

【より優れたユーザーエクスペリエンスツール】
Android 12では洗練されたユーザーエクスペリエンス(UX)とユーザーのパフォーマンス向上を実現するために主要な分野に投資しています。これまでの更新の一部を次に示します。

・互換性のあるメディアトランスコーディング
モバイルデバイスでのHEVCハードウェアエンコーダーの普及によってカメラアプリはますますHEVC形式で撮影するようになり、古いコーデックよりも品質と圧縮が大幅に向上しています。ほとんどのアプリはHEVCをサポートする必要がありますが、サポートできないアプリについては、互換性のあるメディアトランスコーディングを導入しています。

この機能を使用すると、HEVCをサポートしていないアプリでプラットフォームがファイルを広く互換性のあるAVC形式に自動的にトランスコードできます。デバイスのビデオとハードウェアのプロパティーによってはトランスコーディングプロセスに時間がかかり、例えば、30fpsでの1分間の1080pビデオはPixel 4でトランスコードするのに約9秒かかります。

アプリがサポートしていないメディア形式を宣言するだけでトランスコードサービスの使用をオプトインでき、開発者にはアプリでHEVCをサポートすることを強く推奨し、それが不可能な場合は互換性のあるメディアトランスコーディングを有効にしてください。また動画撮影にHEVC形式を使用するすべてのデバイスでアクティブになります。この機能に関するフィードバックをお待ちしております。詳細は https://developer.android.com/about/versions/12/features/compatible-media-transcoding より。

・AVIF画像のサポート
より効率的な圧縮でより高い画質を提供するためにAndroid 12ではAV1画像ファイル形式(AVIF)のプラットフォームサポートが導入されます。 AVIFはAV1を使用してエンコードされた画像および画像のシーケンスのコンテナ形式で、他の最新の画像形式と同様にAVIFはビデオ圧縮からのフレーム内エンコードされたコンテンツを利用します。これにより、JPEGなどの古い画像形式と比較して同じファイルサイズの画質が劇的に向上します。

・フォアグラウンドサービスの最適化
フォアグラウンドサービスはアプリが特定のケースでタスクを管理するための重要な方法ですが、使いすぎるとパフォーマンスに影響を与え、アプリの強制終了につながる可能性があります。UXを向上させるために新しいプラットフォームを対象とするアプリのフォアグラウンドサービスの開始をバックグラウンドからブロックします。

このパターンからの移行を容易にするためにJob Schedulerに新しい優先ジョブを導入し、プロセスの優先度とネットワークアクセスを高め、バッテリーセーバーやDozeなどの電力の制約に関係なくすぐに実行されます。下位互換性のためにJetpack WorkManagerライブラリーの最新リリースに優先ジョブを組み込みました。

またユーザーの気を散らすことを減らすために一部のフォアグラウンドサービスにおける通知の表示を最大10秒遅らせるようになります。これにより、短期間のタスクは通知が表示される前に完了する機会が与えられます。詳細は https://developer.android.com/about/versions/12/behavior-changes-12#foreground-service-launch-restrictions より。

・リッチコンテンツの挿入
画像や動画、その他の表現力豊かなコンテンツはときにわかりやすく好ましいですが、このコンテンツをアプリに挿入したり、移動したりするのは必ずしも簡単ではありません。アプリがリッチコンテンツを簡単に受信できるようにするためにクリップボードやキーボード、ドラッグ&ドロップなど、あらゆるソースからコンテンツを受け入れることができる新しい統合APIを導入しています。

新しいインターフェイス「OnReceiveContentListener」をユーザーインターフェース(UI)のコンポーネントにアタッチし、コンテンツが任意のメカニズムを介して挿入されたときにコールバックを取得できます。このコールバックはプレーンテキストやスタイル付きテキストからマークアップ、画像、ビデオ、オーディオファイルなど、すべてのコンテンツの挿入を処理するコードの単一の場所になります。下位互換性のために、AndroidXに統合APIを追加しました。詳細は https://developer.android.com/about/versions/12/features/unified-content-api より。

・触覚結合オーディオ効果
Android 12におけるアプリでは電話のバイブレーターを介して音声結合触覚フィードバックを提供できるようになります。振動の強さと周波数はオーディオセッションから得られるため、より没入型のゲームとオーディオ体験を作成でき、例えば、ビデオ通話アプリではカスタム着信音を使用して触覚フィードバックを通じて発信者を識別したり、レーシングゲームで起伏の多い地形をシミュレートしたりできます。詳細は https://developer.android.com/reference/android/media/audiofx/HapticGenerator より。

・マルチチャンネルオーディオ
Android 12には空間情報を含むオーディオのいくつかの拡張機能が含まれており、パススルーおよびオフロードモードでのMPEG-H再生のサポートが追加され、オーディオミキサー、リサンプラー、およびエフェクトが最大24チャンネルに最適化されています(以前の最大値は8でした)。

・ジェスチャーナビゲーションのイマーシブモードAPIの改善
イマーシブモードが簡素化され、ビデオ視聴や本の閲覧、ゲームのプレイなど、ジェスチャーナビゲーションがより簡単で一貫性のあるものになります。ゲームに関連するフルスクリーンエクスペリエンスではアプリを偶発的なジェスチャーから保護しますが、他のすべてのフルスクリーンまたは没入型エクスペリエンス(動画視聴や読書、写真鑑賞など)では新しいプラットフォームをターゲットとするアプリの場合、デフォルトを変更して1回のスワイプでスマホをナビゲートできるようにします。詳細は https://developer.android.com/about/versions/12/behavior-changes-12#immersive-mode-improvements より。

・通知UIの更新
通知デザインが更新され、よりモダンで使いやすくより機能的になります。この最初のDeveloper Previewではドロワーとコントロールからテンプレート自体への変更に気付くでしょう。またシステム全体のトランジションとアニメーションを最適化してよりスムーズにします。

アップデートの一環としてAndroid 12を対象とするアプリの場合、アイコン付きのカスタムコンテンツで通知を装飾し、他のすべての通知と一致するようにアフォーダンスを拡張します。詳細は http://developer.android.com/about/versions/12/behavior-changes-12#custom-notifications より。

・より速くより応答性の高い通知
通知をタップすると、すぐにアプリにジャンプすることが期待され、それは速いほど良いです。その期待に応えるために開発者は通知タップがアクティビティーの開始をトリガーすることを確認する必要があり、トランポリン(中間のブロードキャストレシーバーまたはサービス)を使用してアクティビティーを開始するのではありません。

通知トランポリンは大幅な遅延を引き起こし、UXに影響を与える可能性があります。通知の応答性を維持するためにAndroid 12では通知トランポリンがターゲットアクティビティーを起動できないようにすることで通知トランポリンをブロックします。

開発者にはこのパターンから移行するようにお願いしており、この変更は新しいプラットフォームを対象とするアプリにのみ適用されますが、すべてのアプリにトーストを表示して、トランポリンをユーザーとユーザーに表示します。詳細は https://developer.android.com/about/versions/12/behavior-changes-12#notification-trampolines より。

・バインダーIPC呼び出しの改善
パフォーマンスに関する作業の一環としてシステムのばらつきを減らすことに重点を置いており、応答性とワークロードの分散を確認してテールエンドからのエクスペリエンスの中央値、つまり99%パーセンタイルのユースケースを削減する最適化を行いました。

そうすることでシステムバインダー呼び出しの改善を目標として軽量のキャッシュ戦略を追加し、ロックの競合を削除して応答性の分散を改善することに重点を置きました。これにより、Binder呼び出し全体のパフォーマンスが約2倍向上し、特定の呼び出しが大幅に改善されました。例えば、refContentProvider()が47倍、releaseWakeLock()が15倍、JobScheduler.schedule()が7.9倍になりました。

【アプリの互換性】
新しいプラットフォームバージョンを公開する際にアプリの互換性を優先することで更新をより迅速かつスムーズにするよう取り組んでいます。Android 12ではより多くの時間を提供するためにほとんどのアプリ向けの変更をオプトインしました。またツールとプロセスを更新してより早く準備できるようにしています。さらにGoogle Playシステムのアップデートに新機能を追加してAndroid 12を搭載する製品でのアプリの環境を改善しました。

・Google Playを通じて更新されるAndroidの詳細
Google Playシステムの更新(プロジェクトメインライン)への投資を拡大し続け、製品間でより一貫性のある安全な環境をアプリに提供します。 Android 12には実行している製品のコアランタイムとライブラリーに更新をプッシュできるAndroidランタイム(ART)モジュールが追加されました。

ランタイムのパフォーマンスと正確性を向上させ、メモリー(RAM)をより効率的に管理し、完全なシステムアップデートを必要とせずにすべてのKotlinの操作を高速化できます。また既存のモジュールの機能も拡張し、例えば、互換性のあるメディアトランスコーディング機能を更新可能なモジュール内に提供しています。

・タブレットや折りたたみ式、テレビ向けの最適化
フォルダブススマホやタブレット、テレビなどの大画面デバイスでアプリを使用する人がこれまでになく増えている今、アプリやゲームの準備ができていることを確認する絶好の機会です。タブレットやフォルダブススマホなどに最適化したアプリを構築することから始めましょう。

また家庭で最大の画面を実現するためにAndroid TV向けの最初のAndroid 12プレビューも利用できます。このプレビューで最新のAndroid機能をテレビに導入するだけでなく、まったく新しいGoogle TVエクスペリエンスでアプリをテストすることもできます。 Android TV Developersの公式Webサイト( https://developer.android.com/tv )で詳細を確認し、ADT-3開発者キットを使い始めてください。

・非SDKインターフェースの更新されたリスト
追加の非SDKインターフェースを制限しました。いつものようにパブリックAPIの同等物に対するフィードバックやリクエストを歓迎します。

・変更のテストとデバッグが簡単
アプリに影響を与える可能性のあるオプトインの変更を簡単にテストできるようにそれらの多くを切り替え可能にしました。トグルを使用すると、開発者向けオプションまたはadbから個別に変更を強制的に有効または無効にできます。詳細はこちらをご覧ください。

・プラットフォームの安定性のマイルストーン
昨年と同様にプラットフォームの安定性のマイルストーンを事前にお知らせします。これにより、アプリの互換性作業を計画する時間を増やすことができます。このマイルストーンでは最終的なSDKおよびNDK APIだけでなく、最終的な内部APIとアプリ向けシステムの動作も提供します。 2021年8月までにプラットフォームの安定性に到達する予定であり、公式リリースの数週間前に最終テストを行う必要があります。

その他、Googleでは太平洋標準時の2021年2月24日(水)9:00からネイティブなユーザーインターフェース(UI)を構築するためのツール「Jetpack Compose」について発表するとしています。これにより、優れたUXをより簡単に作成できるようになり、



記事執筆:memn0ck


■関連リンク
エスマックス(S-MAX)
エスマックス(S-MAX) smaxjp on Twitter
S-MAX - Facebookページ
Android 12 関連記事一覧 - S-MAX
Android 12 simplifies security for work devices
Android Developers Blog: First preview of Android 12
Android 12 Developer Preview  |  Android Developers