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

Googleは18日(現地時間)、スマートフォン(スマホ)やタブレットなど向けプラットフォーム「Android」の次期バージョン「Android 16(開発コード名:Baklava)」( https://developer.android.com/about/versions/16 )における開発者向けプレビュー版の第2弾「Android 16 Developer Preview 2」(以下、DP2)を公開したとお知らせしています。

提供されているのは今年11月に公開された「Android 16 Developer Preview 1」(以下、DP1)と同様にAndroidエミュレーターのほか、同社が「Made by Google」として自社ブランドで展開する「Pixel」シリーズの「Pixel 6」以降のスマホや「Pixel Tablet」でテストするためのファクトリーイメージやSDKが含まれています。

これらのPixelシリーズでは「Android Flash Tool」やファクトリーイメージ( https://developer.android.com/about/versions/15/download )から手動で導入するようになっているほか、すでにDP1を導入している場合はネットワーク経由のソフトウェア更新(OTA)も提供されており、OTAイメージ( https://developer.android.com/about/versions/16/download-ota )も提供されています。

DP2ではPixelシリーズにおけるビルド番号が「BP21.241121.009」で、すでにAndroidセキュリティーパッチレベルは「December 2024」となっており、Google Play servicesは「24.46.30」、エミュレーターでは64bitのx86およびARM v8-Aがサポートされ、APIレベルはDP1の「Baklava DP1」から「Baklava DP2」となっています。

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

02

Android 16は現在の最新バージョンの「Android 15」の次のメジャーアップデートとなる予定のバージョンで、Googleではこれまで基本的に新しいAPIとSDKを伴う1年に1回のペースでメジャーアップデートを実施してきましたが、すでに紹介しているように今後はSDKのリリースをより頻繁に行うことが明らかにされ、まずは来年の2025年に新しいAPIを備えたメジャーリリースとマイナーリリースの2つのリリースを計画していることが発表されていました。

このうちのメジャーリリースがAndroid 16の最初のバージョンとなり、すでにAndroid 16の開発者向けプレビュー版の最初のリリースとなるAndroid 16 Developer Preview 1が今年11月に公開されていましたが、今回、さらに開発者向けプレビュー版の第2弾となるAndroid 16 Developer Preview 2がリリースされました。

03

04

Android 16 Developer Preview 2では非互換性を最小限に抑えながらアプリの体験を強化しているほか、バッテリー寿命を延ばし、パフォーマンスを向上させるように設計された変更が含まれているとのこと。なお、これらの影響を完全に把握するには多くの開発者からのフィードバックが不可欠だとし、Googleでは試した人がフォードバックを送るように要望しています。

<より豊かな触覚>
Androidでは登場以来、アクチュエーターによる触覚(振動)機能に対する限定的な制御を公開してきました。またAndroid 11ではデバイス定義のセマンティックプリミティブの「VibrationEffect.Compositions」を通じてより高度な触覚機能がサポートできるより複雑な効果のサポートが追加されました。今回、Android 16ではさらに製品間の違いを抽象化しながらアプリが触覚効果の振幅と周波数の曲線を定義できる触覚APIが追加されました。

<可変リフレッシュレート>
Android 15で導入されたアダプティブリフレッシュレート(ARR)によってサポートされているハードウェアのディスプレイリフレッシュレートが個別のVSyncステップを使用してコンテンツのフレームレートに適応できるようになります。これにより、ジャンクを引き起こす可能性のあるモード切り替えの必要性がなくなり、消費電力が削減されます。新たにAndroid 16 DP2ではhasArrSupport()とgetSuggestedFrameRate(int)が導入され、getSupportedRefreshRates()が復元されてアプリでARRを活用しやすくなります。

またRecyclerView 1.4はフリングまたはスムーズスクロールから落ち着くときに内部的にARRをサポートしており、さらに多くのJetpackライブラリにARRサポートを追加する作業を継続しています。このフレームレートの説明( https://developer.android.com/media/optimize/performance/frame-rate )ではアプリがARRを直接活用できるようにフレームレートを設定するために使用できる多くのAPIについて解説しています。

<より良い仕事の内省>
Android 16では開発者が設定した明示的な制約とシステムによって設定された暗黙的な制約の両方によってジョブが保留になっている複数の理由を返すことができるJobScheduler#getPendingJobReasons(int jobId)が導入されました。また最新の制約変更のリストを返すJobScheduler#getPendingJobReasonsHistory(int jobId)も導入されています。

APIは特に特定のタスクの成功率が低下している場合やジョブの完了に遅延の問題が発生している場合にジョブが実行されない理由をデバッグするのに役立ちます。また特定のジョブが完了していないのはシステム定義の制約によるものか、明示的に設定された制約によるものかを把握するのにも役立ちます。

<システムトリガープロファイリング>
Android 15ではProfilingManagerが追加され、アプリは現場で公開されている製品でPerfettoを使用してプロファイリングデータの収集をリクエストできるようになりました。起動やANRなどの困難なトレース シナリオをキャプチャできるようにProfilingManagerにシステム トリガー プロファイリングが含まれるようになりました。アプリはProfilingManager#addProfilingTriggers()を使ってこれらのフローに関する情報の受信を希望することを登録できます。このリリースでカバーされているフローにはアクティビテ ベースのコールドスタートのonFullyDrawnと ANRが含まれます。

<ApplicationStartInfoのコンポーネントの開始>
Android 15ではApplicationStartInfoが追加され、アプリはプロセスの開始理由、開始タイプ、開始時間、スロットリング、その他の有用な診断データを確認できます。Android 16ではさらにgetStartComponent()が追加され、開始をトリガーしたコンポーネントタイプを区別できるようになりました。これはアプリの起動フローを最適化するのに役立ちます。

<ジョブ実行の最適化>
Android 16以降では次の要素に基づいて通常ジョブと優先ジョブの実行ランタイム割り当てを調整しています。

・アプリがどのアプリスタンバイバケットに含まれているか。アクティブスタンバイバケットには十分なランタイムクォータが与えられます。
・アプリが利用者に表示されている間に開始され、アプリが非表示になった後も継続されるジョブはジョブ実行時間クォータに準拠します。
・フォアグラウンドサービスと同時に実行されているジョブはジョブ ランタイムクォータに従います。長時間かかる可能性があるデータ転送を実行する必要がある場合は利用者が開始するデータ転送の使用を検討してください。

 ※動作の変更をさらにデバッグおよびテストする方法を理解するには、JobSchedulerクォータの最適化の詳細( https://developer.android.com/about/versions/16/behavior-changes-all#job-quota-opt )を参照してください。

JobInfo.Builder #setImportantWhileForeground(boolean)メソッドはスケジュール アプリがフォアグラウンドにあるとき、または一時的にバックグラウンド制限から免除されているときにジョブの重要度を示します。このメソッドは Android 12(API 31)以降では非推奨となっています。Android 16以降ではこのメソッドは効果的に機能しなくなり、このメソッドの呼び出しは無視されます。この機能の削除はJobInfo#isImportantWhileForeground()にも適用されます。Android 16以降ではメソッドが呼び出されると、メソッドはfalseを返します。

<非推奨の中断を伴うアクセシビリティに関するお知らせ>
Android 16 DP2ではannouncementForAccessibilityの使用またはTYPE_ANNOUNCEMENT AccessibilityEventsのディスパッチを特徴とするユーザー補助機能のアナウンスは非推奨になりました。TalkBackとAndroidのスクリーンリーダーのユーザーエクスペリエンス(UX)に一貫性がなくなる可能性があるため、代替手段の方がAndroidのさまざまな支援技術にわたる幅広いニーズにより適切に対応できます。

代替案の例:
・ウィンドウの変更など、UIの大幅な変更にはActivity.setTitle(CharSequence)とsetAccessibilityPaneTitle(java.lang.CharSequence)を使用します。ComposeではModifier.semantics { paneTitle = "paneTitle" }を使用します。
・重要なUIの変更を利用者に通知するにはsetAccessibilityLiveRegion(int)を使用します。ComposeではModifier.semantics { liveRegion = LiveRegionMode.[Polite|Assertive] }を使用します。これらはviewまたはcomposableが更新されるたびに通知が生成される可能性があるため、控えめに使用する必要があります。
・利用者にエラーを通知するにはAccessibilityEvent#CONTENT_CHANGE_TYPE_ERRORタイプの AccessibilityEventを送信し、AccessibilityNodeInfo#setError(CharSequence)を設定するか、TextView#setError(CharSequence)を使用します。

なお、非推奨のannouncementForAccessibility APIには推奨される代替案に関する詳細が含まれています。

<写真ピッカーでのクラウド検索>
写真ピッカーは利用者がメディアライブラリ全体ではなく、ローカルストレージとクラウドストレージの両方から選択した画像と動画へのアクセスをアプリに許可するための安全な組み込みの方法を提供します。Googleシステム アップデートとGoogle Play 開発者サービスによるモジュラーシステムコンポーネントの組み合わせを使用することによってAndroid 4.4(APIレベル19)までサポートされています。統合には関連するAndroid Jetpackライブラリを使用した数行のコードのみが必要です。Android 16の開発者向けプレビュー版にはAndroidフォトピッカーのクラウドメディアプロバイダーからの検索を可能にする新しいAPIが含まれています。フォトピッカーの検索機能は近日中に提供されます。

<セキュリティーを強化した測距>
Android 16ではWi-Fi 6のIEEE802.11azを搭載したサポート対象製品のWi-Fiによる位置情報の堅牢なセキュリティー機能のサポートが追加され、アプリはプロトコルのより高い精度、優れたスケーラビリティー、動的なスケジュール設定と、AES-256 ベースの暗号化やMITM攻撃に対する保護などのセキュリティー強化を組み合わせることができます。これにより、ノートパソコンや車のドアのロック解除など、近接ユースケースでより安全に使用できるようになります。IEEE802.11azはWi-Fi 6の標準と統合されており、そのインフラストラクチャーと機能を活用してより広範な採用とより簡単な展開を実現します。

<ヘルスコネクトのアップデート>
開発者向けプレビュー版の「ヘルスコネクト(Health Connect)」には中程度および激しい活動に関する世界保健機関のガイドラインに従って定義された新しいデータ型「ACTIVITY_INTENSITY」が追加されています。各レコードには開始時刻および終了時刻、活動の強度が中程度か激しいかを入力する必要があります。

ヘルスコネクトには健康記録をサポートする更新されたAPIも含まれています。これにより、アプリは利用者の明示的な同意を得た上でFHIR形式で医療記録を読み書きできます。このAPIは現在、早期アクセスプログラム中で、早期アクセス プログラムに参加する場合はこちら( https://forms.gle/43HJz4Fm2UQLWy5W8 )からサインアップしてください。

<予測バック追加>
Android 16ではホームに戻るアニメーションなどのジェスチャーナビゲーションで予測的な戻るシステムアニメーションを有効にするのに役立つ新しいAPIが追加されています。新しいPRIORITY_SYSTEM_NAVIGATION_OBSERVERを使ってonBackInvokedCallbackを登録すると、通常の戻るナビゲーション フローに影響を与えることなく、システムが戻るナビゲーションを処理するたびにアプリが通常のonBackInvoked呼び出しを受け取ることができます。

Android 16ではさらにfinishAndRemoveTaskCallback()とmoveTaskToBackCallback()が追加されました。これらのコールバックをOnBackInvokedDispatcherに登録することで、システムは「戻る」ジェスチャーが呼び出されたときに特定の動作をトリガーし、対応する事前アニメーションを再生できます。



記事執筆:memn0ck


■関連リンク
エスマックス(S-MAX)
エスマックス(S-MAX) smaxjp on Twitter
S-MAX - Facebookページ
Android 16 関連記事一覧 - S-MAX
Android Developers Blog: The Second Developer Preview of Android 16
Now in Android #112. First Developer Preview of Android 16… | by Patrick Martin | Android Developers | Dec, 2024 | Medium
Android 16 | Android Developers