Tổng quan về các tính năng và API

Android 13 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 dưới đây giúp bạn tìm hiểu các tính năng cho ứng dụng cũng như 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, 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). Ngoài ra, để tìm hiểu những thay đổi của nền tảng có thể ảnh hưởng đến ứng dụng của bạn, hãy nhớ tham khảo các thay đổi về hành vi của Android 13 đối với ứng dụng nhắm đến Android 13tất cả ứng dụng.

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

Biểu tượng ứng dụng theo chủ đề

Người dùng chọn sử dụng các biểu tượng ứng dụng theo chủ đề
Chọn sử dụng biểu tượng ứng dụng theo chủ đề trên Android 13

Kể từ Android 13, bạn có thể chọn sử dụng các biểu tượng ứng dụng theo chủ đề. Với tính năng này, biểu tượng ứng dụng trong các trình chạy Android được hỗ trợ sẽ được phủ màu để kế thừa màu của hình nền và các giao diện khác mà người dùng chọn.

Để hỗ trợ tính năng này, ứng dụng của bạn phải cung cấp cả biểu tượng thích ứng và biểu tượng ứng dụng đơn sắc, đồng thời trỏ đến biểu tượng ứng dụng đơn sắc ở phần tử <adaptive-icon> trong tệp kê khai. Nếu người dùng đã bật biểu tượng ứng dụng theo chủ đề (nói cách khác là bật nút bật/tắt Biểu tượng theo chủ đề trong phần cài đặt hệ thống) và trình chạy hỗ trợ tính năng này, thì hệ thống sẽ sử dụng màu của hình nền và giao diện mà người dùng chọn để xác định màu phủ, sau đó sẽ áp dụng cho biểu tượng ứng dụng đơn sắc.

Màn hình chính KHÔNG hiển thị biểu tượng ứng dụng theo chủ đề mà thay vào đó sẽ hiện biểu tượng ứng dụng thích ứng hoặc tiêu chuẩn trong bất kỳ trường hợp nào sau đây:

  • Nếu người dùng chưa bật biểu tượng ứng dụng theo chủ đề
  • Nếu ứng dụng của bạn không cung cấp biểu tượng ứng dụng đơn sắc
  • Nếu trình chạy không hỗ trợ biểu tượng ứng dụng theo chủ đề

Để biết thêm thông tin và hướng dẫn, hãy xem bài viết Biểu tượng thích ứng.

Lựa chọn ưu tiên về ngôn ngữ cho mỗi ứng dụng

Ngôn ngữ cho mỗi ứng dụng trong phần cài đặt hệ thống

Trong nhiều trường hợp, người dùng đa ngôn ngữ đặt ngôn ngữ hệ thống của họ thành một ngôn ngữ (chẳng hạn như tiếng Anh). Tuy nhiên, họ muốn chọn các ngôn ngữ khác cho những ứng dụng cụ thể, chẳng hạn như tiếng Hà Lan, tiếng Trung hoặc tiếng Hindi. Nhằm giúp ứng dụng mang lại trải nghiệm tốt hơn cho những người dùng này, Android 13 ra mắt các tính năng sau cho các ứng dụng hỗ trợ nhiều ngôn ngữ:

  • Cài đặt hệ thống: Một vị trí tập trung mà người dùng có thể chọn một ngôn ngữ ưa thích cho mỗi ứng dụng.

    Ứng dụng phải khai báo thuộc tính android:localeConfig trong tệp kê khai của ứng dụng để cho hệ thống biết rằng ứng dụng này hỗ trợ nhiều ngôn ngữ. Để tìm hiểu thêm, hãy xem hướng dẫn tạo một tệp tài nguyên và khai báo tệp này trong tệp kê khai của ứng dụng.

  • API bổ sung: Những API công khai này, chẳng hạn như các phương thức setApplicationLocales()getApplicationLocales() trong LocaleManager, cho phép ứng dụng đặt một ngôn ngữ khác với ngôn ngữ hệ thống vào thời gian chạy.

    Các API này tự động đồng bộ hoá với chế độ cài đặt hệ thống; do đó, ứng dụng dùng các API này để tạo bộ chọn ngôn ngữ tuỳ chỉnh trong ứng dụng sẽ đảm bảo mang đến trải nghiệm nhất quán cho người dùng, bất kể họ ưu tiên ngôn ngữ nào. API công khai cũng giúp bạn giảm số lượng mã nguyên mẫu, hỗ trợ tệp APK phân tách và hỗ trợ tính năng Tự động sao lưu cho ứng dụng để lưu trữ chế độ cài đặt ngôn ngữ của người dùng ở cấp ứng dụng.

    Để tương thích ngược với các phiên bản Android trước, các API tương đương cũng có trong AndroidX. Bạn nên sử dụng các API được thêm vào Appcompat 1.6.0-beta01 trở lên.

Những ứng dụng không hỗ trợ nhiều ngôn ngữ sẽ không chịu ảnh hưởng của những thay đổi này.

Cải thiện khả năng hỗ trợ văn bản và ngôn ngữ

Android 13 có một số điểm cải tiến về văn bản và ngôn ngữ nhằm giúp bạn mang đến trải nghiệm chỉn chu hơn. Phần sau đây mô tả những điểm cải tiến sau đây:

Dấu gạch nối nhanh hơn

Dấu gạch ngang giúp văn bản được xuống dòng dễ đọc hơn và giúp giao diện người dùng thích ứng hơn. Kể từ Android 13, hiệu suất dấu gạch nối được tối ưu hoá lên đến 200%. Do đó, bạn có thể bật tính năng này trong TextView mà hầu như không ảnh hưởng đến hiệu suất kết xuất. Để giúp việc gạch nối nhanh hơn, hãy sử dụng tần suất fullFast hoặc normalFast trong setHyphenationFrequency().

API Chuyển đổi văn bản

Những người nói các ngôn ngữ như tiếng Nhật và tiếng Trung sử dụng phương thức nhập theo phiên âm chữ cái. Phương thức này thường làm chậm tốc độ tìm kiếm và các tính năng như tự động hoàn thành. Trên Android 13, các ứng dụng có thể gọi API chuyển đổi văn bản (mới) để người dùng có thể tìm thấy nội dung họ đang tìm nhanh hơn và dễ dàng hơn. Trước đây, ví dụ như khi tìm kiếm, người dùng Nhật Bản phải thực hiện các bước sau:

  1. Nhập chữ Hiragana dưới dạng cách phát âm theo phiên âm của cụm từ tìm kiếm (chẳng hạn như địa điểm hoặc tên ứng dụng)
  2. Sử dụng bàn phím để chuyển đổi các ký tự Hiragana sang Kanji
  3. Tìm kiếm lại bằng cách sử dụng các ký tự Kanji
  4. Cuối cùng cũng xem được kết quả tìm kiếm

Với API chuyển đổi văn bản mới, người dùng Nhật Bản có thể nhập chữ Hiragana và xem ngay kết quả tìm kiếm bằng chữ Kanji, bỏ qua bước 2 và 3.

Cải thiện chiều cao dòng cho chữ viết không phải chữ Latinh

Android 13 cải thiện cách hiển thị chữ viết không phải chữ Latinh (chẳng hạn như tiếng Tamil, tiếng Miến Điện, tiếng Telugu và tiếng Tây Tạng) bằng cách sử dụng chiều cao dòng được điều chỉnh cho phù hợp với từng ngôn ngữ. Chiều cao dòng mới ngăn việc cắt đoạn và cải thiện vị trí của ký tự. Ứng dụng của bạn có thể tận dụng những điểm cải tiến này chỉ bằng cách nhắm đến Android 13. Hãy nhớ kiểm thử ứng dụng của bạn khi sử dụng chế độ giãn cách dòng mới vì những thay đổi này có thể ảnh hưởng đến giao diện người dùng của bạn đối với các ngôn ngữ không phải tiếng Latinh.

Chiều cao dòng đã bị cắt bớt trong Android 12 (ở trên) hiện được xác định vị trí tốt hơn và không bị cắt trong Android 13 (bên dưới).

Cải tiến tính năng xuống dòng tự động bằng tiếng Nhật

Kể từ Android 13, TextView có thể gói văn bản theo Bunsetsu (đơn vị từ nhỏ nhất phát âm thanh tự nhiên) hoặc cụm từ thay vì theo ký tự để tạo ra các ứng dụng tiếng Nhật tinh tế và dễ đọc hơn. Bạn có thể tận dụng tính năng gói này bằng cách sử dụng android:lineBreakWordStyle="phrase" với TextView.

Xuống dòng tự động bằng tiếng Nhật với kiểu cụm từ được bật (ở bên dưới) và không có (ở trên).

Cập nhật thư viện Unicode

Android 13 bổ sung các điểm cải tiến, bản sửa lỗi và thay đổi mới nhất có trong IME ICU 70, Unicode CLDR 40Unicode 14.0.

Sau đây là một số thay đổi đáng chú ý:

  • Tiếng Anh (Canada) en‑CA và tiếng Anh (Cộng hòa Philippines) en‑PH đều sử dụng tài nguyên dịch tiếng Anh (Hoa Kỳ) en khi không có tài nguyên dịch nào thay vì tiếng Anh (Vương quốc Anh) en‑GB.
  • Danh mục số nhiều many đã được giới thiệu cho tiếng Tây Ban Nha es, tiếng Ý it, tiếng Bồ Đào Nha pt và tiếng Bồ Đào Nha (Bồ Đào Nha) pt‑PT. Tương tự như tiếng Pháp được giới thiệu trong CLDR phiên bản 38, cách này được sử dụng cho số lượng lớn.

Phông chữ vectơ màu

Biểu tượng cảm xúc vectơ COLRv1 (bên trái) và biểu tượng cảm xúc bitmap (bên phải)

Kể từ Android 13, hệ thống sẽ hỗ trợ tính năng kết xuất phông chữ COLR phiên bản 1 (COLRv1) và cập nhật biểu tượng cảm xúc hệ thống thành định dạng COLRv1. COLRv1 là định dạng phông chữ nhỏ gọn, hiển thị nhanh chóng và sắc nét ở mọi kích thước.

Đối với hầu hết ứng dụng, hệ thống xử lý mọi thứ và COLRv1 vẫn hoạt động. Tuy nhiên, nếu ứng dụng triển khai tính năng kết xuất văn bản riêng và sử dụng phông chữ của hệ thống, bạn nên kiểm thử tính năng kết xuất biểu tượng cảm xúc.

Để tìm hiểu thêm về COLRv1, hãy xem các tài nguyên sau:

API vị trí Cài đặt nhanh

Cài đặt nhanh trong ngăn thông báo là một cách thuận tiện để người dùng thay đổi chế độ cài đặt hoặc thực hiện các thao tác nhanh mà không cần rời khỏi ngữ cảnh của ứng dụng. Đối với những ứng dụng cung cấp thẻ thông tin tuỳ chỉnh, chúng tôi sẽ giúp người dùng khám phá và thêm thẻ thông tin của bạn vào trình đơn Cài đặt nhanh dễ dàng hơn. Nhờ sử dụng API vị trí thẻ thông tin mới, ứng dụng của bạn hiện có thể nhắc người dùng trực tiếp thêm thẻ thông tin tuỳ chỉnh vào tập hợp các thẻ thông tin Cài đặt nhanh đang hoạt động. Hộp thoại hệ thống mới cho phép người dùng thêm thẻ thông tin trong một bước mà không cần rời khỏi ứng dụng, thay vì phải chuyển đến phần Cài đặt nhanh để thêm thẻ thông tin.

Một hộp thoại hỏi xem người dùng có muốn thêm một thẻ thông tin vào trình đơn Cài đặt nhanh hay không.

Xem trước bảng nhớ tạm

Kể từ Android 13, hệ thống sẽ hiển thị thông báo xác nhận bằng hình ảnh tiêu chuẩn khi nội dung được thêm vào bảng nhớ tạm. Xác nhận mới thực hiện những việc sau:

  • Xác nhận nội dung đã được sao chép thành công.
  • Cung cấp bản xem trước nội dung đã sao chép.

Tính năng này chuẩn hoá các thông báo mà các ứng dụng hiển thị sau khi sao chép, đồng thời cung cấp cho người dùng nhiều quyền kiểm soát hơn đối với bảng nhớ tạm của họ. Để biết thêm thông tin, hãy truy cập trang tính năng Sao chép và dán.

Sao chép/Dán tiện ích
Giao diện người dùng mới sẽ hiển thị khi nội dung nhập vào bảng nhớ tạm.

Cử chỉ vuốt ngược để dự đoán

Android 13 ra mắt tính năng xem trước thao tác quay lại cho các thiết bị Android như điện thoại, thiết bị màn hình lớn và thiết bị có thể gập lại. Để hỗ trợ tính năng này, bạn phải cập nhật ứng dụng của mình.

Để xem tài liệu chi tiết, hãy xem phần Cập nhật ứng dụng để hỗ trợ cử chỉ vuốt ngược để dự đoán. Bạn cũng có thể thử lớp học lập trình của chúng tôi.

Bluetooth Âm thanh năng lượng thấp

Âm thanh năng lượng thấp (LE) là âm thanh không dây được thiết kế để thay thế Bluetooth phiên bản cũ và cho phép một số trường hợp sử dụng cũng như cấu trúc liên kết kết nối nhất định. Thiết bị này cho phép người dùng chia sẻ và phát âm thanh của họ cho bạn bè và gia đình hoặc đăng ký các chương trình phát sóng công khai về thông tin, nội dung giải trí hoặc khả năng tiếp cận. Giao diện này được thiết kế để đảm bảo người dùng có thể nhận được âm thanh có độ chân thực cao mà không làm ảnh hưởng đến thời lượng pin, đồng thời có thể chuyển đổi liền mạch giữa các trường hợp sử dụng mà Bluetooth phiên bản cũ không làm được. Kể từ Android 13, hệ thống sẽ tích hợp sẵn tính năng hỗ trợ Âm thanh năng lượng thấp. Vì vậy, nhà phát triển sẽ có thể sử dụng các tính năng này miễn phí trên các thiết bị tương thích.

MIDI 2.0

Kể từ Android 13, hệ thống sẽ hỗ trợ tiêu chuẩn MIDI 2.0, bao gồm cả khả năng kết nối phần cứng MIDI 2.0 qua USB. Tiêu chuẩn này cung cấp các tính năng như tăng độ phân giải cho bộ điều khiển, hỗ trợ tốt hơn ngữ điệu không phải phương Tây và hiệu suất biểu đạt hơn khi sử dụng bộ điều khiển theo từng ghi chú.

Cải thiện hiệu quả của màn hình chờ

Android 13 cải thiện hiệu quả của màn hình chờ động trong API Splash Screen:

  • Hệ thống dự đoán thời lượng ảnh động trực tiếp từ AnimatedVectorDrawable. Trước Android 13, bạn cần đặt trực tiếp windowSplashScreenAnimationDuration.

  • Sử dụng thuộc tính windowSplashScreenBehavior mới để kiểm soát nhiều hơn việc ứng dụng của bạn có luôn hiển thị biểu tượng trên màn hình chờ trong Android 13 trở lên hay không.

Để xem tài liệu chi tiết, hãy xem phần Màn hình chờ.

Tối ưu hoá ART

Trong Android 13 (API cấp 33) trở lên, ART giúp việc chuyển đổi sang và từ mã gốc nhanh hơn nhiều, với các lệnh gọi JNI hiện nhanh hơn gấp 2,5 lần. Quy trình xử lý tham chiếu thời gian chạy cũng được làm lại để gần như không chặn, giúp giảm tình trạng giật. Ngoài ra, bạn có thể dùng API công khai Reference.refersTo() để xác nhận lại các đối tượng không truy cập được sớm hơn. Bạn sẽ nhận thấy rằng trình diễn giải giờ đây nhanh hơn nhờ hoạt động tra cứu lớp và phương thức được tối ưu hoá. ART cũng thực hiện quy trình xác minh mã byte nhiều hơn tại thời điểm cài đặt, giúp tránh chi phí xác minh trong thời gian chạy và giữ nhanh thời gian khởi động ứng dụng.

Quyền riêng tư và bảo mật

Tính năng xuất an toàn hơn cho bộ thu đã đăng ký theo bối cảnh

Để giúp trình thu nhận trong thời gian chạy an toàn hơn, Android 13 cho phép ứng dụng của bạn chỉ định xem có nên xuất broadcast receiver đã đăng ký và hiển thị cho các ứng dụng khác trên thiết bị hay không. Trên các phiên bản Android trước, bất kỳ ứng dụng nào trên thiết bị đều có thể gửi thông báo truyền tin không được bảo vệ tới một bộ thu đã đăng ký động, trừ phi bộ thu đó được bảo vệ bằng một quyền chữ ký.

Cấu hình xuất này có sẵn trên các ứng dụng thực hiện ít nhất một trong các mục sau:

Công cụ chọn ảnh

Android 13 (API cấp 33) trở lên có công cụ chọn ảnh. Khi ứng dụng của bạn chạy công cụ chọn ảnh, người dùng sẽ chọn các hình ảnh và video cụ thể để chia sẻ với ứng dụng (chẳng hạn như ảnh hồ sơ), thay vì cấp cho ứng dụng quyền truy cập để xem toàn bộ thư viện nội dung nghe nhìn. Bạn nên sử dụng cách này để truy cập vào ảnh và video của người dùng.

Công cụ chọn ảnh giúp tăng cường quyền riêng tư cho người dùng vì ứng dụng của bạn không cần khai báo quyền khi bắt đầu chạy. Ngoài ra, công cụ chọn ảnh còn cung cấp giao diện người dùng tích hợp sẵn, được chuẩn hoá cho các ứng dụng, giúp tạo trải nghiệm người dùng nhất quán hơn.

Quyền mới khi bắt đầu chạy cho các thiết bị Wi-Fi ở gần

Android 13 (API cấp 33) ra mắt một quyền khi bắt đầu chạy mới trong nhóm quyền NEARBY_DEVICES dành cho các ứng dụng quản lý kết nối của thiết bị với các điểm truy cập lân cận qua Wi-Fi. Các ứng dụng như vậy phải khai báo quyền mới (NEARBY_WIFI_DEVICES) khi gọi một số API Wi-Fi. Ngoài ra, miễn là các ứng dụng không lấy được thông tin vị trí thực tế từ API Wi-Fi, thì các ứng dụng đó không cần khai báo quyền ACCESS_FINE_LOCATION khi nhắm đến Android 13 trở lên.

Tìm hiểu thêm về quyền đối với thiết bị Wi-Fi ở gần.

Quyền mới để sử dụng chuông báo chính xác

Nếu ứng dụng của bạn nhắm đến Android 13 trở lên, thì bạn có thể dùng quyền USE_EXACT_ALARM. Quyền này được tự động cấp cho ứng dụng của bạn. Tuy nhiên, để ứng dụng dùng quyền này, ứng dụng đó phải đáp ứng ít nhất một trong các tiêu chí sau:

  • Ứng dụng của bạn là ứng dụng đồng hồ báo thức hoặc ứng dụng hẹn giờ.
  • Ứng dụng của bạn là một ứng dụng lịch hiện thông báo về các sự kiện sắp tới.

Nếu ứng dụng của bạn đặt các chuông báo chính xác nhưng không đáp ứng cả hai trường hợp nêu trong danh sách trước đó, hãy tiếp tục khai báo quyền SCHEDULE_EXACT_ALARM và chuẩn bị cho tình huống trong đó người dùng từ chối quyền truy cập vào ứng dụng của bạn.

Quyền có thể hạ cấp dành cho nhà phát triển

Kể từ Android 13, ứng dụng của bạn có thể thu hồi quyền truy cập không dùng đến khi bắt đầu chạy. API này cho phép ứng dụng của bạn thực hiện các nhiệm vụ nâng cao quyền riêng tư, chẳng hạn như:

  • Thu hồi các quyền không dùng đến.
  • Tuân thủ các phương pháp hay nhất về quyền để cải thiện lòng tin của người dùng. Bạn nên cân nhắc hiển thị cho người dùng một hộp thoại cho biết các quyền mà bạn đã chủ động thu hồi.

Lược đồ chữ ký APK phiên bản 3.1

Android 13 bổ sung tính năng hỗ trợ cho Lược đồ chữ ký APK v3.1, cải tiến dựa trên Lược đồ chữ ký APK v3 hiện có. Giao thức này giải quyết một số vấn đề đã biết bằng Lược đồ chữ ký APK v3 liên quan đến việc xoay vòng. Cụ thể, lược đồ chữ ký v3.1 hỗ trợ tính năng nhắm mục tiêu theo phiên bản SDK, cho phép xoay vòng để nhắm mục tiêu bản phát hành sau này của nền tảng.

Lược đồ chữ ký phiên bản 3.1 sử dụng mã nhận dạng khối không nhận dạng được trên 12L trở xuống. Do đó, nền tảng áp dụng hành vi của trình ký như sau:

  • Các thiết bị chạy Android 13 trở lên sử dụng trình ký xoay vòng trong khối phiên bản 3.1.
  • Các thiết bị chạy các phiên bản Android cũ hơn sẽ bỏ qua trình ký xoay vòng và thay vào đó, sử dụng trình ký ban đầu trong khối phiên bản 3.0.

Những ứng dụng chưa xoay vòng khoá ký sẽ không yêu cầu thực hiện thêm thao tác nào. Bất cứ khi nào các ứng dụng này chọn xoay, hệ thống sẽ áp dụng lược đồ chữ ký v3.1 theo mặc định.

Các ứng dụng đã xoay vòng và muốn tiếp tục sử dụng khoá ký xoay vòng trong khối ký phiên bản 3.0 cần cập nhật lệnh gọi apksigner:

apksigner sign --ks keystore.jks |
  --key key.pk8 --cert cert.x509.pem
  --rotation-min-sdk-version API_LEVEL
  [signer_options] app-name.apk

...trong đó API_LEVEL là 32 trở xuống.

Cải thiện tính năng báo cáo lỗi trong Kho khoá và KeyMint

Đối với các ứng dụng tạo khoá, Keystore và KeyMint hiện cung cấp các chỉ báo lỗi chi tiết và chính xác hơn. Chúng tôi thêm một hệ phân cấp lớp ngoại lệ trong java.security.ProviderException, với các ngoại lệ dành riêng cho Android bao gồm mã lỗi Kho khoá/KeyMint và liệu lỗi này có thể thử lại hay không. Bạn cũng có thể sửa đổi các phương thức để tạo và sử dụng khoá (ký, mã hoá) để gửi các ngoại lệ mới. Tính năng báo cáo lỗi được cải thiện không chỉ giới hạn ở việc tạo khoá và giờ đây sẽ cung cấp cho bạn những thông tin cần thiết để thử lại việc tạo khoá.

Hỗ trợ máy tính bảng và màn hình lớn

Android 13 được xây dựng dựa trên các tính năng tối ưu hoá cho máy tính bảng được giới thiệu trong Android 12 và bản cập nhật tính năng 12L, bao gồm tối ưu hoá cho giao diện người dùng hệ thống, khả năng đa nhiệm hiệu quả hơn và chế độ tương thích được cải thiện. Trong quá trình kiểm thử, hãy đảm bảo ứng dụng của bạn trông đẹp nhất trên máy tính bảng và các thiết bị màn hình lớn khác.

Để biết thêm thông tin về các tính năng mới và nội dung cần kiểm thử, hãy xem trang Hỗ trợ máy tính bảng và màn hình lớn.

Đồ hoạ

Chương trình đổ bóng có thể lập trình

Một chương trình đổ bóng ảnh động AGSL, được điều chỉnh từ Chương trình đổ bóng GLSL này.

Kể từ Android 13, hệ thống này sẽ hỗ trợ các đối tượng RuntimeShader có thể lập trình, với hành vi được xác định bằng Ngôn ngữ tạo bóng đồ hoạ Android (AGSL). AGSL có chung nhiều cú pháp với GLSL, nhưng hoạt động trong công cụ kết xuất Android để tuỳ chỉnh tính năng vẽ trong canvas của Android cũng như lọc nội dung Khung hiển thị. Android sử dụng nội bộ các chương trình đổ bóng này để triển khai hiệu ứng gợn sóng, làm mờkéo quá mức. Android 13 trở lên cho phép bạn tạo các hiệu ứng nâng cao tương tự cho ứng dụng của mình.

Cải tiến Choreographer

Android 13 giới thiệu các phương thức API công khai cho ChoreographerASurfaceControl nhằm cung cấp cho ứng dụng thêm thông tin về tiến trình kết xuất khung hình có thể có, đồng thời bổ sung thêm ngữ cảnh vào SurfaceFlinger về vòng đời khung hình. Tương tự như trước đây, ứng dụng có thể đăng lệnh gọi lại lên Choreographer và nhận thông tin về tiến trình kết xuất khung hình. Trong Android 13 (API cấp 33), Choreographer sẽ trả về nhiều thời gian trình chiếu và thời hạn kết xuất khung hình tương ứng. Các ứng dụng có thể chọn thời gian trình bày và sau đó thông báo cho SurfaceFlinger về lựa chọn. Sau đó, SurfaceFlinger sẽ không cố áp dụng các giao dịch hoặc bộ đệm chốt trước thời gian trình bày mong muốn.

Nếu ứng dụng của bạn sử dụng phương thức Choreographer và SurfaceControl mới, bạn có thể xem vòng đời khung của ứng dụng trong dấu vết Perfetto.

Camera

Quay video HDR

Kể từ Android 13, API Camera2 sẽ hỗ trợ tính năng quay video Dải động cao (HDR), cho phép bạn xem trước và quay nội dung video HDR bằng máy ảnh của mình. So với Phạm vi động tiêu chuẩn (SDR), HDR cung cấp nhiều màu hơn và tăng dải động của thành phần độ chói (từ 100 cd/m2 hiện tại lên 1000 cd/m2). Nhờ đó, video có chất lượng giống với thực tế hơn, với màu sắc phong phú hơn, vùng sáng sáng hơn và vùng tối tối hơn.

Để tìm hiểu thêm về tính năng quay video HDR, hãy xem tài liệu về Quay video HDR.

Nội dung nghe nhìn

Âm thanh không gian

Âm thanh không gian là một trải nghiệm âm thanh sống động, giúp nội dung nghe nhìn trở nên thực tế hơn cho người dùng. Hãy xem tài liệu về Âm thanh không gian của chúng tôi để biết thông tin chi tiết về cách tích hợp với tính năng này.

Định tuyến âm thanh dự kiến

Để giúp các ứng dụng đa phương tiện xác định cách định tuyến âm thanh, Android 13 ra mắt các API định tuyến âm thanh trong lớp AudioManager. API getAudioDevicesForAttributes() cho phép bạn truy xuất danh sách thiết bị có thể dùng để phát âm thanh được chỉ định, còn API getDirectProfilesForAttributes() sẽ giúp bạn biết liệu có thể phát trực tiếp luồng âm thanh của bạn hay không. Hãy sử dụng các API này để xác định AudioFormat phù hợp nhất để dùng cho bản âm thanh của bạn.

Hỗ trợ tiếp cận

Mô tả bằng âm thanh

Android 13 (API cấp 33) ra mắt một lựa chọn ưu tiên mới trên toàn hệ thống, cho phép người dùng bật tính năng mô tả âm thanh trên tất cả ứng dụng. Nội dung mô tả âm thanh là phần tường thuật bổ sung, trong đó có người đọc tường thuật nói qua bản trình bày, mô tả những gì đang xảy ra trên màn hình trong các điểm tạm dừng tự nhiên của âm thanh. Các ứng dụng có thể truy vấn lựa chọn ưu tiên của người dùng đối với bản mô tả âm thanh bằng cách truy vấn bản nhạc đó bằng isAudioDescriptionRequested(), như trong đoạn mã sau:

Kotlin


private lateinit var accessibilityManager: AccessibilityManager

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager::class.java)

// Where your media player is initialized
if (accessibilityManager.isAudioDescriptionRequested) {
    // User has requested to enable audio descriptions
}

Java


private AccessibilityManager accessibilityManager;

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager.class);

// Where your media player is initialized
if(accessibilityManager.isAudioDescriptionRequested()) {
    // User has requested to enable audio descriptions
}

Các ứng dụng có thể theo dõi sự thay đổi về lựa chọn ưu tiên của người dùng bằng cách thêm một trình nghe vào AccessbilityManager:

Kotlin

private val listener =
    AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled ->
        // Preference changed; reflect its state in your media player
    }

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

Java

private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> {
    // Preference changed; reflect its state in your media player
};

@Override
protected void onStart() {
    super.onStart();

    accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener);
}

@Override
protected void onStop() {
    super.onStop();

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}

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

Nội dung cập nhật OpenJDK 11

Android 13 bắt đầu công cuộc làm mới các thư viện cốt lõi của Android để phù hợp với bản phát hành OpenJDK 11 LTS, trong đó có cả bản cập nhật thư viện và tính năng hỗ trợ ngôn ngữ Java 11 cho các nhà phát triển ứng dụng và nền tảng. Những thay đổi chính về thư viện cốt lõi được giới thiệu trong Android 13 cũng sẽ có trên các thiết bị Android 12 thông qua bản cập nhật hệ thống Google Play cho Mô-đun ART Mainline.

Android 13 có các thay đổi sau đây đối với thư viện cốt lõi:

  • Hỗ trợ từ khoá var cho các biến cục bộ và dưới dạng tham số lambda.
  • Các phương thức mới trong lớp String:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • Hỗ trợ Collection.toArray(IntFunction) để giúp bạn dễ dàng điều chỉnh bộ sưu tập vào một mảng.

  • Hỗ trợ ifPresentOrElse(), isEmpty(), orElseThrow()stream() trong java.util các lớp Optional, OptionalDouble, OptionalIntOptionalLong.

  • Dịch vụ hỗ trợ mở rộng cho SocketOptions, bao gồm cả việc sử dụng lại ổ cắm.

  • Chức năng NullReader, NullWriter, InputStream, OutputStreamtransferTo() Reader có chức năng chuyển các ký tự đã đọc sang Writer.

  • Thêm chức năng mã hoá và giải mã URL bằng Charsets.

  • Chức năng Charset dành cho FileReader, FileWriter, PrintStreamPrintWriter.

  • Các hàm transferTo(), readNBytes(), readAllBytes()writeBytes() mới dành cho ByteArrayInput hoặc OutputStreamInput hoặc OutputStream.

  • Hỗ trợ thời gian chạy và trình biên dịch cho java.lang.invoke.VarHandle.

  • Cập nhật java.util.concurrent lên API OpenJDK 11 bằng VarHandle nội bộ.

Java và OpenJDK là các nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.