Android 16 では、デベロッパー向けに優れた新しい機能と API が導入されました。以下のセクションでは、これらの機能の概要を説明し、関連する API を使い始めるうえで役立つ情報を提供します。
新しい API、変更された API、削除された API の一覧については、API 差分レポートをご覧ください。新しい API について詳しくは、Android API リファレンスをご覧ください。新しい API は、見つけやすいようにハイライト表示されています。また、プラットフォームの変更がアプリに影響する可能性がある領域も確認する必要があります。詳細については、次のページをご覧ください。
コア機能
Android には、Android システムのコア機能を拡張する新しい API が含まれています。
2025 年に 2 つの Android API をリリース
- 此预览版适用于 Android 的下一个主要版本,计划于 2025 年第 2 季度发布。此版本与我们过去的所有 API 版本类似,我们可以进行计划性的行为更改,这些更改通常与 targetSdkVersion 相关联。
- 我们计划提前一个季度(2021 年第 2 季度,而非之前的第 3 季度)发布主要版本,以便更好地与整个生态系统中的设备发布时间表保持一致,让更多设备能够更早地搭载 Android 主要版本。由于主要版本将于第 2 季度发布,因此您需要比往年提前几个月进行年度兼容性测试,以确保您的应用已做好准备。
- 我们计划在 2025 年第 4 季度再发布一次,届时还将推出新的开发者 API。2025 年只有第二季度的主要版本包含可能影响应用的计划行为变更。
除了新的开发者 API 之外,第 4 季度次要版本还将包含功能更新、优化和 bug 修复;其中不会包含任何会影响应用的行为变更。
我们将继续每季度发布 Android 版本。在 API 版本之间,第 1 季度和第 3 季度的更新将提供增量更新,以帮助确保持续提供高质量的服务。我们正积极与设备合作伙伴合作,将 Q2 版本推广到尽可能多的设备。
在主要版本和次要版本中使用新 API
目前,使用 SDK_INT 常量与 VERSION_CODES 结合使用,即可通过检查 API 级别来保护代码块。我们将继续支持主要 Android 版本。
if (SDK_INT >= VERSION_CODES.BAKLAVA) {
// Use APIs introduced in Android 16
}
新的 SDK_INT_FULL 常量可用于针对主要版本和次要版本进行 API 检查,并使用新的 VERSION_CODES_FULL 枚举。
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
// Use APIs introduced in a major or minor release
}
您还可以使用 Build.getMinorSdkVersion() 方法仅获取 SDK 次要版本。
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
这些 API 尚未最终确定,可能会发生变化,因此如果您有任何疑虑,请向我们发送反馈。
ユーザー エクスペリエンスとシステム UI
Android 16 では、アプリ デベロッパーとユーザーがニーズに合わせてデバイスを構成するための制御と柔軟性が向上しています。
進行状況を中心とした通知
Android 16 では、ユーザーが開始した、最初から最後までのジャーニーをシームレスに追跡できるように、進行状況重視の通知が導入されています。
Notification.ProgressStyle は、進行状況重視の通知を作成できる新しい通知スタイルです。主なユースケースには、乗車シェアリング、配達、ナビゲーションなどがあります。Notification.ProgressStyle クラス内で、ポイントとセグメントを使用して、ユーザー ジャーニー内の状態とマイルストーンを指定できます。
如需了解详情,请参阅以进度为中心的通知文档页面。
予測型「戻る」のアップデート
Android 16 添加了新 API,可帮助您在手势导航中启用预测性返回系统动画,例如“返回主屏幕”动画。通过使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER 注册 onBackInvokedCallback,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked 调用,而不会影响正常的返回导航流程。
Android 16 还添加了 finishAndRemoveTaskCallback() 和 moveTaskToBackCallback。通过向 OnBackInvokedDispatcher 注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。
リッチ ハプティクス
Android は、誕生以来、触覚アクチュエータの制御を公開してきました。
Android 11 では、デバイス定義のセマンティック プリミティブの VibrationEffect.Compositions を介して、より高度なアクチュエータがサポートできる、より複雑なハプティクス エフェクトのサポートが追加されました。
Android 16 では、ハプティクス API が追加されました。これにより、アプリはデバイスの機能の違いを抽象化しながら、ハプティクス エフェクトの振幅と周波数の曲線を定義できます。
デベロッパーの生産性とツール
生産性を向上させるための取り組みのほとんどは、Android Studio、Jetpack Compose、Android Jetpack ライブラリなどのツールを中心に行われていますが、プラットフォームでビジョンを実現するための方法も常に探しています。
ライブ壁紙のコンテンツ処理
在 Android 16 中,动态壁纸框架将获得一个新的 content API,以应对由用户驱动的动态壁纸带来的挑战。目前,包含用户提供的内容的实时壁纸需要复杂的服务专用实现。Android 16 引入了 WallpaperDescription 和 WallpaperInstance。借助 WallpaperDescription,您可以识别同一服务中的动态壁纸的不同实例。例如,如果某张壁纸同时在主屏幕和锁定屏幕上显示,则这两种情况下显示的内容可能各不相同。壁纸选择器和 WallpaperManager 会使用此元数据更好地向用户呈现壁纸,从而简化创建多样化个性化动态壁纸体验的过程。
パフォーマンスとバッテリー
Android 16 では、アプリに関する分析情報を収集するのに役立つ API が導入されています。
システム トリガー プロファイリング
ProfilingManager は Android 15 で追加されました。これにより、アプリは、フィールドの一般公開デバイスで Perfetto を使用してプロファイリング データの収集をリクエストできるようになりました。ただし、このプロファイリングはアプリから開始する必要があるため、起動や ANR などの重要なフローは、アプリでキャプチャするのが困難または不可能です。
これを支援するため、Android 16 では ProfilingManager にシステム トリガーのプロファイリングが導入されています。アプリは、コールド スタート reportFullyDrawn や ANR などの特定のトリガーのトレースを受信する関心を登録できます。これにより、システムはアプリに代わってトレースを開始および停止します。トレース完了後、結果はアプリのデータ ディレクトリに配信されます。
ApplicationStartInfo の開始コンポーネント
ApplicationStartInfo は Android 15 で追加されました。これにより、アプリはプロセスの開始理由、開始タイプ、開始時間、スロットリングなどの有用な診断データを確認できるようになりました。Android 16 では、起動をトリガーしたコンポーネントのタイプを区別するために getStartComponent() が追加されました。これは、アプリの起動フローを最適化する際に役立ちます。
ジョブのイントロスペクションの改善
JobScheduler#getPendingJobReason() API 会返回作业可能处于待处理状态的原因。不过,作业处于待处理状态的原因可能有多种。
在 Android 16 中,我们引入了一个新 API JobScheduler#getPendingJobReasons(int jobId),该 API 会返回作业处于待处理状态的多种原因,包括开发者设置的显式约束条件和系统设置的隐式约束条件。
我们还引入了 JobScheduler#getPendingJobReasonsHistory(int jobId),用于返回最新约束条件更改的列表。
我们建议您使用该 API 来调试作业可能无法执行的原因,尤其是在您发现某些任务的成功率降低或某些作业完成延迟存在 bug 时。例如,未能在后台更新微件,或在应用启动之前未能调用预加载作业。
这还有助于您更好地了解某些作业是否因系统定义的约束条件而无法完成,而不是因明确设置的约束条件而无法完成。
リフレッシュ レートの自動調整
Android 15 で導入されたリフレッシュ レートの自動調整(ARR)により、サポートされているハードウェアのディスプレイのリフレッシュ レートを、個別の VSync ステップを使用してコンテンツのフレームレートに合わせることができます。これにより、消費電力を削減し、ジャンクを引き起こす可能性のあるモード切り替えの必要性を排除できます。
Android 16 では、hasArrSupport() と getSuggestedFrameRate(int) が導入され、getSupportedRefreshRates() が復元されるため、アプリで ARR を簡単に利用できるようになります。RecyclerView 1.4 は、スワイプやスムーズ スクロールからのセットリング時に ARR を内部でサポートしています。Google は、ARR のサポートをさらに多くの Jetpack ライブラリに追加する作業を続けています。こちらのフレームレートに関する記事では、アプリで ARR を直接使用できるようにフレームレートを設定するために使用できる API について説明しています。
ADPF のヘッドルーム API
SystemHealthManager では、ゲームやリソースを大量に消費するアプリに利用可能な CPU リソースと GPU リソースの推定値を提供するように設計された getCpuHeadroom API と getGpuHeadroom API が導入されています。これらのメソッドを使用すると、アプリやゲームでシステムの健全性を最適に改善する方法を見極めることができます。特に、サーマル スロットリングを検出する他の Android Dynamic Performance Framework(ADPF)API と組み合わせて使用すると効果的です。
対応デバイスで CpuHeadroomParams と GpuHeadroomParams を使用すると、ヘッドルームの計算に使用する時間枠をカスタマイズし、リソースの平均可用性または最小可用性を選択できます。これにより、CPU または GPU のリソース使用量を適度に削減し、ユーザー エクスペリエンスとバッテリー駆動時間を改善できます。
ユーザー補助
Android 16 では、すべてのユーザーにアプリを提供するために役立つ新しいユーザー補助 API と機能が追加されています。
Accessibility API の改善
Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。
为文字添加轮廓,以最大限度地提高文字对比度
视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。
Android 16 包含新的 AccessibilityManager API,可让您的应用检查或注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout 类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。
向 TtsSpan 添加了时长
Android 16 使用 TYPE_DURATION 扩展了 TtsSpan,其中包含 ARG_HOURS、ARG_MINUTES 和 ARG_SECONDS。这样,您就可以直接为时长添加注释,确保通过 TalkBack 等服务获得准确且一致的文本转语音输出。
支持具有多个标签的元素
Android 目前允许界面元素从其他元素派生其无障碍功能标签,现在还支持关联多个标签,这是 Web 内容中常见的情况。通过在 AccessibilityNodeInfo 中引入基于列表的 API,Android 可以直接支持这些多标签关系。在进行这项更改的过程中,我们已弃用 AccessibilityNodeInfo#setLabeledBy 和 #getLabeledBy,改用 #addLabeledBy、#removeLabeledBy 和 #getLabeledByList。
改进了对可展开元素的支持
Android 16 添加了无障碍功能 API,可让您传达互动元素(例如菜单和展开式列表)的展开或收起状态。通过使用 setExpandedState 设置展开状态,并使用 CONTENT_CHANGE_TYPE_EXPANDED 内容更改类型调度 TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents,您可以确保 TalkBack 等屏幕阅读器会读出状态更改,从而提供更直观、更包容的用户体验。
不确定进度条
Android 16 添加了 RANGE_TYPE_INDETERMINATE,让您可以为确定性和不确定性 ProgressBar 微件公开 RangeInfo,从而让 TalkBack 等服务能够更一致地为进度指示器提供反馈。
三态复选框
Android 16 中的新 AccessibilityNodeInfo
getChecked 和 setChecked(int) 方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isChecked 和 setChecked(boolean)。
补充说明
如果无障碍服务提供关于 ViewGroup 的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup 提供 contentDescription,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单等内容添加标签(例如“字体系列”),同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription,以便您提供用于提供 ViewGroup 相关信息的文本,而不会覆盖其子项中的信息。
必填表单字段
Android 16 向 AccessibilityNodeInfo 添加了 setFieldRequired,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户而言,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。
LEA 補聴器を使用した音声通話で、スマートフォンのマイクを入力として使用
Android 16 では、LE Audio 補聴器のユーザーが、音声通話で補聴器の組み込みマイクとスマートフォンのマイクを切り替えられる機能が追加されています。これは、騒がしい環境や、補聴器のマイクがうまく機能しない可能性があるその他の状況で役立ちます。
LEA 補聴器の周囲の音の調整
Android 16 新增了一项功能,可让 LE Audio 助听器用户调节助听器麦克风接收的环境声音的音量。在背景噪音过大或过小的情况下,这可能会很有用。
カメラ
Android 16 では、プロのカメラユーザー向けのサポートが強化され、ハイブリッド自動露出と、色温度と色合いの正確な調整が可能になります。新しいナイトモード インジケーターにより、アプリはナイトモードのカメラ セッションへの切り替えのタイミングを把握できます。新しい Intent アクションにより、モーション フォトを簡単に撮影できるようになりました。また、HEIC エンコードと ISO 21496-1 ドラフト標準の新しいパラメータのサポートにより、UltraHDR 画像の改善も継続して行っています。
ハイブリッド自動露出
Android 16 では、Camera2 に新しいハイブリッド自動露出モードが追加されました。これにより、露出の特定の部分を手動で制御しながら、残りの部分を自動露出(AE)アルゴリズムに処理させることができます。ISO + AE と露出時間 + AE を制御できるため、完全な手動制御か自動露出に完全に依存するかのどちらかである現在のアプローチよりも柔軟性が増します。
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_TEMPERATURE と COLOR_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) ...
}
次の例は、さまざまな色温度と色合いの調整を適用した写真の外観を示しています。
カメラの夜間モードのシーン検出
夜間モードのカメラ セッションとの切り替えタイミングをアプリが把握できるように、Android 16 では EXTENSION_NIGHT_MODE_INDICATOR が追加されました。サポートされている場合は、Camera2 内の CaptureResult で使用できます。
これは、Instagram でユーザーが美しい低照度写真を撮影できるようにした方法に関するブログ投稿で、近日提供予定として簡単に言及した API です。この投稿は、夜間モードを実装する方法に関する実用的なガイドです。また、アプリ内カメラで撮影された高画質の夜間モードの写真と、アプリ内カメラから共有される写真数の増加を結びつけるケーススタディも掲載されています。
モーション フォトのキャプチャ インテント アクション
Android 16 では、カメラ アプリにモーション フォトをキャプチャして返すようリクエストする標準インテント アクション(ACTION_MOTION_PHOTO_CAPTURE、ACTION_MOTION_PHOTO_CAPTURE_SECURE)が追加されました。
追加の EXTRA_OUTPUT を渡してイメージの書き込み先を制御するか、Intent.setClipData(ClipData) を介して Uri を渡す必要があります。ClipData を設定しないと、Context.startActivity(Intent) を呼び出すときにコピーされます。
ウルトラ HDR 画像の拡張
Android 16 では、UltraHDR 画像で鮮明な画質を実現するための取り組みを継続しています。HEIC ファイル形式の UltraHDR 画像のサポートが追加されました。これらの画像は ImageFormat タイプ HEIC_ULTRAHDR になり、既存の UltraHDR JPEG 形式と同様に埋め込みのゲインマップが含まれます。UltraHDR の AVIF サポートにも取り組んでおりますので、どうぞご期待ください。
さらに、Android 16 では、ISO 21496-1 ドラフト標準の UltraHDR に追加のパラメータを実装しています。これには、ゲインマップの計算を適用するカラースペースを取得して設定する機能や、SDR ゲインマップを含む HDR エンコード ベース画像のサポートが含まれます。
グラフィック
Android 16 には、AGSL を使用したカスタム グラフィック効果など、最新のグラフィックの改善が含まれています。
AGSL を使用したカスタム グラフィック効果
Android 16 では、RuntimeColorFilter と RuntimeXfermode が追加され、しきい値、セピア、色相飽和度などの複雑なエフェクトを作成して、描画呼び出しに適用できるようになりました。Android 13 以降では、AGSL を使用して、Shader を拡張するカスタム RuntimeShaders を作成できます。新しい API はこれをミラーリングし、ColorFilter を拡張する AGSL ベースの RuntimeColorFilter と、ソース ピクセル間と宛先ピクセル間の AGSL ベースのカスタム コンポジットとブレンドを実装できる Xfermode エフェクトを追加します。
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 在搭载 Wi-Fi 6 的 802.11az 的受支持设备上为 Wi-Fi 位置信息添加了对强大的安全功能的支持,让应用能够将该协议的更高精确性、更高可伸缩性和动态调度与安全增强功能(包括基于 AES-256 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。802.11az 与 Wi-Fi 6 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。
汎用的な距離測定 API
Android 16 包含新的 RangingManager,它提供了在受支持的硬件上确定本地设备与远程设备之间的距离和角度的方法。RangingManager 支持使用各种测距技术,例如 BLE 信道声音探测、基于 BLE RSSI 的测距、超宽带和 Wi-Fi 往返时间。
コンパニオン デバイス マネージャーのデバイスの存在
Android 16 中引入了用于绑定配套应用服务的新 API。当 BLE 在范围内且蓝牙处于连接状态时,系统会绑定服务;当 BLE 不在范围内或蓝牙处于断开连接状态时,系统会解除绑定服务。应用将根据各种 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 には、アプリ デベロッパーがユーザーのプライバシーを保護するのに役立つさまざまな機能が含まれています。
ヘルスコネクトの更新
ヘルスコネクトに ACTIVITY_INTENSITY が追加されました。これは、中程度および激しいアクティビティに関する世界保健機関のガイドラインに従って定義されたデータ型です。各レコードには、開始時間、終了時間、アクティビティの強度(中程度または激しい)が必要です。
ヘルスコネクトには、医療記録をサポートする更新された API も含まれています。これにより、アプリはユーザーの明示的な同意を得て、FHIR 形式の医療記録の読み取りと書き込みを行うことができます。
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_CHANGED に BroadcastReceiver を登録して、地域の設定が変更されたときに言語 / 地域の構成の変更を処理できます。
フォーマッタを使用すると、ローカル エクスペリエンスに合わせることができます。たとえば、英語(米国)の「0.5 in」は、スマートフォンを英語(デンマーク)に設定しているユーザー、または英語(米国)でスマートフォンを使用しているユーザーで、測定単位としてメートル法を設定している場合は「12,7 mm」になります。
これらの設定を確認するには、設定アプリを開いて [システム] > [言語と地域] に移動します。