Android 12 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 về các tính năng dành cho ứng dụng và bắt đầu với 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ài viết Điểm khác biệt về API báo cáo. Để biết thông tin chi tiết về API mới, hãy truy cập Android Tài liệu tham khảo API – các API mới được làm nổi bật để hiển thị. Ngoài ra, để tìm hiểu về những khía cạnh mà thay đổi của nền tảng có thể ảnh hưởng đến ứng dụng của bạn, hãy nhớ kiểm tra các thay đổi về hành vi của Android 12 đối với những ứng dụng nhắm đến Android 12 và dành cho tất cả .
Trải nghiệm người dùng
Material You
Android 12 ra mắt một ngôn ngữ thiết kế mới có tên là Material Bạn, giúp bạn xây dựng các ứng dụng đẹp mắt và được cá nhân hoá hơn. Để đưa tất cả những tính năng mới nhất của Material Design 3 các bản cập nhật vào ứng dụng của bạn, hãy dùng thử phiên bản alpha của Material Design Thành phần.
Cải tiến tiện ích
Android 12 cải tiến Widgets API hiện có để cải thiện người dùng và nhà phát triển trong nền tảng và trình chạy. Chúng tôi đã tạo một hướng dẫn để giúp bạn đảm bảo tiện ích của bạn tương thích với Android 12 và làm mới tiện ích đó bằng các tính năng AI mới.
Xem bài viết Các điểm cải tiến về tiện ích trên Android 12 cho biết thêm thông tin.
Chèn nội dung đa dạng thức
Android 12 ra mắt một API hợp nhất mới cho phép ứng dụng của bạn nhận nội dung đa dạng thức từ bất kỳ nguồn nào có sẵn: bảng nhớ tạm, bàn phím hoặc thao tác kéo và giảm.
Để biết thêm thông tin, hãy xem bài viết Nhận các thẻ giàu thông tin .
API màn hình chờ của ứng dụng
Android 12 giới thiệu một ảnh động mới cho hoạt động khởi chạy ứng dụng cho tất cả ứng dụng có chứa chuyển động trong ứng dụng từ thời điểm khởi chạy, màn hình chờ hiển thị biểu tượng ứng dụng, và chuyển đổi sang chính ứng dụng. Xem nhà phát triển màn hình chờ để biết thêm chi tiết.
API góc bo tròn
Android 12 ra mắt RoundedCorner
và WindowInsets.getRoundedCorner(int
position)
,
cung cấp bán kính và tâm điểm cho các góc bo tròn.
Để biết thêm thông tin, hãy xem phần Góc bo tròn.
Trải nghiệm xúc giác phong phú
Android 12 mở rộng công cụ tạo phản hồi xúc giác cung cấp thông tin cho giao diện người dùng sự kiện, hiệu ứng sống động và thú vị cho trò chơi, cũng như hiệu ứng xúc giác chú ý tăng năng suất.
Hiệu ứng của bộ truyền động
Android 12 thêm các hiệu ứng biểu cảm như thấp đánh dấu vào mục đó tận dụng băng thông tần số rộng hơn của các bộ truyền động mới nhất. Trò chơi giờ đây, nhà phát triển có thể truy cập nhiều, bộ truyền động độc lập trong trò chơi bộ điều khiển để cung cấp cùng một hiệu ứng một cách đồng bộ hoặc các hiệu ứng xúc giác khác nhau trên nhiều bộ truyền động. Đối với nhà phát triển, bạn nên dùng hằng số và dữ liệu gốc dưới dạng thành phần cho hiệu ứng xúc giác phong phú – các hằng số để cải thiện sự kiện giao diện người dùng và trình soạn thảo xúc giác để trình tự dữ liệu gốc để tạo ra các hiệu ứng phức tạp hơn. Bạn có thể dùng thử các API này trên Pixel 4 thiết bị của mình và chúng tôi đang tiếp tục hợp tác với các đối tác sản xuất thiết bị để mang đến công nghệ hỗ trợ xúc giác mới nhất cho người dùng trong toàn hệ sinh thái.
Hiệu ứng xúc giác kết hợp âm thanh
Các ứng dụng Android 12 có thể tạo phản hồi xúc giác thu được từ phiên âm thanh bằng cách sử dụng bộ rung của điện thoại. Điều này mang đến cơ hội để trải nghiệm trò chơi sống động hơn và trải nghiệm âm thanh mới. Ví dụ: nhạc chuông nâng cao xúc giác có thể giúp xác định người gọi hoặc trò chơi lái xe có thể mô phỏng cảm giác địa hình hiểm trở.
Xem HapticGenerator
tài liệu tham khảo để biết thêm thông tin.
AppSearch
Android 12 ra mắt AppSearch, một công cụ tìm kiếm hiệu suất cao trên thiết bị, dưới dạng dịch vụ hệ thống. AppSearch cho phép các ứng dụng lập chỉ mục dữ liệu có cấu trúc và tìm kiếm trên đó bằng khả năng tìm kiếm toàn bộ văn bản tích hợp sẵn. Hơn nữa, AppSearch hỗ trợ các tính năng tìm kiếm gốc như lập chỉ mục hiệu quả cao và truy xuất, hỗ trợ đa ngôn ngữ và xếp hạng mức độ liên quan.
![Sơ đồ minh hoạ hoạt động lập chỉ mục và tìm kiếm trong AppSearch](https://developer.android.google.cn/static/images/about/versions/12/appsearch.png?authuser=9&hl=vi)
AppSearch có hai phiên bản: một chỉ mục cục bộ để ứng dụng của bạn sử dụng tương thích với các phiên bản Android cũ hơn hoặc chỉ mục trung tâm được duy trì cho toàn bộ hệ thống trong Android 12. Bằng cách sử dụng chỉ mục trung tâm, có thể cho phép dữ liệu của mình được hiển thị trên nền tảng giao diện người dùng hệ thống bằng thành phần thông minh được cài đặt sẵn của hệ thống. Chính xác dữ liệu nhận được được hiển thị trên các nền tảng giao diện người dùng hệ thống phụ thuộc vào OEM. Ngoài ra, ứng dụng có thể chia sẻ dữ liệu một cách an toàn với các ứng dụng khác để cho phép chúng để tìm kiếm trên dữ liệu đó.
Tìm hiểu thêm về AppSearch trong hướng dẫn cho nhà phát triển và bắt đầu sử dụng với thư viện Jetpack AppSearch cung cấp nền tảng API thân thiện với nhà phát triển cũng như trình xử lý chú giải của Google.
Chế độ trò chơi
Game Mode API và Game Mode (Chế độ trò chơi) biện pháp can thiệp giúp bạn tối ưu hoá chơi bằng cách ưu tiên các đặc điểm, chẳng hạn như hiệu suất hoặc thời lượng pin dựa trên chế độ cài đặt của người dùng hoặc cấu hình dành riêng cho trò chơi.
Để biết thêm thông tin, hãy xem phần Chế độ trò chơi.
Các đề xuất và điểm cải tiến đối với tính năng Hình trong hình (PiP)
Android 12 ra mắt các điểm cải tiến sau đây cho chế độ Hình trong hình:
Hỗ trợ các cử chỉ PiP mới
Android 12 hiện hỗ trợ tính năng giữ chân và chụm để thu phóng cử chỉ cho PiP (Hình trong hình) thời lượng:
Để lưu trữ cửa sổ, người dùng có thể kéo cửa sổ sang trái hoặc phải cạnh. Để huỷ lưu trữ cửa sổ, người dùng có thể nhấn vào phần hiển thị của cửa sổ đã lưu trữ hoặc kéo cửa sổ đó ra.
Giờ đây, người dùng có thể đổi kích thước cửa sổ PiP bằng cách chụm để thu phóng.
Các tính năng mới nên dùng để hỗ trợ trải nghiệm chuyển đổi hình trong hình chỉn chu
Android 12 có thêm những điểm cải tiến đáng kể về mặt thẩm mỹ sang ảnh động chuyển đổi giữa cửa sổ toàn màn hình và cửa sổ PiP. Bạn nên triển khai tất cả các thay đổi có thể áp dụng; khi bạn đã thực hiện xong, những thay đổi này tự động chuyển tỷ lệ sang màn hình lớn như thiết bị có thể gập lại và máy tính bảng mà không cần bất kỳ công việc cần thiết nào nữa.
Các tính năng này bao gồm:
-
Sử dụng
setAutoEnterEnabled
cờ để chuyển đổi mượt mà hơn sang chế độ PiP khi vuốt lên về nhà chế độ thao tác bằng cử chỉ. Trước đây, Android chờ đợi hành vi vuốt lên màn hình chính ảnh động để kết thúc trước khi mờ dần trong cửa sổ PiP. Ảnh động mượt mà hơn khi vào và thoát khỏi chế độ PiP
SourceRectHint
cờ hiện được sử dụng lại để triển khai ảnh động mượt mà hơn khi vào và thoát Chế độ PiP.Cờ API mới để tắt tính năng đổi kích thước liền mạch cho nội dung không phải video
SeamlessResizeEnabled
cờ cung cấp hình động mờ dần hơn nhiều khi đổi kích thước không phải video trong cửa sổ PiP. Trước đây, tính năng đổi kích thước nội dung không phải video ở chế độ Hình trong hình có thể tạo ra các cấu phần phần mềm gây khó chịu về mặt hình ảnh.
Thông báo cuộc gọi điện thoại mới cho phép xếp hạng mức độ quan trọng của cuộc gọi đến
Android 12 bổ sung kiểu thông báo mới
Notification.CallStyle
cho các cuộc gọi điện thoại. Việc sử dụng mẫu này cho phép ứng dụng của bạn xác định tầm quan trọng của
cuộc gọi đang diễn ra bằng cách hiển thị một khối nổi bật cho biết thời gian của cuộc gọi
thanh trạng thái; người dùng có thể nhấn vào khối này để quay lại cuộc gọi của họ.
Vì cuộc gọi đến và cuộc gọi đang diễn ra là quan trọng nhất với người dùng, nên thông báo sẽ được xếp hạng hàng đầu trong ngăn. Thứ hạng này cũng cho phép để có thể chuyển tiếp các cuộc gọi được ưu tiên này đến các thiết bị khác.
Triển khai mã sau cho tất cả các loại lệnh gọi.
Kotlin
// Create a new call with the user as caller. val incoming_caller = Person.Builder() .setName("Jane Doe") .setImportant(true) .build()
Java
// Create a new call with the user as caller. Person incoming_caller = new Person.Builder() .setName("Jane Doe") .setImportant(true) .build();
Sử dụng forIncomingCall()
để tạo thông báo kiểu cuộc gọi cho cuộc gọi đến.
Kotlin
// Create a call style notification for an incoming call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller)
Java
// Create a call style notification for an incoming call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent)) .addPerson(incoming_caller);
Sử dụng forOngoingCall()
để tạo thông báo kiểu cuộc gọi cho một cuộc gọi đang diễn ra.
Kotlin
// Create a call style notification for an ongoing call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller)
Java
// Create a call style notification for an ongoing call. Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forOnGoingCall(caller, hangupIntent)) .addPerson(second_caller);
Sử dụng forScreeningCall()
để tạo thông báo kiểu cuộc gọi nhằm sàng lọc cuộc gọi.
Kotlin
// Create a call style notification for screening a call. val builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller)
Java
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID) .setContentIntent(contentIntent) .setSmallIcon(smallIcon) .setStyle( Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent)) .addPerson(second_caller);
Hỗ trợ hình ảnh phong phú cho thông báo
Trên Android 12, giờ đây, bạn có thể làm phong phú trải nghiệm thông báo trong ứng dụng bằng cách
cung cấp hình ảnh động trong MessagingStyle()
và BigPictureStyle()
thông báo. Ngoài ra, ứng dụng của bạn hiện có thể cho phép người dùng gửi tin nhắn hình ảnh khi
họ trả lời tin nhắn từ ngăn thông báo.
Các điểm cải tiến về chế độ sống động cho thao tác bằng cử chỉ
Android 12 hợp nhất hành vi hiện có để giúp người dùng dễ dàng thực hiện các lệnh thao tác bằng cử chỉ khi ở chế độ sống động chế độ xem. Trong Ngoài ra, Android 12 cung cấp hành vi tương thích ngược đối với trải nghiệm chế độ xem.
Chia sẻ URL Gần đây (chỉ trên Pixel)
Giờ đây, trên các thiết bị Pixel, người dùng có thể chia sẻ đường liên kết đến nội dung web mới xem gần đây ngay trên màn hình Gần đây. Sau khi truy cập nội dung trong ứng dụng, người dùng có thể vuốt đến màn hình Gần đây và tìm ứng dụng mà họ đã xem nội dung, sau đó nhấn vào nút liên kết để sao chép hoặc chia sẻ URL.
Để biết thêm thông tin, hãy xem bài viết Bật URL gần đây chia sẻ.
Bảo mật và quyền riêng tư
Bảng tổng quan về quyền riêng tư
Trên các thiết bị được hỗ trợ chạy Android 12 trở lên, màn hình Bảng tổng quan về quyền riêng tư sẽ xuất hiện trong phần cài đặt hệ thống. Trên màn hình này, người dùng có thể truy cập vào những màn hình riêng biệt xuất hiện khi các ứng dụng truy cập vào thông tin vị trí, máy ảnh và micrô. Mỗi màn hình hiển thị một dòng thời gian cho biết thời điểm các ứng dụng truy cập vào loại dữ liệu cụ thể. Hình 1 cho thấy dòng thời gian truy cập dữ liệu đối với thông tin vị trí.
Ứng dụng của bạn có thể đưa ra lý do cho người dùng để giúp họ hiểu lý do ứng dụng của bạn truy cập vào thông tin vị trí, máy ảnh hoặc micrô của bạn. Lý do này có thể xuất hiện trên màn hình mới của Bảng tổng quan về quyền riêng tư, màn hình quyền của ứng dụng hoặc cả hai.
Quyền truy cập Bluetooth
Android 12 ra mắt
BLUETOOTH_SCAN
!
BLUETOOTH_ADVERTISE
,
và
BLUETOOTH_CONNECT
quyền truy cập. Những quyền này giúp những ứng dụng nhắm đến
Android 12 để tương tác với Bluetooth
thiết bị, đặc biệt là đối với những ứng dụng không
yêu cầu quyền truy cập vào thông tin vị trí của thiết bị.
Cập nhật phần khai báo quyền Bluetooth của ứng dụng
Để chuẩn bị thiết bị cho việc nhắm đến Android 12 trở lên, hãy cập nhật logic của ứng dụng. Thay vì khai báo bộ Bluetooth cũ quyền truy cập, khai báo một nhóm Bluetooth hiện đại hơn quyền truy cập.
Tra cứu nhóm quyền
Trên Android 12 trở lên, bạn có thể truy vấn cách hệ thống sắp xếp quyền do nền tảng cung cấp vào nhóm quyền:
- Để xác định nhóm quyền mà hệ thống đã đặt
quyền do nền tảng xác định, gọi
getGroupOfPlatformPermission()
. - Để xác định các quyền do nền tảng xác định mà hệ thống đặt vào
một nhóm quyền cụ thể, hãy gọi
getPlatformPermissionsForGroup()
.
Ẩn cửa sổ lớp phủ ứng dụng
Để giúp nhà phát triển có nhiều quyền kiểm soát hơn đối với nội dung mà người dùng nhìn thấy khi họ tương tác với
ứng dụng của nhà phát triển, Android 12 ra mắt tính năng ẩn
các cửa sổ lớp phủ được vẽ bởi các ứng dụng có
SYSTEM_ALERT_WINDOW
quyền.
Sau khi khai báo
HIDE_OVERLAY_WINDOWS
, ứng dụng có thể gọi
setHideOverlayWindows()
để cho biết rằng tất cả các cửa sổ thuộc loại
TYPE_APPLICATION_OVERLAY
sẽ được ẩn khi cửa sổ riêng của ứng dụng hiển thị. Các ứng dụng có thể chọn thực hiện
khi hiển thị màn hình nhạy cảm, chẳng hạn như luồng xác nhận giao dịch.
Những ứng dụng cho thấy cửa sổ thuộc loại TYPE_APPLICATION_OVERLAY
nên cân nhắc
các giải pháp thay thế có thể phù hợp hơn cho trường hợp sử dụng của chúng, chẳng hạn như
hình trong hình hoặc
bong bóng trò chuyện.
Cờ bảo vệ quyền của người ký đã biết
Kể từ Android 12,
Thuộc tính knownCerts
cho
quyền ở cấp chữ ký
cho phép bạn tham khảo thông báo về việc ký đã biết
các chứng chỉ khi khai báo
bất cứ lúc nào.
Ứng dụng có thể khai báo thuộc tính này và dùng cờ knownSigner
để cho phép
thiết bị và ứng dụng để cấp quyền ký cho
ứng dụng mà không có
phải ký ứng dụng tại thời điểm sản xuất và vận chuyển thiết bị.
Chứng thực thuộc tính thiết bị
Android 12 mở rộng một nhóm ứng dụng có thể xác minh các thuộc tính thiết bị đang trong một chứng thực chứng chỉ khi những ứng dụng này tạo khoá mới.
Kể từ Android 9 (API cấp 28), chính sách thiết bị
chủ sở hữu (DPO) sử dụng
Keymaster 4.0 trở lên có thể
xác minh thuộc tính của thiết bị trong các chứng chỉ chứng thực này. Bắt đầu sau
Android 12, mọi ứng dụng nhắm đến Android 12 (API cấp 31) trở lên đều có thể hoạt động hiệu quả
xác minh này bằng cách sử dụng
setDevicePropertiesAttestationIncluded()
.
Các thuộc tính thiết bị được tạo bao gồm:
Các trường Build
:
BRAND
DEVICE
MANUFACTURER
MODEL
PRODUCT
Thao tác đối với thông báo trên màn hình khoá bảo mật
Kể từ Android 12, lớp Notification.Action.Builder
hỗ trợ
setAuthenticationRequired()
cho phép ứng dụng của bạn yêu cầu thiết bị
đã mở khoá
trước khi ứng dụng của bạn gọi ra một hành động thông báo cụ thể. Phương thức này giúp thêm
thêm một lớp bảo mật cho thông báo trên thiết bị bị khoá.
Các chuỗi có thể bản địa hoá cho BiometricPrompt
Android 12 ra mắt các API mới để giúp bạn cải thiện dữ liệu sinh trắc học của ứng dụng
trải nghiệm người dùng xác thực. BiometricManager.Strings
mới
lớp lồng ghép bao gồm getButtonLabel()
,
getPromptMessage()
,
và getSettingName()
các phương thức này cho phép ứng dụng của bạn truy xuất nhãn nút đã bản địa hoá và đọc được cho người dùng,
thông báo nhắc hoặc tên cài đặt ứng dụng. Sử dụng các nhãn này để tạo nhãn chính xác hơn
các hướng dẫn dành riêng cho người dùng liên quan đến việc xác thực bằng sinh trắc học
các phương thức được sử dụng, chẳng hạn như "Dùng tính năng mở khoá bằng khuôn mặt" hoặc "Dùng vân tay để tiếp tục".
Phát hiện hành vi lừa đảo trong ứng dụng nhắn tin (chỉ dành cho Pixel)
![](https://developer.android.google.cn/static/images/about/versions/12/phishing-detection.png?authuser=9&hl=vi)
Trên các thiết bị Pixel được hỗ trợ, Android 12 chạy tính năng phát hiện lừa đảo đối với tin nhắn nhận được trong các ứng dụng nhắn tin phổ biến. Hệ thống này sử dụng công nghệ học máy trên thiết bị để phát hiện các hoạt động đáng ngờ. Khi bị phát hiện, hệ thống sẽ hiển thị thông báo an toàn phủ lên trên giao diện người dùng của ứng dụng nhắn tin để cảnh báo người dùng. Ví dụ: lừa đảo có thể cảnh báo người dùng về những rủi ro tiềm ẩn sau đây:
- Các yêu cầu đáng ngờ, chẳng hạn như gửi mã, tiền hoặc các yêu cầu tương tự
- URL không đáng tin cậy
- Tệp đính kèm độc hại
- Đường liên kết đến các ứng dụng độc hại
Ngoài việc cảnh báo người dùng, lớp phủ này còn cho phép người dùng báo cáo tin nhắn đáng ngờ và đưa ra phản hồi về các cảnh báo do hệ thống đưa ra.
Nhà phát triển có thể chọn không sử dụng tính năng này bằng cách thêm một thẻ siêu dữ liệu mới, bao gồm cả
chuỗi com.google.android.ALLOW_PHISHING_DETECTION
trong tệp kê khai ứng dụng
tệp. Ví dụ:
<manifest>
<application android:name="com.messagingapp">
<meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />
</application>
</manifest>
Nội dung nghe nhìn
Chuyển mã tệp đa phương tiện tương thích
Kể từ Android 12 (API cấp 31), hệ thống có thể tự động chuyển mã HEVC(H.265) và HDR (HDR10 và HDR10+) video được ghi trên thiết bị dưới dạng AVC (H.264), một định dạng được sử dụng rộng rãi tương thích với trình phát chuẩn. Giải pháp này tận dụng bộ mã hoá và giải mã hiện đại khi chúng luôn sẵn có mà không làm giảm khả năng tương thích với các ứng dụng cũ.
Hãy xem bài viết chuyển mã nội dung nghe nhìn tương thích để biết thêm chi tiết.
Lớp hiệu suất
Android 12 ra mắt một tiêu chuẩn có tên là lớp hiệu suất. Đáp lớp hiệu suất chỉ định các khả năng phần cứng ngoài đường cơ sở của Android các yêu cầu liên quan. Mỗi thiết bị Android đều khai báo lớp hiệu suất mà thiết bị đó Google Cloud. Nhà phát triển có thể kiểm tra lớp hiệu suất của thiết bị trong thời gian chạy và mang đến trải nghiệm nâng cấp để khai thác tối đa các chức năng khác nhau.
Xem Lớp hiệu suất để biết thêm chi tiết.
Cải thiện phương thức mã hoá video
Android 12 xác định một bộ khoá tiêu chuẩn để điều khiển giá trị tham số lượng tử hoá (QP) khi mã hoá video, cho phép nhà phát triển tránh mã dành riêng cho nhà cung cấp.
Các khoá mới này hiện có trong
API MediaFormat
và cũng trong
Thư viện Nội dung đa phương tiện NDK.
Kể từ Android 12, bộ mã hoá video thực thi chất lượng tối thiểu ngưỡng. Điều này đảm bảo rằng người dùng sẽ không trải qua việc có trải nghiệm chất lượng quá thấp khi mã hoá video có độ phức tạp cao của cảnh.
Quyền phát âm thanh
Kể từ Android 12 (API cấp 31), khi một ứng dụng yêu cầu quyền phát âm thanh trong khi một ứng dụng khác có tiêu điểm là đang phát, nên hệ thống sẽ làm mờ ứng dụng đang phát.
Xem bài viết Chế độ tập trung vào âm thanh trong Android 12 trở lên để biết thêm chi tiết.
Thông tin cập nhật về MediaDrm
Để xác định xem thành phần giải mã an toàn có được yêu cầu với
các API MediaDrm
hiện tại, bạn phải làm theo các bước sau:
- Tạo
MediaDrm
. - Mở một phiên để lấy mã phiên.
- Tạo
MediaCrypto
bằng cách sử dụng mã phiên hoạt động. - Gọi
MediaCrypto.requiresSecureDecoderComponent(mimeType)
.
Với các phương thức mới requiresSecureDecoder(@NonNull String mime)
và
requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level)
bạn có thể xác định điều này ngay khi tạo MediaDrm
.
Camera
Tiện ích của nhà cung cấp Camera2
Nhiều đối tác nhà sản xuất thiết bị của chúng tôi đã tạo các tiện ích máy ảnh tuỳ chỉnh, chẳng hạn như như Bokeh, HDR, Chế độ ban đêm, v.v. mà họ muốn ứng dụng sử dụng để tạo trải nghiệm khác biệt trên thiết bị của họ. CameraX thư viện đã hỗ trợ các tiện ích tùy chỉnh này của nhà cung cấp. Trong Android 12, tiện ích của nhà cung cấp hiện được hiển thị trực tiếp trong nền tảng.
Việc bổ sung này giúp các ứng dụng có
Camera2
việc triển khai tận dụng tiện ích của nhà cung cấp mà không phải thực hiện
những thay đổi đáng kể đối với mã cũ. API mở rộng Camera2 hiển thị chính xác
cùng một tập hợp
phần mở rộng dưới dạng
trong CameraX và đã được hỗ trợ trên nhiều
để bạn có thể sử dụng chúng mà không cần
cấu hình bổ sung.
Để biết thêm thông tin, hãy xem CameraExtensionCharacteristics
.
Hỗ trợ cảm biến máy ảnh 4 cạnh
Ngày nay, nhiều thiết bị Android có sẵn cảm biến camera có độ phân giải siêu cao, thường có hoa văn Quad hoặc Nona Bayer và những mẫu này giúp bạn linh hoạt chất lượng hình ảnh và hiệu suất ánh sáng yếu. Android 12 ra mắt các tính năng mới các API nền tảng cho phép các ứng dụng bên thứ ba tận dụng những tính linh hoạt các cảm biến. API mới hỗ trợ hành vi riêng biệt của các cảm biến này và lưu ý đến việc chúng có thể hỗ trợ nhiều cấu hình và kiểu kết hợp luồng khi hoạt động trong độ phân giải tối đa hoặc chế độ "độ phân giải tối đa" so với chế độ "mặc định".
Đồ hoạ và hình ảnh
Cho phép ứng dụng truy cập trực tiếp vào dấu vết tombstone
Kể từ Android 12, bạn có thể truy cập vào tombstone trục trặc mã gốc của ứng dụng dưới dạng
bộ đệm giao thức thông qua
ApplicationExitInfo.getTraceInputStream()
. Vùng đệm giao thức này được tuần tự hoá bằng cách sử dụng lược đồ này.
Trước đây, cách duy nhất để truy cập vào thông tin này là thông qua Cầu gỡ lỗi Android (Android Debug Bridge – adb).
Để biết thêm thông tin, hãy xem phần Cung cấp cho ứng dụng quyền truy cập trực tiếp vào dấu vết tombstone
Hỗ trợ hình ảnh AVIF
Android 12 hỗ trợ hình ảnh sử dụng Định dạng tệp hình ảnh AV1 (AVIF). AVIF là một định dạng vùng chứa hình ảnh và các trình tự hình ảnh được mã hoá sử dụng AV1. AVIF tận dụng nội dung được mã hoá trong khung hình từ video nén. Điều này giúp cải thiện đáng kể chất lượng ảnh cho cùng một kích thước tệp khi so sánh với các định dạng hình ảnh cũ, chẳng hạn như JPEG. Để tìm hiểu sâu hơn về tận dụng các lợi thế của định dạng này, hãy xem blog của Jake Archibald bài đăng.
Làm mờ, bộ lọc màu và các hiệu ứng khác dễ dàng hơn
Android 12 thêm RenderEffect
mới
áp dụng các hiệu ứng đồ hoạ phổ biến như làm mờ, bộ lọc màu, chương trình đổ bóng của Android
hiệu ứng và các tính năng khác cho View
và hệ phân cấp kết xuất hình ảnh. Các hiệu ứng có thể được kết hợp dưới dạng hiệu ứng chuỗi
(kết hợp hiệu ứng bên trong và bên ngoài) hoặc hiệu ứng kết hợp. Thiết bị Android khác
các thiết bị có thể hỗ trợ hoặc không hỗ trợ tính năng này do khả năng xử lý hạn chế.
Bạn cũng có thể áp dụng hiệu ứng cho RenderNode
cơ bản
cho View
bằng cách gọi View.setRenderEffect(RenderEffect)
.
Cách triển khai RenderEffect
:
view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))
Giải mã hình ảnh động gốc
Trong Android 12, NDK
API ImageDecoder
đã được mở rộng
để giải mã tất cả các khung và dữ liệu thời gian từ hình ảnh
sử dụng GIF động và
định dạng tệp WebP động. Thời điểm
được giới thiệu trong Android 11, API này chỉ giải mã hình ảnh đầu tiên từ
hoạt ảnh ở các định dạng này.
Sử dụng ImageDecoder
thay vì thư viện của bên thứ ba để giảm APK hơn nữa
kích thước
và được hưởng lợi từ các bản cập nhật trong tương lai liên quan đến tính bảo mật và hiệu suất.
Để biết thêm thông tin chi tiết về API này, hãy tham khảo tài liệu tham khảo API và mẫu trên GitHub.
Khả năng kết nối
Luôn bật các ứng dụng đồng hành
Để không cần các ứng dụng đồng hành tiếp tục chạy nhằm quản lý thiết bị, Android 12 ra mắt các API để thực hiện những việc sau:
- Cho phép bạn đánh thức ứng dụng khi thiết bị đồng hành nằm trong phạm vi.
- Đảm bảo rằng quá trình này sẽ tiếp tục chạy trong khi thiết bị vẫn trong dải ô.
Để sử dụng API, thiết bị của bạn phải được kết nối bằng Thiết bị đồng hành
Người quản lý. Để biết thêm
thông tin, xem
CompanionDeviceManager.startObservingDevicePresence()
và
CompanionDeviceService.onDeviceAppeared()
.
Hồ sơ Trình quản lý thiết bị đồng hành
![](https://developer.android.google.cn/static/images/about/versions/12/companion-device-profile.png?authuser=9&hl=vi)
Các ứng dụng của đối tác trên Android 12 (API cấp độ 31) trở lên có thể sử dụng hồ sơ của thiết bị đồng hành đồng hành khi kết nối với đồng hồ. Việc sử dụng hồ sơ giúp đơn giản hoá quá trình đăng ký bằng cách nhóm việc cấp một nhóm quyền theo loại thiết bị cụ thể trong một bước.
Các quyền đi kèm sẽ được cấp cho ứng dụng đồng hành sau khi thiết bị kết nối và chỉ có hiệu lực khi thiết bị được liên kết. Việc xoá ứng dụng hoặc xoá các liên kết cũng là xoá các quyền.
Để biết thêm thông tin, hãy xem AssociationRequest.Builder.setDeviceProfile()
.
Cải thiện ước tính băng thông
Trong Android 12, tính năng ước tính băng thông được cung cấp bởi
getLinkDownstreamBandwidthKbps()
và
getLinkUpstreamBandwidthKbps()
được cải thiện cho cả kết nối Wi-Fi và di động. Hiện tại, các giá trị được trả về
thể hiện thông lượng trung bình tính từ trước đến nay của người dùng trên mỗi nhà mạng hoặc Wi-Fi
SSID, loại mạng và cấp tín hiệu, trên tất cả ứng dụng trên thiết bị.
Điều này có thể trả về ước tính chính xác và thực tế hơn về thông lượng dự kiến,
cung cấp số liệu ước tính khi khởi động nguội ứng dụng và yêu cầu ít chu kỳ hơn
khi so sánh với việc sử dụng các phương pháp ước tính công suất khác.
Các tính năng nâng cao đối với tính năng Nhận biết Wi-Fi (NAN)
Android 12 bổ sung một số tính năng nâng cao cho tính năng Nhận biết Wi-Fi:
- Trên các thiết bị chạy Android 12 (API cấp 31) trở lên, bạn có thể dùng
Lệnh gọi lại
onServiceLost()
để được thông báo khi ứng dụng của bạn mất một dịch vụ được phát hiện do dịch vụ dừng hoặc di chuyển ra khỏi phạm vi. - Cách thiết lập nhiều đường dẫn dữ liệu (Đường dẫn dữ liệu NAN) sẽ thay đổi để hiệu quả hơn. Các phiên bản trước đó sử dụng chức năng nhắn tin L2 để trao đổi ngang hàng thông tin về trình khởi tạo, gây ra độ trễ. Trên những thiết bị đang chạy Trên Android 12 trở lên, bạn có thể định cấu hình trình phản hồi (máy chủ) chấp nhận bất kỳ ứng dụng ngang hàng nào, tức là không cần biết người khởi tạo trước tiên. Điều này giúp tăng tốc độ xử lý đường dẫn dữ liệu và cho phép nhiều các liên kết điểm này chỉ có một yêu cầu mạng.
- Để ngăn khung này từ chối các yêu cầu khám phá hoặc kết nối đến hạn
về tình trạng hết tài nguyên trên các thiết bị chạy Android 12 và
cao hơn, bạn có thể gọi
WifiAwareManager.getAvailableAwareResources()
. Giá trị trả về của phương thức này cho phép bạn nhận được số lượng dữ liệu có sẵn đường dẫn, số lượng phiên xuất bản có sẵn và số phiên có sẵn phiên đăng ký.
Kết nối Internet và ngang hàng đồng thời
Khi thiết bị nhắm đến Android 12 (API cấp 31) trở lên chạy trên thiết bị có
hỗ trợ phần cứng, dùng giao thức Ngang hàng
kết nối sẽ không ngắt kết nối
kết nối Wi-Fi hiện có khi tạo kết nối với thiết bị ngang hàng. Người nhận
kiểm tra xem có hỗ trợ nào cho tính năng này, sử dụng
WifiManager.isMultiStaConcurrencySupported()
.
Bật tính năng tắt màn hình khi thanh toán qua NFC
Trong những ứng dụng nhắm đến Android 12 trở lên, bạn có thể bật NFC
thanh toán mà không cần bật màn hình thiết bị bằng cách cài đặt
requireDeviceScreenOn
đến
false
. Để biết thêm thông tin về việc thanh toán qua NFC khi màn hình tắt hoặc khoá, hãy xem
Màn hình tắt và màn hình khoá
.
Bộ nhớ
Android 12 ra mắt các tính năng quản lý bộ nhớ sau đây khả năng:
- Hỗ trợ kho nội dung nghe nhìn cho
MediaDocumentsProvider
khi ứng dụng của bạn truy xuất URI phương tiện tương đương với một nhà cung cấp tài liệu cụ thể URI. - Thư mục dành cho voice bản ghi.
MANAGE_MEDIA
quyền, cho phép một ứng dụng thực hiện quy trình quản lý nội dung nghe nhìn hoạt động mà không hiển thị hộp thoại xác nhận cho người dùng đối với mỗi thao tác.- Ứng dụng có cả
MANAGE_EXTERNAL_STORAGE
quyền vàQUERY_ALL_PACKAGES
quyền (chẳng hạn như ứng dụng quản lý tệp) có thể gọi một hoạt động để quản lý không gian lưu trữ của một ứng dụng khác, miễn là ứng dụng khác tạo hoạt động tuỳ chỉnh.
Chức năng cốt lõi
Tự động cập nhật ứng dụng
Android 12 ra mắt
setRequireUserAction()
cho các ứng dụng sử dụng
PackageInstaller
.
Phương thức này cho phép các ứng dụng cài đặt thực hiện cập nhật ứng dụng mà không yêu cầu
để xác nhận hành động.
Thông tin về bộ vi mạch của thiết bị
Android 12 thêm 2 hằng số vào android.os.Build
để hiển thị
thông tin về mô hình và nhà cung cấp bộ vi mạch SoC thông qua SDK. Bạn có thể truy xuất nội dung này
bằng cách gọi Build.SOC_MANUFACTURER
và Build.SOC_MODEL
.
Các bản cập nhật cho các API Java cốt lõi
Dựa trên yêu cầu và sự cộng tác với nhà phát triển, chúng tôi đã thêm những nội dung sau các thư viện lõi trong Android 12:
Lớp | API |
---|---|
java.lang.Deprecated
|
|
java.lang.Byte
|
|
java.lang.Short
|
|
java.lang.Math
|
|
java.lang.StrictMath
|
|
java.util.Set
|
copyOf()
|
java.util.Map
|
copyOf()
|
java.util.List
|
copyOf()
|
java.time.Duration
|
|
java.time.LocalTime
|