本日、Android 17 の 2 番目のベータ版をリリースします。プライバシー、セキュリティ、パフォーマンスの向上を重視したプラットフォームの構築に取り組んでいます。このアップデートでは、EyeDropper API やプライバシーの保護連絡先選択ツールなど、さまざまな新機能が提供されます。高度な測距 API、クロスデバイス ハンドオフ API なども追加されます。
このリリースでは、リリース頻度の変更が継続されます。第 2 四半期に年間のメジャー SDK リリースが行われ、その後、マイナー SDK アップデートが行われます。
ユーザー エクスペリエンスとシステム UI
バブル
バブルは、メッセージ バブル API とは別の新しいフローティング UI エクスペリエンスを提供するウィンドウ モード機能です。ユーザーは、スマートフォンのランチャー、折りたたみ式デバイス、タブレットでアプリアイコンを長押しして、アプリのバブルを作成できます。大画面では、タスクバーの一部としてバブルバーが表示されます。ユーザーは、画面上のアンカー ポイント間でバブルを整理、移動、およびアンカー ポイントとの間でバブルを移動できます。
アプリがバブルとして正しく動作するように、マルチウィンドウ モードのサポートに関するガイドラインに沿って対応してください。
ベータ版 2 では、バブルはまだ完全に有効になっていません。Android 17 の今後のビルドで提供される予定です。
EyeDropper API
新しいシステムレベルの EyeDropper API を使用すると、機密性の高いスクリーンショットの権限を必要とせずに、ディスプレイ上の任意のピクセルから色をリクエストできます。
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
result -> if (result.resultCode == Activity.RESULT_OK) {
val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
// Use the picked color in your app
}
}
fun launchColorPicker() {
val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
eyeDropperLauncher.launch(intent)
}
連絡先選択ツール
ACTION_PICK_CONTACTS を介した新しいシステムレベルの連絡先選択ツールでは、ユーザーがリクエストした特定のデータ フィールドに対してのみ、一時的なセッションベースの読み取りアクセス権が付与されるため、広範な READ_CONTACTS 権限は必要ありません。デバイスの個人用プロファイルまたは仕事用プロファイルから選択することもできます。
val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
val uri = it.data?.data ?: return@rememberLauncherForActivityResult
// Handle result logic
processContactPickerResults(uri)
}
}
val dataFields = arrayListOf(Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
putExtra(EXTRA_ALLOW_MULTIPLE, true)
putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}
contactPicker.launch(intent)
タッチパッドとのポインタ キャプチャの互換性が向上
以前は、アプリがポインタをキャプチャした場合、タッチパッドはマウスとは非常に異なる方法でイベントを報告していました。マウスが報告する相対的な動きではなく、パッド上の指の位置を報告していました。そのため、一人称視点のゲームでタッチパッドを適切にサポートすることは非常に困難でした。現在、タッチパッドがキャプチャされると、ポインタの動きとスクロール ジェスチャーがデフォルトで認識され、マウスイベントと同様に報告されます。新しい「絶対」モードで明示的にキャプチャをリクエストすることで、以前の詳細な指の位置データをリクエストすることもできます。
// To request the new default relative mode (mouse-like events) // This is the same as requesting with View.POINTER_CAPTURE_MODE_RELATIVE view.requestPointerCapture() // To request the legacy absolute mode (raw touch coordinates) view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)
インタラクティブ選択ツールの静止境界
Android の ChooserSession で getInitialRestingBounds を呼び出すことで、アニメーションとデータの読み込みが完了した後に選択ツールが占有するターゲット位置をアプリで特定し、UI の調整を改善できます。
接続性とクロスデバイス
クロスデバイス アプリ ハンドオフ
新しいHandoff APIを使用すると、Android タブレットなど、別のデバイスで再開するアプリケーションの状態を指定できます。オプトインすると、CompanionDeviceManager を介して状態が同期され、ユーザーの近くのデバイスのランチャーにハンドオフの候補が表示されます。この機能は、タスクをシームレスに継続できるように設計されており、ユーザーは Android エコシステム全体でワークフローを中断したところから正確に再開できます。重要な点として、Handoff はネイティブ アプリ間の移行とアプリからウェブへのフォールバックの両方をサポートしているため、最大限の柔軟性が提供され、受信デバイスにネイティブ アプリがインストールされていない場合でも完全なエクスペリエンスが保証されます。
高度な測距 API
次の 2 つの新しい測距テクノロジーのサポートを追加します。
- UWB DL-TDOA : アプリで UWB を屋内ナビゲーションに使用できます。この API サーフェスは FIRA(Fine Ranging Consortium)4.0 DL-TDOA 仕様に準拠しており、プライバシーを保護する屋内ナビゲーション(アンカーによるデバイスの追跡を回避)を可能にします。
- 近接検出 : アプリで WFA(WiFi Alliance)が採用している新しい測距仕様を使用できます。このテクノロジーは、既存の Wifi Aware ベースの測距仕様と比較して、信頼性と精度が向上しています。
データプランの強化
メディア品質を最適化するために、アプリは getStreamingAppMaxDownlinkKbps と getStreamingAppMaxUplinkKbps を使用して、ストリーミング アプリケーション用に携帯通信会社が割り当てた最大データレートを取得できるようになりました。
コア機能、プライバシー、パフォーマンス
ローカル ネットワークへのアクセス
Android 17 では、ユーザーを不正なローカル ネットワーク アクセスから保護するために、ACCESS_LOCAL_NETWORK 実行時の権限が導入されています。これは既存のNEARBY_DEVICES権限グループに該当するため、他のNEARBY_DEVICES権限をすでに付与しているユーザーには再度確認を求めることはありません。この権限を宣言してリクエストすることで、アプリはスマートホーム デバイスやキャスト レシーバーなど、ローカル エリア ネットワーク(LAN)上のデバイスを検出して接続できます。これにより、悪意のあるアプリが制限のないローカル ネットワーク アクセスを悪用して、ユーザー トラッキングやフィンガープリントを密かに実行することを防ぎます。Android 17 以降をターゲットとするアプリでは、LAN デバイスとの通信を維持するための 2 つの方法が用意されています。システムが仲介するプライバシー保護デバイス選択ツールを採用して権限の確認をスキップするか、実行時にこの新しい権限を明示的にリクエストしてローカル ネットワーク通信を維持します。
タイムゾーン オフセット変更ブロードキャスト
Android では、夏時間への移行など、システムのタイムゾーン オフセットが変更されたときにトリガーされる信頼性の高いブロードキャスト インテント ACTION_TIMEZONE_OFFSET_CHANGED が提供されるようになりました。これは、Unix タイムスタンプが変更されたときにトリガーされる既存のブロードキャスト インテント ACTION_TIME_CHANGED と、タイムゾーン ID が変更されたときにトリガーされる ACTION_TIMEZONE_CHANGED を補完するものです。
NPU の管理と優先順位付け
NPU に直接アクセスする必要がある Android 17 をターゲットとするアプリは、NPU へのアクセスがブロックされないように、マニフェストで FEATURE_NEURAL_PROCESSING_UNIT を宣言する必要があります。これには、LiteRT NPU デリゲート、ベンダー固有の SDK、非推奨のNNAPI を使用するアプリが含まれます。
ICU 78 と Unicode 17 のサポート
コア国際化ライブラリが ICU 78 に更新され、新しいスクリプト、文字、絵文字ブロックのサポートが拡張され、時間オブジェクトの直接フォーマットが可能になりました。
SMS OTP 保護
Android では、OTP を含む SMS メッセージへのアクセスを自動的に遅延させることで、SMS OTP 保護が強化されています。以前は、SMS Retriever ハッシュを含むメッセージの配信がほとんどのアプリで 3 時間遅延する SMS Retriever 形式に重点が置かれていました。ただし、デフォルトの SMS アプリなどの特定のアプリと、ハッシュに対応するアプリは、この遅延の対象外です。このアップデートでは、OTP を含むすべての SMS メッセージに保護が拡張されます。ほとんどのアプリでは、OTP を含む SMS メッセージに 3 時間の遅延後にのみアクセスできるようになり、OTP のハイジャックを防ぐことができます。SMS_RECEIVED_ACTION ブロードキャストは保留され、SMS プロバイダ データベース クエリはフィルタされます。遅延後、これらのアプリで SMS メッセージを利用できるようになります。
WebOTP 形式の SMS メッセージへのアクセスを遅延
アプリに SMS メッセージを読み取る権限があるが、OTP の意図された受信者でない場合(ドメイン検証で判断)、WebOTP 形式の SMS メッセージには 3 時間経過後にのみアクセスできます。この変更は、メッセージに記載されているドメインに関連付けられたアプリのみが確認コードをプログラムで読み取れるようにすることで、ユーザーのセキュリティを強化することを目的としています。この変更は、対象 API レベルに関係なく、すべてのアプリに適用されます。
OTP を含む標準の SMS メッセージへのアクセスを遅延
WebOTP 形式または SMS Retriever 形式を使用しない OTP を含む SMS メッセージの場合、ほとんどのアプリでは OTP SMS に 3 時間経過後にのみアクセスできます。この変更は、Android 17(API レベル 37)以降をターゲットとするアプリにのみ適用されます。
デフォルトの SMS、アシスタント アプリ、接続デバイス コンパニオン アプリなどの特定のアプリは、この遅延の対象外となります。
OTP の抽出のために SMS メッセージの読み取りに依存しているすべてのアプリは、引き続き機能するように、SMS Retriever API またはSMS User Consent API を使用するように移行する必要があります。
Android 17 のスケジュール
3 月に予定されているプラットフォームの安定版のマイルストーンに向けて、このベータ版から迅速に移行します。このマイルストーンでは、最終版の SDK/NDK API が提供されます。それ以降、アプリは SDK 37 をターゲットとして Google Play に公開し、Android 17 の一般提供までの数か月間でテストを完了してユーザー フィードバックを収集できます。
1 年間のリリース
Android 17 は、四半期ごとのリリースでアップデートが継続される予定です。第 2 四半期の今後のリリースでは、アプリの動作を中断させる予定の変更が導入されます。第 4 四半期には、追加の API と機能を含むマイナー SDK リリースを予定しています。
Android 17 を使ってみる
サポートされている Pixel デバイスを登録すると、このアップデートと今後の Android ベータ版アップデートを無線(OTA)で入手できます。Google Pixel デバイスをお持ちでない場合は、Android Studio の Android Emulator で 64 ビットのシステム イメージを使用できます。
現在 Android ベータ プログラムに参加している場合は、ベータ版 2 への無線(OTA)アップデートが提供されます。
Android 26Q1 ベータ版をお持ちで、26Q1 の最終安定版を試してベータ版を終了する場合は、26Q2 ベータ版 2 への無線(OTA)アップデートを無視して、26Q1 のリリースを待つ必要があります。
フィードバックをお待ちしております。フィードバック ページから問題の報告や機能リクエストの送信をお願いします。早期にフィードバックをお送りいただくと、最終リリースにより多くのフィードバックを反映させることができます。
Android 17 の開発エクスペリエンスを最適化するには、Android Studio(Panda) の最新プレビュー版を使用することをおすすめします。セットアップが完了したら、次のことを行ってください。
- 新しい SDK でコンパイルし、CI 環境でテストして、フィードバック ページのトラッカーで問題を報告します。
- 現行のアプリの互換性をテストし、アプリが Android 17 の変更の影響を受けるかどうかを確認して、Android 17 を実行しているデバイスまたはエミュレータにアプリをインストールして徹底的にテストします。
Android 17 のリリース サイクル全体を通して、プレビュー版/ベータ版のシステム イメージと SDK を定期的に更新します。ベータ版ビルドをインストールすると、今後のアップデートは自動的に
無線(OTA)で提供されます。
詳細については、Android 17 デベロッパー サイトをご覧ください。
会話に参加する
今年後半にプラットフォームの安定版 と Android 17 の一般提供が開始される予定ですが、フィードバックは引き続き最も貴重な資産となります。Canary チャンネルのアーリー アダプターでも、ベータ版 2 でテストしているアプリ デベロッパーでも、コミュニティに参加してフィードバックをお送りください。ぜひお聞かせください。
続きを読む
-
プロダクト ニュース
本日、The Android Show で発表されたように、Android はオペレーティング システムからインテリジェンス システムに移行し、アプリとのエンゲージメントを高める機会を増やしています。
Matthew McCullough • 所要時間 4 分
-
プロダクト ニュース
本日、複雑な推論と自律的なツール呼び出し機能を備えた最新の最先端オープンモデルである Gemma 4 を使用して、Android 開発を強化します。
Matthew McCullough • 所要時間 2 分
-
プロダクト ニュース
Android 17 は本日、ベータ版 3 でプラットフォームの安定版に正式に到達しました。つまり、API サーフェスがロックされています。最終的な互換性テストを実施し、Android 17 をターゲットとするアプリを Google Play ストアに公開できます。
Matthew McCullough • 所要時間 5 分
最新情報の入手
Android 開発に関する最新の分析情報を毎週メールでお届けします。