Tính năng và API

Android 16 mang đến cho nhà phát triển các tính năng và API mới tuyệt vời. Các phần sau đây tóm tắt những tính năng này để giúp bạn bắt đầu sử dụng các API liên quan.

Để biết danh sách chi tiết về các API mới, đã được sửa đổi, cũng như đã bị xoá, hãy đọc báo cáo điểm khác biệt về API. Để biết thông tin chi tiết về các API mới, hãy truy cập vào tài liệu tham khảo về API cho Android (các API mới được trình bày nổi bật).

Bạn cũng nên xem xét những khía cạnh mà các thay đổi của nền tảng có thể ảnh hưởng đến ứng dụng của bạn. Để biết thêm thông tin, hãy xem các trang sau:

Chức năng cốt lõi

Android có các API mới giúp mở rộng các chức năng cốt lõi của hệ thống Android.

Hai bản phát hành API Android vào năm 2025

  • 此预览版适用于 Android 的下一个主要版本,计划于 2025 年第 2 季度发布。此版本与我们过去的所有 API 版本类似,我们可以进行计划性的行为更改,这些更改通常与 targetSdkVersion 相关联。
  • 我们计划提前一个季度(2021 年第 2 季度,而非之前的第 3 季度)发布主要版本,以便更好地与整个生态系统中的设备发布时间表保持一致,让更多设备能够更早地搭载 Android 主要版本。由于主要版本将于第 2 季度发布,因此您需要比往年提前几个月进行年度兼容性测试,以确保您的应用已做好准备。
  • 我们计划在 2025 年第 4 季度再发布一次,届时还将推出新的开发者 API。2025 年只有第二季度的主要版本包含可能影响应用的计划行为变更。

除了新的开发者 API 之外,第 4 季度次要版本还将包含功能更新、优化和 bug 修复;其中不会包含任何会影响应用的行为变更。

2025 年 Android 版本的时间轴视图,请注意,25Q2 版本是一个主要版本,25Q4 版本是一个次要版本。

我们将继续每季度发布 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 尚未最终确定,可能会发生变化,因此如果您有任何疑虑,请向我们发送反馈

Trải nghiệm người dùng và giao diện người dùng hệ thống

Android 16 mang đến cho nhà phát triển ứng dụng và người dùng nhiều quyền kiểm soát và tính linh hoạt hơn khi định cấu hình thiết bị cho phù hợp với nhu cầu của họ.

Thông báo tập trung vào tiến trình

Android 16 ra mắt thông báo tập trung vào tiến trình để giúp người dùng theo dõi liền mạch hành trình từ đầu đến cuối do người dùng khởi tạo.

Notification.ProgressStyle là một kiểu thông báo mới cho phép bạn tạo thông báo tập trung vào tiến trình. Các trường hợp sử dụng chính bao gồm đi chung xe, giao hàng và chỉ đường. Trong lớp Notification.ProgressStyle, bạn có thể biểu thị các trạng thái và mốc quan trọng trong hành trình của người dùng bằng cách sử dụng điểmphân đoạn.

Để tìm hiểu thêm, hãy xem trang tài liệu về Thông báo tập trung vào tiến trình.

Thông báo tập trung vào tiến trình hiển thị trên màn hình khoá.
Thông báo tập trung vào tiến trình xuất hiện trong ngăn thông báo.

Thông tin cập nhật về tính năng xem trước thao tác quay lại

Android 16 adds new APIs to help you enable predictive back system animations in gesture navigation such as the back-to-home animation. Registering the onBackInvokedCallback with the new PRIORITY_SYSTEM_NAVIGATION_OBSERVER allows your app to receive the regular onBackInvoked call whenever the system handles a back navigation without impacting the normal back navigation flow.

Android 16 additionally adds the finishAndRemoveTaskCallback() and moveTaskToBackCallback. By registering these callbacks with the OnBackInvokedDispatcher, the system can trigger specific behaviors and play corresponding ahead-of-time animations when the back gesture is invoked.

Phản hồi xúc giác phong phú hơn

Android đã hiển thị quyền kiểm soát đối với bộ truyền động xúc giác kể từ khi ra mắt.

Android 11 đã hỗ trợ thêm các hiệu ứng xúc giác phức tạp hơn mà các bộ truyền động nâng cao hơn có thể hỗ trợ thông qua VibrationEffect.Compositions của các nguyên hàm ngữ nghĩa do thiết bị xác định.

Android 16 thêm API xúc giác cho phép các ứng dụng xác định độ lớn và đường cong tần số của hiệu ứng xúc giác trong khi loại bỏ sự khác biệt giữa các chức năng của thiết bị.

Năng suất và công cụ dành cho nhà phát triển

Mặc dù hầu hết công việc của chúng tôi nhằm cải thiện hiệu suất của bạn đều tập trung vào các công cụ như Android Studio, Jetpack Compose và các thư viện Android Jetpack, nhưng chúng tôi luôn tìm cách giúp bạn hiện thực hoá tầm nhìn của mình trên nền tảng này.

Xử lý nội dung cho hình nền động

Trong Android 16, khung hình nền động sẽ có một API nội dung mới để giải quyết các thách thức của hình nền động, do người dùng điều khiển. Hiện tại, các hình nền động kết hợp nội dung do người dùng cung cấp yêu cầu triển khai phức tạp, dành riêng cho dịch vụ. Android 16 giới thiệu WallpaperDescriptionWallpaperInstance. WallpaperDescription cho phép bạn xác định các thực thể riêng biệt của hình nền động từ cùng một dịch vụ. Ví dụ: hình nền có các thực thể trên cả màn hình chính và màn hình khoá có thể có nội dung riêng biệt ở cả hai vị trí. Công cụ chọn hình nền và WallpaperManager sử dụng siêu dữ liệu này để trình bày hình nền tốt hơn cho người dùng, giúp đơn giản hoá quy trình để bạn tạo ra trải nghiệm hình nền động đa dạng và được cá nhân hoá.

Hiệu suất và pin

Android 16 giới thiệu các API giúp thu thập thông tin chi tiết về ứng dụng của bạn.

Lập hồ sơ do hệ thống kích hoạt

ProfilingManager được thêm vào Android 15, cho phép các ứng dụng yêu cầu thu thập dữ liệu phân tích tài nguyên bằng Perfetto trên các thiết bị công khai trong trường hợp thực tế. Tuy nhiên, vì quá trình phân tích tài nguyên này phải bắt đầu từ ứng dụng, nên các luồng quan trọng như khởi động hoặc lỗi ANR sẽ khó hoặc không thể được ứng dụng ghi lại.

Để giúp giải quyết vấn đề này, Android 16 giới thiệu tính năng phân tích tài nguyên do hệ thống kích hoạt cho ProfilingManager. Các ứng dụng có thể đăng ký quan tâm đến việc nhận dấu vết cho một số trình kích hoạt nhất định, chẳng hạn như khởi động nguội reportFullyDrawn hoặc ANR, sau đó hệ thống sẽ bắt đầu và dừng dấu vết thay mặt cho ứng dụng. Sau khi quá trình theo dõi hoàn tất, kết quả sẽ được phân phối đến thư mục dữ liệu của ứng dụng.

Thành phần khởi động trong ApplicationStartInfo

ApplicationStartInfo was added in Android 15, allowing an app to see reasons for process start, start type, start times, throttling, and other useful diagnostic data. Android 16 adds getStartComponent() to distinguish what component type triggered the start, which can be helpful for optimizing the startup flow of your app.

Khả năng tự xem xét công việc hiệu quả hơn

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.

Tốc độ làm mới thích ứng

Android 15 中引入的自适应刷新率 (ARR) 可让受支持硬件上的显示屏刷新率使用离散的 VSync 步长来适应内容帧速率。这不仅降低了功耗,还无需进行可能导致卡顿的模式切换。

Android 16 引入了 hasArrSupport()getSuggestedFrameRate(int),同时恢复了 getSupportedRefreshRates(),以便您的应用更轻松地利用 ARR。RecyclerView 1.4从快速滑动或平滑滚动中稳定下来时会在内部支持 ARR,我们将继续努力,将 ARR 支持添加到更多 Jetpack 库中。这篇帧速率文章介绍了许多可用于设置帧速率的 API,以便您的应用可以直接使用 ARR。

Headroom API trong ADPF

SystemHealthManager giới thiệu các API getCpuHeadroomgetGpuHeadroom, được thiết kế để cung cấp cho các trò chơi và ứng dụng nặng về tài nguyên thông tin ước tính về tài nguyên CPU và GPU có sẵn. Các phương thức này giúp bạn đánh giá cách ứng dụng hoặc trò chơi của mình có thể cải thiện hiệu quả nhất trạng thái của hệ thống, đặc biệt là khi được sử dụng kết hợp với các API Khung hiệu suất động Android (ADPF) khác phát hiện tình trạng điều tiết nhiệt.

Bằng cách sử dụng CpuHeadroomParamsGpuHeadroomParams trên các thiết bị được hỗ trợ, bạn có thể tuỳ chỉnh khoảng thời gian dùng để tính toán khoảng đầu vào và chọn giữa mức sử dụng tài nguyên trung bình hoặc tối thiểu. Điều này có thể giúp bạn giảm mức sử dụng tài nguyên CPU hoặc GPU cho phù hợp, mang lại trải nghiệm người dùng tốt hơn và cải thiện thời lượng pin.

Hỗ trợ tiếp cận

Android 16 bổ sung các API và tính năng hỗ trợ tiếp cận mới có thể giúp bạn cung cấp ứng dụng của mình cho mọi người dùng.

Cải thiện API hỗ trợ tiếp cận

Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。

为文字添加轮廓,以最大限度地提高文字对比度

视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。

Android 16 包含新的 AccessibilityManager API,可让您的应用检查注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout 类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。

Android 16 推出新的轮廓文本无障碍功能前后,对比度更高的文本

向 TtsSpan 添加了时长

Android 16 使用 TYPE_DURATION 扩展了 TtsSpan,其中包含 ARG_HOURSARG_MINUTESARG_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 getCheckedsetChecked(int) 方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isCheckedsetChecked(boolean)

补充说明

如果无障碍服务提供关于 ViewGroup 的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup 提供 contentDescription,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单等内容添加标签(例如“字体系列”),同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription,以便您提供用于提供 ViewGroup 相关信息的文本,而不会覆盖其子项中的信息。

必填表单字段

Android 16 向 AccessibilityNodeInfo 添加了 setFieldRequired,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户而言,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。

Điện thoại làm nguồn đầu vào micrô cho cuộc gọi thoại bằng thiết bị trợ thính LEA

Android 16 bổ sung tính năng cho phép người dùng thiết bị trợ thính LE Audio chuyển đổi giữa micrô tích hợp trên thiết bị trợ thính và micrô trên điện thoại để thực hiện cuộc gọi thoại. Điều này có thể hữu ích trong môi trường ồn ào hoặc các trường hợp khác mà micrô của thiết bị trợ thính có thể hoạt động kém.

Các nút điều chỉnh âm lượng môi trường xung quanh cho thiết bị trợ thính LEA

Android 16 bổ sung khả năng cho phép người dùng thiết bị trợ thính LE Audio điều chỉnh âm lượng của âm thanh môi trường xung quanh do micrô của thiết bị trợ thính thu được. Điều này có thể hữu ích trong trường hợp tạp âm quá lớn hoặc quá nhỏ.

Camera

Android 16 tăng cường hỗ trợ cho người dùng camera chuyên nghiệp, cho phép tự động phơi sáng kết hợp cùng với chế độ điều chỉnh nhiệt độ màu và sắc thái chính xác. Chỉ báo chế độ ban đêm mới giúp ứng dụng của bạn biết thời điểm chuyển đổi sang và từ phiên máy ảnh ở chế độ ban đêm. Các thao tác Intent mới giúp bạn dễ dàng chụp ảnh động hơn, đồng thời chúng tôi sẽ tiếp tục cải thiện hình ảnh UltraHDR bằng cách hỗ trợ mã hoá HEIC và các thông số mới theo tiêu chuẩn dự thảo ISO 21496-1.

Chế độ tự động phơi sáng kết hợp

Android 16 thêm các chế độ tự động phơi sáng kết hợp mới vào Camera2, cho phép bạn kiểm soát các khía cạnh cụ thể của chế độ phơi sáng theo cách thủ công, đồng thời để thuật toán tự động phơi sáng (AE) xử lý phần còn lại. Bạn có thể kiểm soát ISO + AEthời gian phơi sáng + AE, mang lại tính linh hoạt cao hơn so với phương pháp hiện tại, trong đó bạn có toàn quyền kiểm soát thủ công hoặc hoàn toàn dựa vào chế độ tự động phơi sáng.

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) ...
}

Điều chỉnh chính xác nhiệt độ màu và sắc độ

Android 16 bổ sung tính năng hỗ trợ máy ảnh để điều chỉnh nhiệt độ màu và sắc độ một cách tinh tế nhằm hỗ trợ tốt hơn các ứng dụng quay video chuyên nghiệp. Trong các phiên bản Android trước, bạn có thể kiểm soát các chế độ cài đặt cân bằng trắng thông qua CONTROL_AWB_MODE. Phương thức này chứa các tuỳ chọn giới hạn ở danh sách đặt trước, chẳng hạn như Đèn sợi đốt, MâyHoàng hôn. COLOR_CORRECTION_MODE_CCT cho phép sử dụng COLOR_CORRECTION_COLOR_TEMPERATURECOLOR_CORRECTION_COLOR_TINT để điều chỉnh chính xác độ cân bằng trắng dựa trên nhiệt độ màu tương quan.

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) ...
}

Các ví dụ sau đây cho thấy hình ảnh sẽ trông như thế nào sau khi áp dụng các mức điều chỉnh nhiệt độ màu và sắc độ khác nhau:

Hình ảnh gốc chưa được điều chỉnh nhiệt độ màu hoặc sắc độ.
Hình ảnh có nhiệt độ màu được điều chỉnh thành 3000.
Hình ảnh có nhiệt độ màu được điều chỉnh thành 7000.


Hình ảnh có mức độ phủ màu giảm 50%.
Hình ảnh có mức độ phủ màu tăng thêm 50.

Tính năng phát hiện cảnh ở chế độ ban đêm của camera

Để giúp ứng dụng của bạn biết thời điểm chuyển sang và thoát khỏi phiên máy ảnh ở chế độ ban đêm, Android 16 sẽ thêm EXTENSION_NIGHT_MODE_INDICATOR. Nếu được hỗ trợ, bạn có thể sử dụng tính năng này trong CaptureResult trong Camera2.

Đây là API mà chúng tôi đã đề cập ngắn gọn trong bài đăng trên blog Cách Instagram giúp người dùng chụp những bức ảnh tuyệt đẹp trong điều kiện thiếu sáng. Bài đăng đó là một hướng dẫn thực tế về cách triển khai chế độ ban đêm cùng với một nghiên cứu điển hình liên kết ảnh chất lượng cao hơn ở chế độ ban đêm trong ứng dụng với việc tăng số lượng ảnh được chia sẻ từ máy ảnh trong ứng dụng.

Thao tác theo ý định chụp ảnh chuyển động

Android 16 添加了标准 intent 操作 ACTION_MOTION_PHOTO_CAPTUREACTION_MOTION_PHOTO_CAPTURE_SECURE,用于请求相机应用拍摄动态照片并将其返回。

您必须传递额外的 EXTRA_OUTPUT 来控制将图片写入的位置,或者通过 Intent.setClipData(ClipData) 传递 Uri。如果您未设置 ClipData,系统会在调用 Context.startActivity(Intent) 时将其复制到该位置。

动态照片示例,显示静态图片和动态播放画面。

Các tính năng nâng cao hình ảnh Ultra 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.

Đồ hoạ

Android 16 có các điểm cải thiện mới nhất về đồ hoạ, chẳng hạn như hiệu ứng đồ hoạ tuỳ chỉnh bằng AGSL.

Hiệu ứng đồ hoạ tuỳ chỉnh bằng AGSL

Android 16 thêm RuntimeColorFilterRuntimeXfermode, cho phép bạn tạo các hiệu ứng phức tạp như Ngưỡng, Nâu đỏ và Độ bão hoà màu sắc và áp dụng các hiệu ứng đó cho các lệnh gọi vẽ. Kể từ Android 13, bạn có thể sử dụng AGSL để tạo RuntimeShaders tuỳ chỉnh mở rộng Shader. API mới phản ánh điều này, thêm một RuntimeColorFilter dựa trên AGSL mở rộng ColorFilter và hiệu ứng Xfermode cho phép bạn triển khai tính năng kết hợp và pha trộn tuỳ chỉnh dựa trên AGSL giữa các pixel nguồn và đích.

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
}

Khả năng kết nối

Android 16 cập nhật nền tảng để cho phép ứng dụng của bạn sử dụng những tiến bộ mới nhất về công nghệ truyền thông và không dây.

Đo khoảng cách với tính năng bảo mật nâng cao

Android 16 hỗ trợ thêm các tính năng bảo mật mạnh mẽ trong vị trí Wi-Fi trên các thiết bị được hỗ trợ bằng 802.11az của Wi-Fi 6, cho phép các ứng dụng kết hợp độ chính xác cao hơn, khả năng mở rộng lớn hơn và lập lịch biểu động của giao thức với các tính năng bảo mật nâng cao, bao gồm cả tính năng mã hoá dựa trên AES-256 và bảo vệ chống lại các cuộc tấn công MITM. Điều này cho phép sử dụng chip một cách an toàn hơn trong các trường hợp sử dụng ở cự ly gần, chẳng hạn như mở khoá máy tính xách tay hoặc cửa xe. 802.11az được tích hợp với tiêu chuẩn Wi-Fi 6, tận dụng cơ sở hạ tầng và các tính năng của tiêu chuẩn này để được áp dụng rộng rãi hơn và triển khai dễ dàng hơn.

API đo khoảng cách chung

Android 16 bao gồm RangingManager mới, cung cấp các cách xác định khoảng cách và góc trên phần cứng được hỗ trợ giữa thiết bị cục bộ và thiết bị từ xa. RangingManager hỗ trợ việc sử dụng nhiều công nghệ đo khoảng cách như đo khoảng cách dựa trên RSSI BLE, đo khoảng cách dựa trên kênh BLE, băng tần siêu rộng và thời gian truyền Wi-Fi.

Sự hiện diện của thiết bị trong trình quản lý thiết bị đồng hành

Trong Android 16, các API mới sẽ được giới thiệu để liên kết dịch vụ ứng dụng đồng hành. Dịch vụ sẽ được liên kết khi BLE ở trong phạm vi và Bluetooth được kết nối, đồng thời dịch vụ sẽ bị huỷ liên kết khi BLE ở ngoài phạm vi hoặc Bluetooth bị ngắt kết nối. Ứng dụng sẽ nhận được lệnh gọi lại "onDevicePresenceEvent()" mới dựa trên nhiều DevicePresenceEvent. Bạn có thể xem thêm thông tin chi tiết trong "startObservingDevicePresence(ObservingDevicePresenceRequest)".

Nội dung nghe nhìn

Android 16 có nhiều tính năng giúp cải thiện trải nghiệm nghe nhìn.

Cải tiến công cụ chọn ảnh

照片选择器为用户提供了一种安全的内置授权方式,让用户可以向应用授予对本地存储空间和云端存储空间中所选图片和视频的访问权限,而不是对整个媒体库的访问权限。通过 Google 系统更新Google Play 服务组合使用模块化系统组件,该工具向后支持到 Android 4.4(API 级别 19)。只需几行代码即可与相关的 Android Jetpack 库集成。

Android 16 对照片选择器进行了以下改进:

  • 嵌入式照片选择器新 API,可让应用将照片选择器嵌入其视图层次结构中。这样,它就感觉像是应用中更为集成的一部分,同时仍可利用进程隔离功能,让用户能够选择媒体,而无需应用拥有过于宽泛的权限。为了最大限度地提高跨平台版本的兼容性并简化集成,如果您想集成嵌入式照片选择器,则需要使用即将推出的 Android Jetpack 库。
  • 照片选择器中的云搜索新的 API 可让 Android 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。

Video chuyên nghiệp nâng cao

Android 16 ra mắt tính năng hỗ trợ bộ mã hoá và giải mã Video chuyên nghiệp nâng cao (APV). Bộ mã hoá và giải mã này được thiết kế để dùng cho việc quay video chất lượng cao và xử lý hậu kỳ ở cấp chuyên nghiệp.

Tiêu chuẩn bộ mã hoá và giải mã APV có các tính năng sau:

  • Chất lượng video không bị mất dữ liệu (gần với chất lượng video thô)
  • Mã hoá chỉ trong khung hình có độ phức tạp thấp và thông lượng cao (không có tính năng dự đoán miền pixel) để hỗ trợ tốt hơn quy trình chỉnh sửa
  • Hỗ trợ phạm vi tốc độ bit cao lên đến vài Gbps cho nội dung có độ phân giải 2K, 4K và 8K, được bật bằng lược đồ mã hoá entropy nhẹ
  • Sắp xếp khung hình cho nội dung sống động và để bật tính năng mã hoá và giải mã song song
  • Hỗ trợ nhiều định dạng lấy mẫu màu sắc và độ sâu bit
  • Hỗ trợ nhiều lần giải mã và mã hoá lại mà không làm giảm chất lượng hình ảnh nghiêm trọng
  • Hỗ trợ video nhiều khung hình và video phụ như độ sâu, alpha và bản xem trước
  • Hỗ trợ HDR10/10+ và siêu dữ liệu do người dùng xác định

Phương thức triển khai tham chiếu của APV được cung cấp thông qua dự án OpenAPV. Android 16 sẽ triển khai tính năng hỗ trợ cho Hồ sơ APV 422-10, cung cấp tính năng lấy mẫu màu YUV 422 cùng với tính năng mã hoá 10 bit và tốc độ bit mục tiêu lên đến 2 Gbps.

Quyền riêng tư

Android 16 có nhiều tính năng giúp nhà phát triển ứng dụng bảo vệ quyền riêng tư của người dùng.

Thông tin cập nhật về Health Connect

Health Connect thêm ACTIVITY_INTENSITY, một loại dữ liệu được xác định theo hướng dẫn của Tổ chức Y tế Thế giới về hoạt động vừa phải và mạnh mẽ. Mỗi bản ghi yêu cầu thời gian bắt đầu, thời gian kết thúc và cường độ hoạt động là vừa phải hay mạnh.

Health Connect cũng chứa các API đã cập nhật hỗ trợ bản ghi y tế. Điều này cho phép các ứng dụng đọc và ghi hồ sơ y tế ở định dạng FHIR khi có sự đồng ý rõ ràng của người dùng.

Hộp cát về quyền riêng tư trên Android

Android 16 tích hợp phiên bản mới nhất của Hộp cát về quyền riêng tư trên Android, một phần trong nỗ lực liên tục của chúng tôi nhằm phát triển các công nghệ giúp người dùng biết rằng quyền riêng tư của họ được bảo vệ. Trang web của chúng tôi có thêm thông tin về chương trình beta dành cho nhà phát triển của Hộp cát về quyền riêng tư trên Android để giúp bạn bắt đầu. Hãy xem Thời gian chạy SDK cho phép SDK chạy trong một môi trường thời gian chạy chuyên dụng tách biệt với ứng dụng mà chúng đang phân phát, cung cấp các biện pháp bảo vệ mạnh mẽ hơn cho việc thu thập và chia sẻ dữ liệu người dùng.

Bảo mật

Android 16 có các tính năng giúp bạn tăng cường tính bảo mật của ứng dụng và bảo vệ dữ liệu của ứng dụng.

API chia sẻ khoá

Android 16 bổ sung các API hỗ trợ chia sẻ quyền truy cập vào khoá Kho khoá Android với các ứng dụng khác. Lớp KeyStoreManager mới hỗ trợ cấpthu hồi quyền truy cập vào khoá theo uid của ứng dụng, đồng thời bao gồm một API để các ứng dụng truy cập vào khoá dùng chung.

Kiểu dáng thiết bị

Android 16 hỗ trợ các ứng dụng của bạn khai thác tối đa các kiểu dáng của Android.

Khung chất lượng hình ảnh và âm thanh được tiêu chuẩn hoá cho TV

Gói MediaQuality mới trong Android 16 hiển thị một tập hợp các API được chuẩn hoá để truy cập vào hồ sơ âm thanh và hình ảnh cũng như các chế độ cài đặt liên quan đến phần cứng. Điều này cho phép các ứng dụng phát trực tuyến truy vấn hồ sơ và áp dụng hồ sơ đó cho nội dung nghe nhìn một cách linh động:

  • Những bộ phim được xử lý với dải động rộng hơn đòi hỏi độ chính xác màu cao hơn để thấy được các chi tiết tinh tế trong bóng tối và điều chỉnh theo ánh sáng xung quanh. Vì vậy, bạn nên sử dụng hồ sơ ưu tiên độ chính xác màu hơn độ sáng.
  • Các sự kiện thể thao trực tiếp thường được xử lý với dải động hẹp, nhưng thường được xem dưới ánh sáng ban ngày, vì vậy, một hồ sơ ưu tiên độ sáng hơn độ chính xác màu có thể mang lại kết quả tốt hơn.
  • Nội dung tương tác hoàn toàn cần có mức xử lý tối thiểu để giảm độ trễ và cần tốc độ khung hình cao hơn. Đó là lý do nhiều TV được trang bị hồ sơ trò chơi.

API này cho phép các ứng dụng chuyển đổi giữa các hồ sơ và người dùng có thể điều chỉnh TV được hỗ trợ sao cho phù hợp nhất với nội dung của họ.

Quốc tế hoá

Android 16 bổ sung các tính năng và chức năng bổ trợ cho trải nghiệm người dùng khi thiết bị được dùng bằng nhiều ngôn ngữ.

Văn bản dọc

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
            )
        }
    }
) {}

Tuỳ chỉnh hệ thống đo lường

Giờ đây, người dùng có thể tuỳ chỉnh hệ thống đo lường theo lựa chọn ưu tiên theo khu vực trong phần Cài đặt. Lựa chọn ưu tiên của người dùng được đưa vào mã ngôn ngữ, vì vậy, bạn có thể đăng ký BroadcastReceiver trên ACTION_LOCALE_CHANGED để xử lý các thay đổi về cấu hình ngôn ngữ khi lựa chọn ưu tiên theo khu vực thay đổi.

Việc sử dụng trình định dạng có thể giúp phù hợp với trải nghiệm cục bộ. Ví dụ: "0,5 in" (inch) bằng tiếng Anh (Hoa Kỳ) là "12,7 mm" đối với người dùng đã đặt điện thoại thành tiếng Anh (Đan Mạch) hoặc người dùng sử dụng điện thoại bằng tiếng Anh (Hoa Kỳ) với hệ mét là hệ thống đo lường ưu tiên.

Để tìm các chế độ cài đặt này, hãy mở ứng dụng Cài đặt rồi chuyển đến Hệ thống > Ngôn ngữ và khu vực.