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 của 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 introduces progress-centric notifications to help users seamlessly track user-initiated, start-to-end journeys.

Notification.ProgressStyle is a new notification style that lets you create progress-centric notifications. Key use cases include rideshare, delivery, and navigation. Within the Notification.ProgressStyle class, you can denote states and milestones in a user journey using points and segments.

To learn more, see the Progress-centric notifications documentation page.

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 bổ sung các API mới để giúp bạn bật ảnh động xem trước thao tác quay lại của hệ thống trong tính năng điều hướng bằng cử chỉ, chẳng hạn như ảnh động quay lại màn hình chính. Việc đăng ký onBackInvokedCallback bằng PRIORITY_SYSTEM_NAVIGATION_OBSERVER mới cho phép ứng dụng của bạn nhận lệnh gọi onBackInvoked thông thường bất cứ khi nào hệ thống xử lý thao tác quay lại mà không ảnh hưởng đến luồng thao tác quay lại thông thường.

Android 16 cũng thêm finishAndRemoveTaskCallback()moveTaskToBackCallback. Bằng cách đăng ký các lệnh gọi lại này với OnBackInvokedDispatcher, hệ thống có thể kích hoạt các hành vi cụ thể và phát ảnh động tương ứng trước khi thao tác vuốt ngược được gọi.

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

Android has exposed control over the haptic actuator ever since its inception.

Android 11 added support for more complex haptic effects that more advanced actuators could support through VibrationEffect.Compositions of device-defined semantic primitives.

Android 16 adds haptic APIs that let apps define the amplitude and frequency curves of a haptic effect while abstracting away differences between device capabilities.

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

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 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 đượ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.

Tự kiểm tra 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

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

The SystemHealthManager introduces the getCpuHeadroom and getGpuHeadroom APIs, designed to provide games and resource-intensive apps with estimates of available CPU and GPU resources. These methods offer a way for you to gauge how your app or game can best improve system health, particularly when used in conjunction with other Android Dynamic Performance Framework (ADPF) APIs that detect thermal throttling.

By using CpuHeadroomParams and GpuHeadroomParams on supported devices, you can customize the time window used to compute the headroom and select between average or minimum resource availability. This can help you reduce your CPU or GPU resource usage accordingly, leading to better user experiences and improved battery life.

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

Điều khiển âm lượng môi trường xung quanh cho thiết bị trợ thính LEA

Android 16 adds the capability for users of LE Audio hearing aids to adjust the volume of ambient sound that is picked up by the hearing aid's microphones. This can be helpful in situations where background noise is too loud or too quiet.

Camera

Android 16 tăng cườ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 adds new hybrid auto-exposure modes to Camera2, allowing you to manually control specific aspects of exposure while letting the auto-exposure (AE) algorithm handle the rest. You can control ISO + AE, and exposure time + AE, providing greater flexibility compared to the current approach where you either have full manual control or rely entirely on auto-exposure.

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

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

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

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

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

Đ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 thêm các thao tác theo Ý định chuẩn – ACTION_MOTION_PHOTO_CAPTUREACTION_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).

Ví dụ về ảnh chuyển động, cho thấy ảnh tĩnh, sau đó là ảnh chuyển động.

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

private val thresholdEffectString = """
    uniform half threshold;

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

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

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

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

In Android 16, new APIs are being introduced for binding your companion app service. Service will be bound when BLE is in range and Bluetooth is connected and service will be unbound when BLE is out of range or Bluetooth is disconnected. App will receives a new 'onDevicePresenceEvent()' callback based on various of DevicePresenceEvent. More details can be found in '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 đ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 in the developer preview adds ACTIVITY_INTENSITY, a new data type defined according to World Health Organization guidelines around moderate and vigorous activity. Each record requires the start time, the end time and whether the activity intensity is moderate or vigorous.

Health Connect also contains updated APIs supporting health records. This allows apps to read and write medical records in FHIR format with explicit user consent. This API is in an early access program. If you'd like to participate, sign up to be part of our early access program.

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

Android 16 incorporates the latest version of the Privacy Sandbox on Android, part of our ongoing work to develop technologies where users know their privacy is protected. Our website has more about the Privacy Sandbox on Android developer beta program to help you get started. Check out the SDK Runtime which allows SDKs to run in a dedicated runtime environment separate from the app they are serving, providing stronger safeguards around user data collection and sharing.

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 adds low-level support for rendering and measuring text vertically to provide foundational vertical writing support for library developers. This is particularly useful for languages like Japanese that commonly use vertical writing systems. A new flag, VERTICAL_TEXT_FLAG, has been added to the Paint class. When this flag is set using Paint.setFlags, Paint's text measurement APIs will report vertical advances instead of horizontal advances, and Canvas will draw text vertically.

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.