機能と API

Android 16 では、デベロッパー向けに優れた新しい機能と API が導入されました。以下のセクションでは、これらの機能の概要を説明し、関連する API を使い始めるうえで役立つ情報を提供します。

新しい API、変更された API、削除された API の一覧については、API 差分レポートをご覧ください。新しい API について詳しくは、Android API リファレンスをご覧ください。新しい API は、見つけやすいようにハイライト表示されています。

また、プラットフォームの変更がアプリに影響する可能性がある領域も確認する必要があります。詳細については、次のページをご覧ください。

コア機能

Android には、Android システムのコア機能を拡張する新しい API が含まれています。

2025 年に 2 つの Android API をリリース

  • This preview is for the next major release of Android with a planned launch in Q2 of 2025. This release is similar to all of our API releases in the past, where we can have planned behavior changes that are often tied to a targetSdkVersion.
  • We're planning the major release a quarter earlier (Q2 rather than Q3 in prior years) to better align with the schedule of device launches across our ecosystem, so more devices can get the major release of Android sooner. With the major release coming in Q2, you'll need to do your annual compatibility testing a few months earlier than in previous years to make sure your apps are ready.
  • We plan to have another release in Q4 of 2025 which also will include new developer APIs. The Q2 major release will be the only release in 2025 to include planned behavior changes that could affect apps.

In addition to new developer APIs, the Q4 minor release will pick up feature updates, optimizations, and bug fixes; it will not include any app-impacting behavior changes.

Timeline view of Android releases in 2025, noting that the 25Q2
       release is a major release and the 25Q4 release is a minor release.

We'll continue to have quarterly Android releases. The Q1 and Q3 updates in-between the API releases will provide incremental updates to help ensure continuous quality. We're actively working with our device partners to bring the Q2 release to as many devices as possible.

Using new APIs with major and minor releases

Guarding a code block with a check for API level is done today using the SDK_INT constant with VERSION_CODES. This will continue to be supported for major Android releases.

if (SDK_INT >= VERSION_CODES.BAKLAVA) {
  // Use APIs introduced in Android 16
}

The new SDK_INT_FULL constant can be used for API checks against both major and minor versions with the new VERSION_CODES_FULL enumeration.

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor release
}

You can also use the Build.getMinorSdkVersion() method to get just the minor SDK version.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

These APIs have not yet been finalized and are subject to change, so please send us feedback if you have any concerns.

ユーザー エクスペリエンスとシステム UI

Android 16 では、アプリ デベロッパーとユーザーがニーズに合わせてデバイスを構成するための制御と柔軟性が向上しています。

進行状況を中心とした通知

Android 16 では、ユーザーが開始した、最初から最後までのジャーニーをシームレスに追跡できるように、進行状況重視の通知が導入されています。

Notification.ProgressStyle は、進行状況重視の通知を作成できる新しい通知スタイルです。主なユースケースには、乗車シェアリング、配達、ナビゲーションなどがあります。Notification.ProgressStyle クラス内で、ポイントセグメントを使用して、ユーザー ジャーニー内の状態とマイルストーンを指定できます。

詳細については、進行状況重視の通知のドキュメント ページをご覧ください。

ロック画面に表示される進行状況重視の通知。
通知シェードに表示される進行状況重視の通知。

予測型「戻る」のアップデート

Android 16 では、ジェスチャー ナビゲーション(ホームに戻るアニメーションなど)で予測型「戻る」システム アニメーションを有効にするための新しい API が追加されました。新しい PRIORITY_SYSTEM_NAVIGATION_OBSERVERonBackInvokedCallback を登録すると、システムが「戻る」ナビゲーションを処理するたびに、通常の「戻る」ナビゲーション フローに影響を与えることなく、アプリが通常の onBackInvoked 呼び出しを受け取ることができます。

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

リッチ ハプティクス

Android は、誕生以来、触覚アクチュエータの制御を公開してきました。

Android 11 では、デバイス定義のセマンティック プリミティブの VibrationEffect.Compositions を介して、より高度なアクチュエータがサポートできる、より複雑なハプティクス エフェクトのサポートが追加されました。

Android 16 では、ハプティクス API が追加されました。これにより、アプリはデバイスの機能の違いを抽象化しながら、ハプティクス エフェクトの振幅と周波数の曲線を定義できます。

デベロッパーの生産性とツール

生産性を向上させるための取り組みのほとんどは、Android StudioJetpack ComposeAndroid Jetpack ライブラリなどのツールを中心に行われていますが、プラットフォームでビジョンを実現するための方法も常に探しています。

ライブ壁紙のコンテンツ処理

Android 16 では、ライブ壁紙 フレームワークに新しいコンテンツ API が追加され、ユーザー主導の動的壁紙の課題に対処できるようになりました。現在、ユーザー提供のコンテンツを組み込んだライブ壁紙には、サービス固有の複雑な実装が必要です。Android 16 では、WallpaperDescriptionWallpaperInstance が導入されています。WallpaperDescription を使用すると、同じサービスからライブ壁紙の個別のインスタンスを識別できます。たとえば、ホーム画面とロック画面の両方にインスタンスがある壁紙には、両方の場所に固有のコンテンツが含まれている場合があります。壁紙選択ツールと WallpaperManager は、このメタデータを使用して壁紙をユーザーに適切に表示し、多様でパーソナライズされたライブ壁紙を作成するためのプロセスを効率化します。

パフォーマンスとバッテリー

Android 16 では、アプリに関する分析情報を収集するのに役立つ API が導入されています。

システム トリガー プロファイリング

ProfilingManager was added in Android 15, giving apps the ability to request profiling data collection using Perfetto on public devices in the field. However, since this profiling must be started from the app, critical flows such as startups or ANRs would be difficult or impossible for apps to capture.

To help with this, Android 16 introduces system-triggered profiling to ProfilingManager. Apps can register interest in receiving traces for certain triggers such as cold start reportFullyDrawn or ANRs, and then the system starts and stops a trace on the app's behalf. After the trace completes, the results are delivered to the app's data directory.

ApplicationStartInfo の開始コンポーネント

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

ジョブのイントロスペクションの改善

The JobScheduler#getPendingJobReason() API returns a reason why a job might be pending. However, a job might be pending for multiple reasons.

In Android 16, we are introducing a new API JobScheduler#getPendingJobReasons(int jobId), which returns multiple reasons why a job is pending, due to both explicit constraints set by the developer and implicit constraints set by the system.

We're also introducing JobScheduler#getPendingJobReasonsHistory(int jobId), which returns a list of the most recent constraint changes.

We recommend using the API to help you debug why your jobs may not be executing, especially if you're seeing reduced success rates of certain tasks or have bugs around latency of certain job completion. For example, updating widgets in the background failed to occur or prefetch job failed to be called prior to app start.

This can also better help you understand if certain jobs are not completing due to system defined constraints versus explicitly set constraints.

リフレッシュ レートの自動調整

Adaptive refresh rate (ARR), introduced in Android 15, enables the display refresh rate on supported hardware to adapt to the content frame rate using discrete VSync steps. This reduces power consumption while eliminating the need for potentially jank-inducing mode-switching.

Android 16 introduces hasArrSupport() and getSuggestedFrameRate(int) while restoring getSupportedRefreshRates() to make it easier for your apps to take advantage of ARR. RecyclerView 1.4 internally supports ARR when it is settling from a fling or smooth scroll, and we're continuing our work to add ARR support into more Jetpack libraries. This frame rate article covers many of the APIs you can use to set the frame rate so that your app can directly use ARR.

ADPF のヘッドルーム API

SystemHealthManager では、ゲームやリソースを大量に消費するアプリに利用可能な CPU リソースと GPU リソースの推定値を提供するように設計された getCpuHeadroom API と getGpuHeadroom API が導入されています。これらのメソッドを使用すると、アプリやゲームでシステムの健全性を最適に改善する方法を見極めることができます。特に、サーマル スロットリングを検出する他の Android Dynamic Performance Framework(ADPF)API と組み合わせて使用すると効果的です。

対応デバイスで CpuHeadroomParamsGpuHeadroomParams を使用すると、ヘッドルームの計算に使用する時間枠をカスタマイズし、リソースの平均可用性または最小可用性を選択できます。これにより、CPU または GPU のリソース使用量を適度に削減し、ユーザー エクスペリエンスとバッテリー駆動時間を改善できます。

ユーザー補助

Android 16 では、すべてのユーザーにアプリを提供するために役立つ新しいユーザー補助 API と機能が追加されています。

Accessibility API の改善

Android 16 では、UI セマンティクスを強化する API が追加され、TalkBack などのユーザー補助サービスに依存するユーザーの整合性が向上します。

テキストのコントラストを最大化するためにテキストの輪郭を表示する

視力の弱いユーザーはコントラスト感度が低下していることが多いため、オブジェクトを背景と区別するのが困難です。このようなユーザーをサポートするため、Android 16 では高コントラスト テキストに代わるアウトライン テキストが導入されました。アウトライン テキストは、テキストの周囲に大きなコントラスト領域を描画して、読みやすさを大幅に改善します。

Android 16 には、アプリがこのモードが有効になっているかどうかを確認またはリスナーを登録できる新しい AccessibilityManager API が含まれています。これは主に、Compose などの UI ツールキットが同様のビジュアル エクスペリエンスを提供するために使用されます。UI ツールキット ライブラリを維持している場合や、アプリが android.text.Layout クラスをバイパスするカスタム テキスト レンダリングを実行している場合は、このクラスを使用して、アウトライン テキストが有効になっているかどうかを確認できます。

Android 16 の新しいアウトライン テキストのユーザー補助機能の前後でコントラストが強化されたテキスト

TtsSpan に時間の長さを追加

Android 16 では、TtsSpanTYPE_DURATION で拡張しています。これは、ARG_HOURSARG_MINUTESARG_SECONDS で構成されています。これにより、時間の長さを直接アノテーションして、TalkBack などのサービスで正確で一貫したテキスト読み上げ出力を実現できます。

複数のラベルを持つ要素をサポートする

現在、Android では UI 要素が別の要素からユーザー補助ラベルを派生させることができますが、ウェブ コンテンツでよくあるシナリオとして、複数のラベルを関連付ける機能が追加されました。AccessibilityNodeInfo 内にリストベースの API を導入することで、Android はこれらのマルチラベル関係を直接サポートできるようになります。この変更の一環として、AccessibilityNodeInfo#setLabeledBy#getLabeledBy のサポートが終了し、代わりに #addLabeledBy#removeLabeledBy#getLabeledByList が使用されるようになりました。

展開可能な要素のサポートを改善しました

Android 16 では、メニューや展開可能なリストなどのインタラクティブな要素の展開状態や閉じ状態を伝達できるユーザー補助 API が追加されています。setExpandedState を使用して展開状態を設定し、CONTENT_CHANGE_TYPE_EXPANDED コンテンツ変更タイプで TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents をディスパッチすると、TalkBack などのスクリーン リーダーが状態の変化を通知し、より直感的で包括的なユーザー エクスペリエンスを提供できます。

不確定形式の ProgressBar

Android 16 では RANGE_TYPE_INDETERMINATE が追加され、確定型と不確定型の両方の ProgressBar ウィジェットに RangeInfo を公開できるようになりました。これにより、TalkBack などのサービスが進行状況インジケータのフィードバックをより一貫して提供できるようになります。

3 つの状態のチェックボックス

Android 16 の新しい AccessibilityNodeInfo メソッド getCheckedsetChecked(int) は、「チェック済み」と「未チェック」に加えて、「部分的にチェック済み」の状態をサポートするようになりました。これは、非推奨のブール値 isCheckedsetChecked(boolean) に代わるものです。

補足説明

ユーザー補助サービスが ViewGroup を記述する場合は、その子ビューのコンテンツ ラベルと組み合わせます。ViewGroupcontentDescription を指定すると、ユーザー補助サービスは、フォーカス不可能な子ビューの説明もオーバーライドしていると想定します。たとえば、ドロップダウン(「フォント ファミリー」など)にラベルを付けながら、ユーザー補助用に現在の選択内容(「Roboto」など)を保持したい場合、この点が問題になることがあります。Android 16 では setSupplementalDescription が追加され、子からの情報を上書きせずに ViewGroup に関する情報を提供するテキストを指定できるようになりました。

必須のフォーム フィールド

Android 16 では、AccessibilityNodeInfosetFieldRequired が追加され、アプリがフォーム フィールドへの入力が必須であることをユーザー補助サービスに通知できるようになりました。これは、必須の利用規約チェックボックスなど、さまざまな種類のフォームに記入するユーザーにとって重要なシナリオです。ユーザーは、必須フィールドを一貫して識別し、すばやく移動できます。

LEA 補聴器を使用した音声通話で、スマートフォンのマイクを入力として使用

Android 16 adds the capability for users of LE Audio hearing aids to switch between the built-in microphones on the hearing aids and the microphone on their phone for voice calls. This can be helpful in noisy environments or other situations where the hearing aid's microphones might not perform well.

LEA 補聴器の周囲の音の調整

Android 16 では、LE Audio 補聴器のユーザーが、補聴器のマイクによって拾われる周囲の音の音量を調整できる機能が追加されました。これは、背景のノイズがうるさすぎる場合や静かすぎる場合に役立ちます。

カメラ

Android 16 では、プロのカメラユーザー向けのサポートが強化され、ハイブリッド自動露出と、色温度と色合いの正確な調整が可能になります。新しいナイトモード インジケーターにより、アプリはナイトモードのカメラ セッションへの切り替えのタイミングを把握できます。新しい Intent アクションにより、モーション フォトを簡単に撮影できるようになりました。また、HEIC エンコードと ISO 21496-1 ドラフト標準の新しいパラメータのサポートにより、UltraHDR 画像の改善も継続して行っています。

ハイブリッド自動露出

Android 16 adds new hybrid auto-exposure modes to Camera2, allowing you to manually control specific aspects of exposure while letting the auto-exposure (AE) algorithm handle the rest. You can control ISO + AE, and exposure time + AE, providing greater flexibility compared to the current approach where you either have full manual control or rely entirely on auto-exposure.

fun setISOPriority() {
    // ... (Your existing code before the snippet) ...

    val availablePriorityModes = mStaticInfo.characteristics.get(
        CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
    )

    // ... (Your existing code between the snippets) ...

    // Turn on AE mode to set priority mode
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_MODE,
        CameraMetadata.CONTROL_AE_MODE_ON
    )
    reqBuilder.set(
        CaptureRequest.CONTROL_AE_PRIORITY_MODE,
        CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY_PRIORITY
    )
    reqBuilder.set(
        CaptureRequest.SENSOR_SENSITIVITY,
        TEST_SENSITIVITY_VALUE
    )
    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after the snippet) ...
}

色温度と色合いを正確に調整

Android 16 では、プロの動画撮影アプリをより適切にサポートするために、カメラで色温度と色合いを微調整できるようになりました。以前の Android バージョンでは、CONTROL_AWB_MODE で白色バランスの設定を制御できました。CONTROL_AWB_MODE には、白熱灯曇り夕暮れなど、プリセット リストに限定されたオプションが含まれていました。COLOR_CORRECTION_MODE_CCT を使用すると、COLOR_CORRECTION_COLOR_TEMPERATURECOLOR_CORRECTION_COLOR_TINT を使用して、相関色温度に基づいてホワイトバランスを正確に調整できます。

fun setCCT() {
    // ... (Your existing code before this point) ...

    val colorTemperatureRange: Range<Int> =
        mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]

    // Set to manual mode to enable CCT mode
    reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
    reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
    reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30

    val request: CaptureRequest = reqBuilder.build()

    // ... (Your existing code after this point) ...
}

次の例は、さまざまな色温度と色合いの調整を適用した写真の外観を示しています。

色温度や色合いの調整が適用されていない元の画像。
色温度が 3000 に調整された画像。
色温度が 7,000 に調整された画像。


色合いレベルを 50 下げた画像。
色合いレベルを 50 上げた画像。

カメラの夜間モードのシーン検出

夜間モードのカメラ セッションとの切り替えタイミングをアプリが把握できるように、Android 16 では EXTENSION_NIGHT_MODE_INDICATOR が追加されました。サポートされている場合は、Camera2 内の CaptureResult で使用できます。

これは、Instagram でユーザーが美しい低照度写真を撮影できるようにした方法に関するブログ投稿で、近日提供予定として簡単に言及した API です。この投稿は、夜間モードを実装する方法に関する実用的なガイドです。また、アプリ内カメラで撮影された高画質の夜間モードの写真と、アプリ内カメラから共有される写真数の増加を結びつけるケーススタディも掲載されています。

モーション フォトのキャプチャ インテント アクション

Android 16 では、カメラ アプリにモーション フォトをキャプチャして返すようリクエストする標準インテント アクション(ACTION_MOTION_PHOTO_CAPTUREACTION_MOTION_PHOTO_CAPTURE_SECURE)が追加されました。

追加の EXTRA_OUTPUT を渡してイメージの書き込み先を制御するか、Intent.setClipData(ClipData) を介して Uri を渡す必要があります。ClipData を設定しないと、Context.startActivity(Intent) を呼び出すときにコピーされます。

モーション フォトの例。静止画像の後にモーション再生が表示されます。

ウルトラ HDR 画像の拡張

An illustration of Standard Dynamic Range (SDR) versus High Dynamic Range (HDR) image quality.

Android 16 continues our work to deliver dazzling image quality with UltraHDR images. It adds support for UltraHDR images in the HEIC file format. These images will get ImageFormat type HEIC_ULTRAHDR and will contain an embedded gainmap similar to the existing UltraHDR JPEG format. We're working on AVIF support for UltraHDR as well, so stay tuned.

In addition, Android 16 implements additional parameters in UltraHDR from the ISO 21496-1 draft standard, including the ability to get and set the colorspace that gainmap math should be applied in, as well as support for HDR encoded base images with SDR gainmaps.

グラフィック

Android 16 には、AGSL を使用したカスタム グラフィック効果など、最新のグラフィックの改善が含まれています。

AGSL を使用したカスタム グラフィック効果

Android 16 adds RuntimeColorFilter and RuntimeXfermode, allowing you to author complex effects like Threshold, Sepia, and Hue Saturation and apply them to draw calls. Since Android 13, you've been able to use AGSL to create custom RuntimeShaders that extend Shader. The new API mirrors this, adding an AGSL-powered RuntimeColorFilter that extends ColorFilter, and a Xfermode effect that lets you implement AGSL-based custom compositing and blending between source and destination pixels.

private val thresholdEffectString = """
    uniform half threshold;

    half4 main(half4 c) {
        half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
        half bw = step(threshold, luminosity);
        return bw.xxx1 * c.a;
    }"""

fun setCustomColorFilter(paint: Paint) {
   val filter = RuntimeColorFilter(thresholdEffectString)
   filter.setFloatUniform(0.5);
   paint.colorFilter = filter
}

接続

Android 16 では、プラットフォームがアップデートされ、アプリで最新の通信技術やワイヤレス技術を利用できるようになります。

セキュリティ強化による測距

Android 16 adds support for robust security features in Wi-Fi location on supported devices with Wi-Fi 6's 802.11az, allowing apps to combine the higher accuracy, greater scalability, and dynamic scheduling of the protocol with security enhancements including AES-256-based encryption and protection against MITM attacks. This allows it to be used more safely in proximity use cases, such as unlocking a laptop or a vehicle door. 802.11az is integrated with the Wi-Fi 6 standard, leveraging its infrastructure and capabilities for wider adoption and easier deployment.

汎用的な距離測定 API

Android 16 includes the new RangingManager, which provides ways to determine the distance and angle on supported hardware between the local device and a remote device. RangingManager supports the usage of a variety of ranging technologies such as BLE channel sounding, BLE RSSI-based ranging, Ultra Wideband, and Wi-Fi round trip time.

コンパニオン デバイス マネージャーのデバイスの存在

Android 16 では、コンパニオン アプリ サービスをバインドするための新しい API が導入されています。BLE が範囲内にあり、Bluetooth が接続されている場合はサービスがバインドされ、BLE が範囲外にあるか Bluetooth が接続されていない場合はサービスがバインド解除されます。アプリは、さまざまな DevicePresenceEvent に基づいて、新しい onDevicePresenceEvent() コールバックを受け取ります。詳しくは、'startObservingDevicePresence(ObservingDevicePresenceRequest)' をご覧ください。

メディア

Android 16 には、メディア エクスペリエンスを向上させるさまざまな機能が含まれています。

写真選択ツールの改善

写真選択ツールは、メディア ライブラリ全体ではなく、ローカル ストレージとクラウド ストレージの両方から選択した画像と動画にアプリがアクセスできるようにする、安全な組み込みツールです。Google システム アップデートを介したモジュラー システム コンポーネントGoogle Play 開発者サービスを組み合わせて、Android 4.4(API レベル 19)以前に対応しています。統合に必要なコードは、関連する Android Jetpack ライブラリで数行のみです。

Android 16 では、写真選択ツールが次のように改善されています。

  • 埋め込み写真選択ツール: アプリがビュー階層に写真選択ツールを埋め込むことを可能にする新しい API。これにより、アプリのより統合された部分のように感じながら、プロセスの分離を活用して、アプリが過度に広範な権限を必要とせずにユーザーがメディアを選択できるようにします。埋め込みの写真選択ツールを統合する場合は、プラットフォーム バージョン間の互換性を最大限に高め、統合を簡素化するために、今後リリースされる Android Jetpack ライブラリを使用することをおすすめします。
  • 写真選択ツールでの Cloud Search: Android の写真選択ツールでクラウド メディア プロバイダからの検索を可能にする新しい API。写真選択ツールの検索機能は近日提供予定です。

高度なプロフェッショナル動画

Android 16 では、プロレベルの高品質な動画の撮影とポストプロダクションに使用するように設計された Advanced Professional Video(APV)コーデックのサポートが導入されています。

APV コーデック標準には次の機能があります。

  • 知覚的に損失のない動画品質(RAW 動画品質に近い)
  • 複雑さが低く、スループットの高いフレーム内のみのコーディング(ピクセル ドメイン予測なし)により、編集ワークフローをより適切にサポート
  • 軽量エントロピー コーディング スキームにより、2K、4K、8K 解像度のコンテンツで最大数 Gbps の高ビットレート範囲をサポート
  • 没入型コンテンツと並列エンコードとデコードを可能にするフレーム タイリング
  • さまざまなクロマ サンプリング形式とビット深度のサポート
  • 画質の大幅な低下なしで複数のデコードと再エンコードをサポート
  • マルチビュー動画と補助動画(深度、アルファ、プレビューなど)をサポートする
  • HDR10/10+ とユーザー定義メタデータのサポート

APV のリファレンス実装は、OpenAPV プロジェクトで提供されています。Android 16 では、10 ビット エンコードと最大 2 Gbps のターゲット ビットレートを備えた YUV 422 カラー サンプリングを提供する APV 422-10 プロファイルのサポートが実装されます。

プライバシー

Android 16 には、アプリ デベロッパーがユーザーのプライバシーを保護するのに役立つさまざまな機能が含まれています。

ヘルスコネクトの更新

Health Connect adds ACTIVITY_INTENSITY, a data type defined according to World Health Organization guidelines around moderate and vigorous activity. Each record requires the start time, the end time, and whether the activity intensity is moderate or vigorous.

Health Connect also contains updated APIs supporting medical records. This allows apps to read and write medical records in FHIR format with explicit user consent.

Android 版プライバシー サンドボックス

Android 16 には、最新バージョンの Android 版プライバシー サンドボックスが組み込まれています。これは、ユーザーがプライバシーが保護されていることを認識できる技術を開発するための継続的な取り組みの一環です。Android 版プライバシー サンドボックスのデベロッパー ベータ版プログラムについて詳しくは、ウェブサイトをご覧ください。SDK ランタイムをご確認ください。SDK ランタイムを使用すると、SDK をサービス提供元のアプリとは別の専用のランタイム環境で実行できるため、ユーザーデータの収集と共有に関する安全対策と保証を強化できます。

セキュリティ

Android 16 には、アプリのセキュリティを強化し、アプリのデータを保護するのに役立つ機能が含まれています。

キー共有 API

Android 16 では、Android Keystore キーへのアクセスを他のアプリと共有する API が追加されています。新しい KeyStoreManager クラスは、アプリの uid による鍵へのアクセスの付与取り消しをサポートし、アプリが共有鍵にアクセスするための API が含まれています。

デバイスのフォーム ファクタ

Android 16 では、Android のフォーム ファクタを最大限に活用するためのサポートがアプリに提供されます。

テレビの画質と音質の標準化されたフレームワーク

Android 16 の新しい MediaQuality パッケージは、オーディオ プロファイルと画像プロファイル、ハードウェア関連の設定にアクセスするための標準化された API のセットを公開します。これにより、ストリーミング アプリはプロファイルをクエリし、メディアに動的に適用できます。

  • ダイナミック レンジが広い映画では、シャドウの微細なディテールを認識し、周囲光に合わせて調整するために、より高い色の精度が必要になります。そのため、明るさよりも色の精度を重視したプロファイルが適している場合があります。
  • スポーツのライブ配信は、ダイナミック レンジが狭い状態でマスタリングされることが多く、日光の下で視聴されることも多いので、色の精度よりも明るさを優先するプロファイルの方が良い結果が得られます。
  • 完全にインタラクティブなコンテンツでは、レイテンシを低減するために最小限の処理と高いフレームレートが必要です。そのため、多くのテレビにはゲーム プロファイルが付属しています。

この API を使用すると、アプリでプロファイルを切り替えたり、ユーザーがサポートされているテレビをコンテンツに合わせて調整したりできます。

多言語対応

Android 16 では、デバイスが異なる言語で使用される場合のユーザー エクスペリエンスを補完する機能が追加されています。

縦書きテキスト

Android 16 では、テキストの垂直方向のレンダリングと測定に対する低レベルのサポートが追加され、ライブラリ デベロッパー向けの基本的な垂直書き込みサポートが提供されます。これは、縦書きが一般的である日本語などの言語で特に便利です。Paint クラスに新しいフラグ VERTICAL_TEXT_FLAG が追加されました。このフラグが Paint.setFlags を使用して設定されている場合、Paint のテキスト測定 API は水平方向の移動ではなく垂直方向の移動を報告し、Canvas はテキストを垂直方向に描画します。

val text = "「春は、曙。」"
Box(
    Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
        drawIntoCanvas { canvas ->
            val paint = Paint().apply { textSize = 64.sp.toPx() }
            // Draw text vertically
            paint.flags = paint.flags or VERTICAL_TEXT_FLAG
            val height = paint.measureText(text)
            canvas.nativeCanvas.drawText(
                text,
                0,
                text.length,
                size.width / 2,
                (size.height - height) / 2,
                paint
            )
        }
    }
) {}

測定単位のカスタマイズ

ユーザーは、[設定] の地域別の設定で測定単位をカスタマイズできるようになりました。ユーザー設定はロケール コードの一部として含まれるため、ACTION_LOCALE_CHANGEDBroadcastReceiver を登録して、地域の設定が変更されたときに言語 / 地域の構成の変更を処理できます。

フォーマッタを使用すると、ローカル エクスペリエンスに合わせることができます。たとえば、英語(米国)の「0.5 in」は、スマートフォンを英語(デンマーク)に設定しているユーザー、または英語(米国)でスマートフォンを使用しているユーザーで、測定単位としてメートル法を設定している場合は「12,7 mm」になります。

これらの設定を確認するには、設定アプリを開いて [システム] > [言語と地域] に移動します。