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 có 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, vui lòng truy cập 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à thay đổi về 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 bao gồm các API mới giúp mở rộng các tính năng cốt lõi của hệ thống Android.

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

  • 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.

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

Android 16 giúp nhà phát triển ứng dụng và người dùng có nhiều quyền kiểm soát và 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.

Nội dung 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.

Cảm ứng 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ị.

Công cụ và năng suất của nhà phát triển

Mặc dù hầu hết các hoạt động của chúng tôi nhằm cải thiện năng suất của bạn đều tập trung vào các công cụ như Android Studio, Jetpack Compose và 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.

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

In Android 16, the live wallpaper framework is gaining a new content API to address the challenges of dynamic, user-driven wallpapers. Currently, live wallpapers incorporating user-provided content require complex, service-specific implementations. Android 16 introduces WallpaperDescription and WallpaperInstance. WallpaperDescription lets you identify distinct instances of a live wallpaper from the same service. For example, a wallpaper that has instances on both the home screen and on the lock screen may have unique content in both places. The wallpaper picker and WallpaperManager use this metadata to better present wallpapers to users, streamlining the process for you to create diverse and personalized live wallpaper experiences.

Hiệu suất và pin

Android 16 ra mắt 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 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.

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.

Tự kiểm tra công việc hiệu quả hơn

API JobScheduler#getPendingJobReason() trả về lý do khiến một công việc có thể đang chờ xử lý. Tuy nhiên, một công việc có thể đang chờ xử lý vì nhiều lý do.

Trong Android 16, chúng tôi sẽ ra mắt một API mới JobScheduler#getPendingJobReasons(int jobId). API này sẽ trả về nhiều lý do khiến một công việc đang chờ xử lý, do cả các quy tắc ràng buộc rõ ràng do nhà phát triển đặt ra và các quy tắc ràng buộc ngầm do hệ thống đặt ra.

Chúng tôi cũng sẽ ra mắt JobScheduler#getPendingJobReasonsHistory(int jobId). Phương thức này trả về danh sách các thay đổi gần đây nhất về quy tắc ràng buộc.

Bạn nên sử dụng API này để gỡ lỗi lý do các công việc của bạn có thể không thực thi, đặc biệt là nếu bạn thấy tỷ lệ thành công của một số tác vụ giảm hoặc gặp lỗi về độ trễ của một số công việc hoàn thành. Ví dụ: không cập nhật được tiện ích ở chế độ nền hoặc không gọi được công việc tìm nạp trước trước khi khởi động ứng dụng.

Điều này cũng có thể giúp bạn hiểu rõ hơn liệu một số công việc nhất định có đang không hoàn tất do các quy tắc ràng buộc do hệ thống xác định hay do các quy tắc ràng buộc được đặt rõ ràng.

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

Tốc độ làm mới thích ứng (ARR), được giới thiệu trong Android 15, cho phép tốc độ làm mới màn hình trên phần cứng được hỗ trợ để thích ứng với tốc độ khung hình nội dung bằng cách sử dụng các bước VSync riêng biệt. Điều này giúp giảm mức tiêu thụ điện năng trong khi không cần phải chuyển đổi chế độ có thể gây ra hiện tượng giật.

Android 16 giới thiệu hasArrSupport()getSuggestedFrameRate(int) trong khi khôi phục getSupportedRefreshRates() để giúp ứng dụng của bạn dễ dàng tận dụng ARR hơn. RecyclerView 1.4 hỗ trợ ARR nội bộ khi định vị từ một thao tác hất hoặc cuộn mượt mà. Chúng tôi đang tiếp tục nỗ lực để thêm tính năng hỗ trợ ARR vào nhiều thư viện Jetpack hơn. Bài viết về tốc độ khung hình này đề cập đến nhiều API mà bạn có thể sử dụng để đặt tốc độ khung hình để ứng dụng của bạn có thể trực tiếp sử dụng ARR.

API Headroom 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 mang ứng dụng đến với mọi người dùng.

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

Android 16 adds additional APIs to enhance UI semantics that help improve consistency for users that rely on accessibility services, such as TalkBack.

Outline text for maximum text contrast

Users with low vision often have reduced contrast sensitivity, making it challenging to distinguish objects from their backgrounds. To help these users, Android 16 introduces outline text, replacing high contrast text, which draws a larger contrasting area around text to greatly improve legibility.

Android 16 contains new AccessibilityManager APIs to let your apps check or register a listener to see if this mode is enabled. This is primarily for UI Toolkits like Compose to offer a similar visual experience. If you maintain a UI Toolkit library or your app performs custom text rendering that bypasses the android.text.Layout class then you can use this to know when outline text is enabled.

Text with enhanced contrast before and after Android 16's new outline text accessibility feature

Duration added to TtsSpan

Android 16 extends TtsSpan with a TYPE_DURATION, consisting of ARG_HOURS, ARG_MINUTES, and ARG_SECONDS. This lets you directly annotate time duration, ensuring accurate and consistent text-to-speech output with services like TalkBack.

Support elements with multiple labels

Android currently allows UI elements to derive their accessibility label from another, and now offers the ability for multiple labels to be associated, a common scenario in web content. By introducing a list-based API within AccessibilityNodeInfo, Android can directly support these multi-label relationships. As part of this change, we've deprecated AccessibilityNodeInfo#setLabeledBy and #getLabeledBy in favor of #addLabeledBy, #removeLabeledBy, and #getLabeledByList.

Improved support for expandable elements

Android 16 adds accessibility APIs that allow you to convey the expanded or collapsed state of interactive elements, such as menus and expandable lists. By setting the expanded state using setExpandedState and dispatching TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents with a CONTENT_CHANGE_TYPE_EXPANDED content change type, you can ensure that screen readers like TalkBack announce state changes, providing a more intuitive and inclusive user experience.

Indeterminate ProgressBars

Android 16 adds RANGE_TYPE_INDETERMINATE, giving a way for you to expose RangeInfo for both determinate and indeterminate ProgressBar widgets, allowing services like TalkBack to more consistently provide feedback for progress indicators.

Tri-state CheckBox

The new AccessibilityNodeInfo getChecked and setChecked(int) methods in Android 16 now support a "partially checked" state in addition to "checked" and "unchecked." This replaces the deprecated boolean isChecked and setChecked(boolean).

Supplemental descriptions

When an accessibility service describes a ViewGroup, it combines content labels from its child views. If you provide a contentDescription for the ViewGroup, accessibility services assume you are also overriding the description of non-focusable child views. This can be problematic if you want to label things like a drop-down (for example, "Font Family") while preserving the current selection for accessibility (for example, "Roboto"). Android 16 adds setSupplementalDescription so you can provide text that provides information about a ViewGroup without overriding information from its children.

Required form fields

Android 16 adds setFieldRequired to AccessibilityNodeInfo so apps can tell an accessibility service that input to a form field is required. This is an important scenario for users filling out many types of forms, even things as simple as a required terms and conditions checkbox, helping users to consistently identify and quickly navigate between required fields.

Điện thoại làm đầ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.

Điều khiển â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 khả năng hỗ trợ cho người dùng máy ảnh chuyên nghiệp, cho phép phơi sáng tự động kết hợp cùng với việc điều chỉnh nhiệt độ màu và sắc độ 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 sang và chuyển khỏi 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 chuyển động hơn, đồng thời chúng tôi đang tiếp tục cải thiện hình ảnh UltraHDR bằng cách hỗ trợ mã hoá HEIC và các tham số mới từ tiêu chuẩn dự thảo ISO 21496-1.

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.

public void setISOPriority() {
  ...
  int[] availablePriorityModes =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_AE_AVAILABLE_PRIORITY_MODES);
  ...
  // 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);
  reqBuilder.set(CaptureRequest.SENSOR_SENSITIVITY,
      TEST_SENSITIVITY_VALUE);
  CaptureRequest request = reqBuilder.build();
  ...
}

Đ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.

public void setCCT() {
  ...
  Range<Integer> colorTemperatureRange =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE);
  // Set to manual mode to enable CCT mode
  reqBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_MODE_OFF);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE,
      CameraMetadata.COLOR_CORRECTION_MODE_CCT);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE, 5000);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TINT, 30);
  CaptureRequest request = reqBuilder.build();
  ...
}

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.

Phát hiện cảnh ở chế độ ban đêm của máy ảnh

Để 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 adds standard Intent actions — ACTION_MOTION_PHOTO_CAPTURE, and ACTION_MOTION_PHOTO_CAPTURE_SECURE — which request that the camera application capture a motion photo and return it.

You must either pass an extra EXTRA_OUTPUT to control where the image will be written, or a Uri through Intent.setClipData(ClipData). If you don't set a ClipData, it will be copied there for you when calling Context.startActivity(Intent).

An example of a motion photo, showing the still image followed by the motion playback.

Tính năng nâng cao hình ảnh UltraHDR

Hình minh hoạ chất lượng hình ảnh Dải động tiêu chuẩn (SDR) so với Dải động cao (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 bao gồm 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 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 các tiến bộ mới nhất trong công nghệ không dây và giao tiếp.

Đ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.

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 đa phương tiện.

Các điểm cải tiến đối với công cụ chọn ảnh

The photo picker provides a safe, built-in way for users to grant your app access to selected images and videos from both local and cloud storage, instead of their entire media library. Using a combination of Modular System Components through Google System Updates and Google Play services, it's supported back to Android 4.4 (API level 19). Integration requires just a few lines of code with the associated Android Jetpack library.

Android 16 includes the following improvements to the photo picker:

  • Embedded photo picker: New APIs that enable apps to embed the photo picker into their view hierarchy. This allows it to feel like a more integrated part of the app while still leveraging the process isolation that allows users to select media without the app needing overly broad permissions. To maximize compatibility across platform versions and simplify your integration, you'll want to use the forthcoming Android Jetpack library if you want to integrate the embedded photo picker.
  • Cloud search in photo picker: New APIs that enable searching from the cloud media provider for the Android photo picker. Search functionality in the photo picker is coming soon.

Video chuyên nghiệp nâng cao

Android 16 introduces support for the Advanced Professional Video (APV) codec which is designed to be used for professional level high quality video recording and post production.

The APV codec standard has the following features:

  • Perceptually lossless video quality (close to raw video quality)
  • Low complexity and high throughput intra-frame-only coding (without pixel domain prediction) to better support editing workflows
  • Support for high bit-rate range up to a few Gbps for 2K, 4K and 8K resolution content, enabled by a lightweight entropy coding scheme
  • Frame tiling for immersive content and for enabling parallel encoding and decoding
  • Support for various chroma sampling formats and bit-depths
  • Support for multiple decoding and re-encoding without severe visual quality degradation
  • Support multi-view video and auxiliary video like depth, alpha, and preview
  • Support for HDR10/10+ and user-defined metadata

A reference implementation of APV is provided through the OpenAPV project. Android 16 will implement support for the APV 422-10 Profile that provides YUV 422 color sampling along with 10-bit encoding and for target bitrates of up to 2Gbps.

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 trong bản dùng thử dành cho nhà phát triển sẽ thêm ACTIVITY_INTENSITY, một loại dữ liệu mới đượ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 cần có 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ợ hồ sơ sức khoẻ. Đ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. API này đang ở giai đoạn tiếp cận sớm. Nếu bạn muốn tham gia, hãy đăng ký tham gia chương trình tiếp cận sớm của chúng tôi.

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 bảo mật cho ứng dụng và bảo vệ dữ liệu của ứng dụng.

API chia sẻ khoá

Android 16 adds APIs that support sharing access to Android Keystore keys with other apps. The new KeyStoreManager class supports granting and revoking access to keys by app uid, and includes an API for apps to access shared keys.

Kiểu dáng thiết bị

Android 16 hỗ trợ ứ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 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ổ sung cho trải nghiệm người dùng khi thiết bị được sử dụng bằng nhiều ngôn ngữ.

Văn bản dọc

Android 16 bổ sung tính năng hỗ trợ cấp thấp để hiển thị và đo lường văn bản theo chiều dọc nhằm cung cấp tính năng hỗ trợ viết theo chiều dọc cơ bản cho nhà phát triển thư viện. Điều này đặc biệt hữu ích đối với các ngôn ngữ như tiếng Nhật thường sử dụng hệ thống viết theo chiều dọc. Thêm cờ mới, VERTICAL_TEXT_FLAG vào lớp Paint. Khi bạn đặt cờ này bằng Paint.setFlags, API đo lường văn bản của Paint sẽ báo cáo các tiến trình dọc thay vì tiến trình ngang và Canvas sẽ vẽ văn bản theo chiều dọc.

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

Users can now customize their measurement system in regional preferences within Settings. The user preference is included as part of the locale code, so you can register a BroadcastReceiver on ACTION_LOCALE_CHANGED to handle locale configuration changes when regional preferences change.

Using formatters can help match the local experience. For example, "0.5 in" in English (United States), is "12,7 mm" for a user who has set their phone to English (Denmark) or who uses their phone in English (United States) with the metric system as the measurement system preference.

To find these settings, open the Settings app and navigate to System > Languages & region.