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 làm quen với 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:
- Các thay đổi về hành vi ảnh hưởng đến ứng dụng khi ứng dụng nhắm đến Android 16
- Các thay đổi về hành vi ảnh hưởng đến tất cả ứng dụng bất kể
targetSdkVersion.
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 修复;其中不会包含任何会影响应用的行为变更。
我们将继续每季度发布 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 引入了以进度为中心的通知,可帮助用户顺畅地跟踪用户发起的端到端历程。
Notification.ProgressStyle 是一种新的通知样式,可让您创建以进度为中心的通知。主要用例包括共享车辆、送货和导航。在 Notification.ProgressStyle 类中,您可以使用点和细分来表示用户体验历程中的状态和里程碑。
如需了解详情,请参阅以进度为中心的通知文档页面。
Thông tin cập nhật về tính năng xem trước thao tác quay lại
Android 16 添加了新 API,可帮助您在手势导航中启用预测性返回系统动画,例如“返回主屏幕”动画。通过使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER 注册 onBackInvokedCallback,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked 调用,而不会影响正常的返回导航流程。
Android 16 还添加了 finishAndRemoveTaskCallback() 和 moveTaskToBackCallback。通过向 OnBackInvokedDispatcher 注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。
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ưởng của mình trên nền tảng này.
Xử lý nội dung cho hình nền động
在 Android 16 中,动态壁纸框架将获得一个新的 content API,以应对由用户驱动的动态壁纸带来的挑战。目前,包含用户提供的内容的实时壁纸需要复杂的服务专用实现。Android 16 引入了 WallpaperDescription 和 WallpaperInstance。借助 WallpaperDescription,您可以识别同一服务中的动态壁纸的不同实例。例如,如果某张壁纸同时在主屏幕和锁定屏幕上显示,则这两种情况下显示的内容可能各不相同。壁纸选择器和 WallpaperManager 会使用此元数据更好地向用户呈现壁纸,从而简化创建多样化个性化动态壁纸体验的过程。
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 được thêm vào Android 15, cho phép ứng dụng xem lý do khởi động quy trình, loại khởi động, thời gian khởi động, điều tiết và các dữ liệu chẩn đoán hữu ích khác. Android 16 thêm getStartComponent() để phân biệt loại thành phần nào đã kích hoạt quá trình khởi động. Điều này có thể hữu ích cho việc tối ưu hoá luồng khởi động của ứng dụng.
Khả năng tự xem xét công việc hiệu quả hơn
JobScheduler#getPendingJobReason() API 会返回作业可能处于待处理状态的原因。不过,作业处于待处理状态的原因可能有多种。
在 Android 16 中,我们引入了一个新 API JobScheduler#getPendingJobReasons(int jobId),该 API 会返回作业处于待处理状态的多种原因,包括开发者设置的显式约束条件和系统设置的隐式约束条件。
我们还引入了 JobScheduler#getPendingJobReasonsHistory(int jobId),用于返回最新约束条件更改的列表。
我们建议您使用该 API 来调试作业可能无法执行的原因,尤其是在您发现某些任务的成功率降低或某些作业完成延迟存在 bug 时。例如,未能在后台更新微件,或在应用启动之前未能调用预加载作业。
这还有助于您更好地了解某些作业是否因系统定义的约束条件而无法完成,而不是因明确设置的约束条件而无法完成。
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 引入了 getCpuHeadroom 和 getGpuHeadroom API,旨在为游戏和资源密集型应用提供可用 CPU 和 GPU 资源的估算值。通过这些方法,您可以评估应用或游戏如何以最佳方式改善系统运行状况,尤其是在与用于检测热节流的其他 Android 动态性能框架 (ADPF) API 搭配使用时。
在受支持的设备上使用 CpuHeadroomParams 和 GpuHeadroomParams,您可以自定义用于计算余量的时间范围,并在平均资源可用性或最低资源可用性之间进行选择。这有助于您相应地减少 CPU 或 GPU 资源用量,从而提升用户体验并延长电池续航时间。
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 đưa ứng dụng của mình đến với mọi người dùng.
API hỗ trợ tiếp cận được cải thiện
Android 16 bổ sung các API khác để nâng cao ngữ nghĩa giao diện người dùng, giúp cải thiện tính nhất quán cho những người dùng dựa vào các dịch vụ hỗ trợ tiếp cận, chẳng hạn như TalkBack.
Viền văn bản để tăng tối đa độ tương phản của văn bản
Người dùng có thị lực kém thường giảm độ nhạy cảm với độ tương phản, khiến họ khó phân biệt các đối tượng với nền. Để giúp những người dùng này, Android 16 ra mắt văn bản đường viền, thay thế văn bản có độ tương phản cao. Văn bản đường viền vẽ một vùng tương phản lớn hơn xung quanh văn bản để cải thiện đáng kể khả năng đọc.
Android 16 chứa các API AccessibilityManager mới để cho phép ứng dụng kiểm tra hoặc đăng ký trình nghe để xem chế độ này có được bật hay không. Điều này chủ yếu dành cho Bộ công cụ giao diện người dùng như Compose để mang lại trải nghiệm hình ảnh tương tự. Nếu duy trì thư viện Bộ công cụ giao diện người dùng hoặc ứng dụng của bạn thực hiện kết xuất văn bản tuỳ chỉnh bỏ qua lớp android.text.Layout, thì bạn có thể sử dụng lớp này để biết thời điểm bật văn bản đường viền.
Thêm thời lượng vào TtsSpan
Android 16 mở rộng TtsSpan bằng TYPE_DURATION, bao gồm ARG_HOURS, ARG_MINUTES và ARG_SECONDS. Điều này cho phép bạn trực tiếp chú thích thời lượng, đảm bảo đầu ra chuyển văn bản sang lời nói chính xác và nhất quán với các dịch vụ như TalkBack.
Hỗ trợ các phần tử có nhiều nhãn
Android hiện cho phép các thành phần trên giao diện người dùng lấy nhãn hỗ trợ tiếp cận từ một thành phần khác và hiện cho phép liên kết nhiều nhãn, một tình huống phổ biến trong nội dung web. Bằng cách giới thiệu một API dựa trên danh sách trong AccessibilityNodeInfo, Android có thể hỗ trợ trực tiếp các mối quan hệ nhiều nhãn này. Trong quá trình thay đổi này, chúng tôi đã ngừng sử dụng AccessibilityNodeInfo#setLabeledBy và #getLabeledBy thay vào đó là #addLabeledBy, #removeLabeledBy và #getLabeledByList.
Cải thiện khả năng hỗ trợ cho các phần tử có thể mở rộng
Android 16 thêm các API hỗ trợ tiếp cận cho phép bạn truyền tải trạng thái mở rộng hoặc thu gọn của các thành phần tương tác, chẳng hạn như trình đơn và danh sách có thể mở rộng. Bằng cách đặt trạng thái mở rộng bằng setExpandedState và gửi TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents với loại thay đổi nội dung CONTENT_CHANGE_TYPE_EXPANDED, bạn có thể đảm bảo rằng các trình đọc màn hình như TalkBack sẽ thông báo về các thay đổi trạng thái, mang lại trải nghiệm người dùng trực quan và toàn diện hơn.
Thanh tiến trình không xác định
Android 16 thêm RANGE_TYPE_INDETERMINATE, giúp bạn hiển thị RangeInfo cho cả tiện ích ProgressBar xác định và không xác định, cho phép các dịch vụ như TalkBack cung cấp phản hồi nhất quán hơn cho các chỉ báo tiến trình.
Hộp đánh dấu ba trạng thái
Các phương thức AccessibilityNodeInfo
getChecked và setChecked(int)
mới trong Android 16 hiện hỗ trợ trạng thái "đã đánh dấu một phần" ngoài trạng thái
"đã đánh dấu" và "chưa đánh dấu". Thao tác này sẽ thay thế boolean isChecked và setChecked(boolean) không dùng nữa.
Nội dung mô tả bổ sung
Khi mô tả ViewGroup, dịch vụ hỗ trợ tiếp cận sẽ kết hợp nhãn nội dung của các thành phần hiển thị con. Nếu bạn cung cấp contentDescription cho ViewGroup, các dịch vụ hỗ trợ tiếp cận sẽ giả định rằng bạn cũng đang ghi đè nội dung mô tả của các thành phần hiển thị con không thể làm tâm điểm. Điều này có thể gây ra vấn đề nếu bạn muốn gắn nhãn cho các mục như trình đơn thả xuống (ví dụ: "Font Family" (Gia đình phông chữ)) trong khi vẫn giữ nguyên lựa chọn hiện tại cho tính năng hỗ trợ tiếp cận (ví dụ: "Roboto"). Android 16 thêm setSupplementalDescription để bạn có thể cung cấp văn bản cung cấp thông tin về ViewGroup mà không ghi đè thông tin từ các thành phần con.
Các trường bắt buộc trên biểu mẫu
Android 16 thêm setFieldRequired vào AccessibilityNodeInfo để các ứng dụng có thể cho dịch vụ hỗ trợ tiếp cận biết rằng cần phải nhập vào trường biểu mẫu. Đây là một trường hợp quan trọng đối với người dùng khi điền vào nhiều loại biểu mẫu, ngay cả những trường hợp đơn giản như hộp đánh dấu điều khoản và điều kiện bắt buộc, giúp người dùng liên tục xác định và nhanh chóng di chuyển giữa các trường bắt buộc.
Đ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 新增了一项功能,可让 LE Audio 助听器用户调节助听器麦克风接收的环境声音的音量。在背景噪音过大或过小的情况下,这可能会很有用。
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 向 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) ...
}
Đ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ây và Hoàng hôn. COLOR_CORRECTION_MODE_CCT cho phép sử dụng COLOR_CORRECTION_COLOR_TEMPERATURE và COLOR_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:
Tính năng phát hiện cảnh ở chế độ ban đêm của camera
为了帮助应用了解何时切换到夜间模式相机会话以及何时从夜间模式相机会话切换出,Android 16 添加了 EXTENSION_NIGHT_MODE_INDICATOR。如果受支持,则可在 Camera2 内的 CaptureResult 中使用。
这是我们在Instagram 如何让用户拍出令人惊艳的低光照片博文中提到的即将推出的 API。该博文提供了有关如何实现夜间模式的实用指南,并附有一份案例研究,该案例研究将应用内夜间模式照片质量的提升与通过应用内相机分享的照片数量的增加联系起来。
Thao tác theo ý định chụp ảnh chuyển động
Android 16 thêm các thao tác theo Ý định chuẩn – ACTION_MOTION_PHOTO_CAPTURE và ACTION_MOTION_PHOTO_CAPTURE_SECURE – yêu cầu ứng dụng máy ảnh chụp một ảnh động và trả về ảnh đó.
Bạn phải truyền thêm một EXTRA_OUTPUT để kiểm soát vị trí ghi hình ảnh hoặc một Uri thông qua Intent.setClipData(ClipData). Nếu bạn không đặt ClipData, thì ClipData sẽ được sao chép vào đó khi bạn gọi Context.startActivity(Intent).
Các tính năng nâng cao hình ảnh Ultra HDR
Android 16 tiếp tục nỗ lực của chúng tôi nhằm mang đến chất lượng hình ảnh rực rỡ với hình ảnh UltraHDR. Thêm tính năng hỗ trợ cho hình ảnh UltraHDR ở định dạng tệp HEIC. Những hình ảnh này sẽ có loại ImageFormat
HEIC_ULTRAHDR và sẽ chứa một bản đồ độ lợi được nhúng tương tự
như định dạng JPEG UltraHDR hiện có. Chúng tôi cũng đang nỗ lực để hỗ trợ AVIF cho UltraHDR, vì vậy, hãy chú ý theo dõi.
Ngoài ra, Android 16 triển khai các thông số bổ sung trong UltraHDR từ tiêu chuẩn dự thảo ISO 21496-1, bao gồm cả khả năng lấy và đặt không gian màu mà toán học bản đồ độ lợi sẽ được áp dụng, cũng như hỗ trợ hình ảnh cơ sở được mã hoá HDR bằng bản đồ độ lợi SDR.
Đồ hoạ
Android 16 có các điểm cải tiế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 添加了 RuntimeColorFilter 和 RuntimeXfermode,让您可以创作阈值、Sepia 和 Hue Saturation 等复杂效果,并将其应用于绘制调用。从 Android 13 开始,您可以使用 AGSL 创建扩展 Shader 的自定义 RuntimeShader。新 API 反映了这一点,添加了由 AGSL 驱动的 RuntimeColorFilter(用于扩展 ColorFilter)和 Xfermode 效果,让您可以在源像素和目标像素之间实现基于 AGSL 的自定义合成和混合。
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 在搭载 Wi-Fi 6 的 802.11az 的受支持设备上为 Wi-Fi 位置信息添加了对强大的安全功能的支持,让应用能够将该协议的更高精确性、更高可伸缩性和动态调度与安全增强功能(包括基于 AES-256 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。802.11az 与 Wi-Fi 6 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。
API đo khoảng cách chung
Android 16 包含新的 RangingManager,它提供了在受支持的硬件上确定本地设备与远程设备之间的距离和角度的方法。RangingManager 支持使用各种测距技术,例如 BLE 信道声音探测、基于 BLE RSSI 的测距、超宽带和 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 中集成了最新版本的 Privacy Sandbox on Android,这是我们持续致力于开发可让用户放心地知道其隐私受到保护的技术的一部分。您可以访问我们的网站,详细了解 Privacy Sandbox on Android 开发者 Beta 版计划,以便顺利上手。不妨了解 SDK 运行时,它可让 SDK 在与其所服务的应用分离的专用运行时环境中运行,从而为用户数据收集和共享提供更强的保护措施。
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.
Key sharing API
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ấp và thu 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 hình ảnh và âm thanh tiêu chuẩn cho TV
Android 16 中的新 MediaQuality 软件包公开了一组标准化 API,用于访问音频和图片配置文件以及与硬件相关的设置。这样,在线播放应用就可以查询配置文件并将其动态应用于媒体:
- 使用更大动态范围进行母版制作的电影需要更高的色彩准确度,才能看清阴影中的细微细节并根据环境光线进行调整,因此,最好使用色彩准确度优先于亮度的配置文件。
- 体育赛事直播通常采用较窄的动态范围进行母版制作,但通常是在白天观看,因此偏向亮度而非色彩准确度的配置文件可以获得更好的效果。
- 完全交互式内容需要尽可能减少处理以缩短延迟时间,并且需要更高的帧速率,因此许多电视都附带游戏配置文件。
借助此 API,应用可以在个人资料之间切换,用户可以享受调整支持的电视,以便尽可能适合其内容。
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.