Ghi chú phát hành của Android 9

Trang này tóm tắt các tính năng chính trong bản phát hành Android 9 và cung cấp đường liên kết đến thông tin bổ sung. Các bản tóm tắt tính năng này được sắp xếp theo vị trí tài liệu của tính năng trên trang web này. Hãy xem bài viết Nội dung cập nhật về trang web tháng 8 năm 2018 để biết hướng dẫn về việc di chuyển và đổi tên mục.

Tạo

Hình ảnh hệ thống chung (GSI)

Hình ảnh hệ thống chung (GSI) là hình ảnh hệ thống có cấu hình được điều chỉnh cho các thiết bị Android. Hình ảnh hệ thống chung (GSI) bao gồm thông tin chi tiết về sự khác biệt giữa GSI cho các thiết bị chạy Android 9 và các thiết bị nâng cấp lên Android 9.

Kiến trúc

Lớp trừu tượng phần cứng (HAL)

Khả năng tương thích ngược của khung HIDL

Xác minh khả năng tương thích ngược của khung HIDL là một phương thức để xác minh khả năng tương thích ngược của khung.

HAL có sẵn động

HAL có sẵn động hỗ trợ tắt động các hệ thống con phần cứng Android khi không sử dụng hoặc không cần thiết.

HIDL

HIDL MemoryBlock

HIDL MemoryBlock là một lớp trừu tượng được xây dựng trên hidl_memory, HIDL @1.0::IAllocatorHIDL @1.0::IMapper. Lớp này được thiết kế cho các dịch vụ HIDL có nhiều khối bộ nhớ dùng chung một vùng nhớ khối xếp.

Lớp phủ cây thiết bị

Lớp phủ nén

Android 9 trở lên hỗ trợ lớp phủ nén trong hình ảnh lớp phủ blob cây thiết bị (DTBO) khi sử dụng phiên bản 1 của tiêu đề bảng cây thiết bị.

Nội dung cập nhật về DTO

Android 9 trở lên yêu cầu trình tải khởi động truyền blob cây thiết bị hợp nhất đến hạt nhân trước khi sửa đổi các thuộc tính được xác định trong lớp phủ cây thiết bị (DTO).

Phiên bản tiêu đề hình ảnh DTBO

Android 9 trở lên có trường phiên bản trong tiêu đề hình ảnh DTBO.

Xác minh DTBO

Android 9 trở lên yêu cầu phân vùng DTBO. Để thêm nút hoặc thực hiện thay đổi đối với các thuộc tính trong DT SoC, trình tải khởi động phải tự động phủ một DT dành riêng cho thiết bị lên DT SoC. Để biết thêm thông tin, hãy xem phần Biên dịch và xác minh.

Tuân thủ nhân

Android 9 trở lên bao gồm các yêu cầu ảnh hưởng đến nhân, giao diện và việc sử dụng DTBO. Để biết thêm thông tin, hãy xem các trang sau:

NDK của nhà cung cấp

Thay đổi về thiết kế

Để biết thông tin về các thay đổi về thiết kế VNDK trong Android 9 trở lên, hãy xem các trang sau:

Trình kiểm tra ABI

Trang ABI Stability (Ổn định ABI) mô tả trình kiểm tra giao diện nhị phân của ứng dụng (ABI), đảm bảo rằng các thay đổi đối với thư viện VNDK vẫn tuân thủ ABI.

Ảnh chụp nhanh VNDK

Hình ảnh hệ thống có thể sử dụng ảnh chụp nhanh VNDK để cung cấp thư viện VNDK chính xác cho hình ảnh nhà cung cấp ngay cả khi hình ảnh hệ thống và hình ảnh nhà cung cấp được tạo từ các phiên bản Android khác nhau.

Đối tượng giao diện nhà cung cấp (đối tượng VINTF)

Các trang sau trong phần Đối tượng giao diện nhà cung cấp mô tả nội dung cập nhật trong Android 9 trở lên:

Lịch ngừng sử dụng HIDL

Các trang sau đây mô tả cách Android ngừng sử dụng và xoá các HAL HIDL:

Trình tải khởi động

Phân chia sản phẩm

Android 9 trở lên hỗ trợ việc tạo phân vùng /product bằng hệ thống xây dựng Android. Trước đây, Android 8.x đã thực thi việc tách các thành phần dành riêng cho hệ thống trên chip (SoC) từ phân vùng /system sang phân vùng /vendor mà không dành không gian riêng cho các thành phần dành riêng cho OEM được tạo từ hệ thống xây dựng Android.

Tuân thủ lý do khởi động chuẩn

Trang Lý do khởi động chuẩn mô tả các thay đổi đối với quy cách lý do khởi động của trình tải khởi động trong Android 9 trở lên.

Hệ thống dưới dạng thư mục gốc

Tất cả thiết bị chạy Android 9 trở lên đều phải sử dụng hệ thống làm thư mục gốc. Tính năng này sẽ hợp nhất ramdisk.img vào system.img (còn gọi là không có ramdisk), sau đó được gắn dưới dạng rootfs.

Phiên bản tiêu đề hình ảnh khởi động

Trong Android 9 trở lên, tiêu đề hình ảnh khởi động chứa một trường để cho biết phiên bản tiêu đề. Trình tải khởi động phải kiểm tra trường phiên bản này và phân tích cú pháp tiêu đề tương ứng.

DTBO trong quá trình khôi phục

Để ngăn chặn lỗi OTA do không khớp giữa hình ảnh khôi phục và phân vùng DTBO trên các thiết bị không phải A/B, hình ảnh khôi phục phải chứa thông tin từ hình ảnh DTBO.

Màn hình

Vết cắt trên màn hình

Màn hình khoét lỗ cho phép nhà phát triển ứng dụng tạo ra trải nghiệm sống động, tràn viền, đồng thời vẫn có không gian cho các cảm biến quan trọng ở mặt trước thiết bị.

Đề xuất xoay

Các bản cập nhật về hành vi xoay màn hình trên Android 9 trở lên bao gồm cả tính năng hỗ trợ chế độ điều khiển dành cho người dùng để ghim chế độ xoay màn hình thành ngang hoặc dọc ngay cả khi vị trí thiết bị thay đổi.

Các chuyển đổi ứng dụng được đồng bộ hoá

Chuyển đổi ứng dụng được đồng bộ hoá cho phép ảnh động chuyển đổi ứng dụng mới.

Phân loại văn bản (trước đây là TEXTCLASSIFIER)

Android 9 trở lên có dịch vụ Trình phân loại văn bản. Đây là cách được đề xuất để triển khai tính năng phân loại văn bản và là cách triển khai dịch vụ mặc định.

Gam màu rộng

Android 9 trở lên hỗ trợ màu sắc gam rộng, bao gồm:

  • Dải động cao (HDR)
  • Xử lý nội dung trong không gian màu BT2020, nhưng không phải là không gian dữ liệu mục tiêu cuối cùng

Để sử dụng màu gam rộng, ngăn xếp hiển thị đầy đủ của thiết bị (chẳng hạn như màn hình, trình tổng hợp phần cứng, GPU) phải hỗ trợ màu gam rộng hoặc định dạng vùng đệm. Thiết bị không bắt buộc phải tuyên bố hỗ trợ nội dung gam màu rộng ngay cả khi phần cứng hỗ trợ nội dung đó. Tuy nhiên, bạn nên bật màu gam rộng để khai thác tối đa phần cứng. Để tránh trải nghiệm hình ảnh không nhất quán, bạn không nên tắt màu gam rộng trong thời gian chạy.

Khả năng tương thích

Tài liệu định nghĩa về khả năng tương thích với Android

Tài liệu định nghĩa về khả năng tương thích (CDD) của Android 9 lặp lại các phiên bản trước với các bản cập nhật cho các tính năng mới và thay đổi đối với các yêu cầu đối với chức năng đã phát hành trước đó.

Cài đặt

Tiện ích ứng dụng tốt hơn

Khung tiện ích ứng dụng Android cung cấp khả năng hiển thị tốt hơn về các lượt tương tác của người dùng, cụ thể là khi người dùng xoá hoặc thêm tiện ích theo cách thủ công. Tính năng này đi kèm theo Launcher3 theo mặc định.

Nhà sản xuất cần cập nhật ứng dụng trình chạy (được vận chuyển cùng với thiết bị) để hỗ trợ tính năng này nếu không dựa trên Launcher3. Nhà sản xuất thiết bị gốc (OEM) cần hỗ trợ trường widgetFeatures mới trong trình chạy mặc định.

Xin lưu ý rằng tính năng này chỉ hoạt động toàn diện khi trình chạy triển khai tính năng này như dự kiến. AOSP bao gồm một cách triển khai mẫu. Hãy xem AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca để biết mã mẫu được cung cấp.

Thông báo thay đổi trạng thái thiết bị cho trình cài đặt gói

Bạn có thể gửi thông báo truyền tin hệ thống được bảo vệ đến các ứng dụng có quyền INSTALL_PACKAGES bất cứ khi nào có thay đổi đối với các thuộc tính như ngôn ngữ hoặc mật độ màn hình. Bạn có thể đăng ký trình thu nhận trong tệp kê khai và một quy trình sẽ thức dậy để nhận thông báo truyền tin. Điều này hữu ích cho trình cài đặt gói muốn cài đặt các thành phần bổ sung của ứng dụng khi có những thay đổi như vậy. Điều này không phổ biến vì các thay đổi về cấu hình đủ điều kiện để kích hoạt thông báo truyền tin này rất hiếm.

Mã nguồn thông báo thay đổi trạng thái thiết bị nằm ở các vị trí sau trong platform/frameworks/base:

  • api/system-current.txt
  • core/java/android/content/Intent.java
  • core/res/AndroidManifest.xml
  • services/core/java/com/android/server/am/ActivityManagerService.java

Kiến trúc thông tin

Các thay đổi đối với cấu trúc thông tin cho ứng dụng Cài đặt cung cấp nhiều chức năng hơn và dễ triển khai hơn.

Kiểm thử

Chứng thực

Công cụ dòng lệnh Atest cho phép bạn tạo, cài đặt và chạy các chương trình kiểm thử Android trên máy, giúp tăng tốc đáng kể cho việc chạy lại chương trình kiểm thử mà không cần phải biết các tuỳ chọn dòng lệnh của bộ kiểm thử Liên minh thương mại.

Bộ kiểm thử khả năng tương thích

Tệp tải xuống CTS

Các gói Bộ kiểm tra tính tương thích (CTS) hỗ trợ Android 9 có trên trang Tải CTS xuống. Bạn có thể đồng bộ hoá mã nguồn cho các chương trình kiểm thử đi kèm với thẻ android-cts-9.0_r1 trong cây nguồn mở.

Các tuỳ chọn CTS

Đối với Android 9, CTS v2 có thêm lệnh và đối số sau:

  • run retry thử lại tất cả các bài kiểm thử không thành công hoặc không được thực thi từ các phiên trước.
  • ‘--shard-count phân đoạn một CTS chạy thành một số lượng mảnh độc lập nhất định để chạy song song trên nhiều thiết bị.

Ngoài ra, lệnh --retry-type chưa được ghi nhận trước đây đã được thêm vào cùng một tài liệu tham khảo về lệnh điều khiển của CTS v2.

Dịch vụ Phần tử bảo mật (SE)

Dịch vụ phần tử bảo mật kiểm tra các phần tử bảo mật được nền tảng toàn cầu hỗ trợ bằng cách xác định xem thiết bị có triển khai HAL SE hay không và nếu có thì có bao nhiêu. Đây là cơ sở để kiểm thử API và cách triển khai phần tử bảo mật cơ bản.

Hộp hợp nhất cảm biến

Hộp hợp nhất cảm biến được dùng trong kiểm thử hợp nhất cảm biến và kiểm thử đồng bộ hoá nhiều máy ảnh của Bộ kiểm thử hình ảnh máy ảnh (Camera ITS) và cung cấp môi trường kiểm thử nhất quán để đo lường độ chính xác của dấu thời gian của máy ảnh và các cảm biến khác cho điện thoại Android. Hãy xem các trang sau để biết thêm thông tin:

Trường nhìn rộng ITS-in-a-box

ITS-in-a-box có trường nhìn rộng là một hệ thống tự động được thiết kế để kiểm thử cả hệ thống máy ảnh có trường nhìn rộng (WFoV) và trường nhìn thông thường (RFoV) trong ITS của máy ảnh.

Bộ kiểm thử nhà cung cấp

Cấu trúc bộ điều khiển máy chủ

Cấu trúc trình điều khiển máy chủ của Bộ kiểm thử nhà cung cấp (VTS) là cấu trúc của khung kiểm thử VTS được tích hợp với dịch vụ phân phát kiểm thử dựa trên đám mây.

Kiểm thử HAL nhận biết tên dịch vụ

Kiểm thử HAL nhận biết tên dịch vụ VTS hỗ trợ lấy tên dịch vụ của một thực thể HAL nhất định dựa trên thiết bị đang chạy kiểm thử VTS.

Kiểm tra khả năng kiểm thử HAL

Kiểm tra khả năng kiểm thử HAL của VTS bao gồm một phương thức thời gian chạy để sử dụng cấu hình thiết bị nhằm xác định những kiểm thử VTS nào sẽ bị bỏ qua cho mục tiêu thiết bị đó.

Cơ sở hạ tầng kiểm thử tự động

Cơ sở hạ tầng kiểm thử tự động là cơ sở hạ tầng VTS để kiểm thử tự động VTS, CTS hoặc các kiểm thử khác trên thiết bị của đối tác chạy hình ảnh hệ thống chung (GSI) AOSP.

Gỡ lỗi

Dữ liệu đo từ xa nâng cao

Trong Android, thông tin đo từ xa là quá trình tự động thu thập thông tin chẩn đoán và sử dụng về thiết bị, hệ thống Android và ứng dụng. Trong các phiên bản Android trước, ngăn xếp đo từ xa bị hạn chế và không thu thập được thông tin cần thiết để xác định và giải quyết các vấn đề về độ tin cậy của hệ thống cũng như các vấn đề về thiết bị hoặc ứng dụng. Điều này khiến việc xác định nguyên nhân gốc rễ của sự cố trở nên khó khăn, nếu không muốn nói là không thể.

Android 9 có tính năng đo từ xa statsd giúp giải quyết vấn đề này bằng cách thu thập dữ liệu tốt hơn và nhanh hơn. statsd thu thập số liệu thống kê về việc sử dụng ứng dụng, pin và quy trình cũng như sự cố. Dữ liệu này được phân tích và dùng để cải thiện sản phẩm, phần cứng và dịch vụ.

Để biết thêm thông tin, hãy xem frameworks/base/cmds/statsd/.

Các tính năng bảo mật

Ký ứng dụng

Lược đồ chữ ký APK phiên bản 3 hỗ trợ tính năng xoay vòng khoá APK.

Hỗ trợ sinh trắc học

Android 9 bao gồm lớp công khai BiometricPrompt mà các ứng dụng có thể sử dụng để tích hợp tính năng hỗ trợ xác thực sinh trắc học theo cách không phân biệt thiết bị và phương thức. Để biết thêm thông tin về cách tích hợp ngăn xếp sinh trắc học để bao gồm BiometricPrompt, hãy xem phần Sinh trắc học.

Phân tích động

Android 9 hỗ trợ nhiều công cụ phân tích và giảm thiểu hành vi khai thác hơn.

Tính toàn vẹn của luồng điều khiển (CFI)

Tính toàn vẹn của luồng điều khiển (CFI) là một cơ chế bảo mật cấm thay đổi biểu đồ luồng điều khiển ban đầu của tệp nhị phân đã biên dịch, khiến việc thực hiện các cuộc tấn công như vậy trở nên khó khăn hơn đáng kể.

CFI nhân

Ngoài CFI hệ thống được bật theo mặc định, Android 9 trở lên còn hỗ trợ tính toàn vẹn của luồng điều khiển hạt nhân (CFI).

Mã hóa

Mã hoá dựa trên tệp

Mã hoá dựa trên tệp (FBE) được cập nhật để hoạt động với bộ nhớ có thể chuyển đổi. Các thiết bị mới nên sử dụng phương thức mã hoá dựa trên tệp thay vì mã hoá toàn bộ đĩa.

Mã hoá siêu dữ liệu

Android 9 trở lên có hỗ trợ tính năng mã hoá siêu dữ liệu khi có hỗ trợ phần cứng. Với tính năng mã hoá siêu dữ liệu, một khoá duy nhất xuất hiện tại thời điểm khởi động sẽ sử dụng phương thức mã hoá dựa trên tệp để mã hoá mọi nội dung chưa mã hoá.

Kho khoá

Android 9 trở lên bao gồm Keymaster 4 có các tính năng này.

StrongBox

Android 9 trở lên hỗ trợ các khoá Kho khoá Android được lưu trữ và sử dụng trong một CPU riêng biệt được thiết kế riêng cho các ứng dụng có độ bảo mật cao, chẳng hạn như một thành phần bảo mật (SE) được nhúng. StrongBox Keymaster là cách triển khai HAL Keymaster trong phần cứng bảo mật riêng biệt. StrongBox có:

  • CPU riêng biệt
  • Bộ nhớ bảo mật tích hợp
  • Trình tạo số ngẫu nhiên thực sự chất lượng cao
  • Bao bì chống giả mạo
  • Khả năng chống kênh bên

Nhập khoá bảo mật

Để nhập khoá vào Keymaster 4 một cách an toàn, khoá được tạo bên ngoài thiết bị sẽ được mã hoá bằng thông số kỹ thuật của các quyền xác định cách sử dụng khoá.

Hỗ trợ 3DES

Keymaster 4 bao gồm 3DES để tương thích với các hệ thống cũ sử dụng 3DES.

Liên kết phiên bản

Để hỗ trợ cấu trúc mô-đun của Treble và huỷ liên kết system.img với boot.img, Keymaster 4 đã thay đổi mô hình liên kết phiên bản khoá để có các cấp độ bản vá riêng biệt cho từng phân vùng. Điều này cho phép cập nhật từng phân vùng một cách độc lập trong khi vẫn cung cấp tính năng bảo vệ tính năng quay lại phiên bản cũ.

Android Protected Confirmation API

Các thiết bị được hỗ trợ chạy Android 9 cho phép nhà phát triển sử dụng API Xác nhận bảo vệ của Android. Với API này, các ứng dụng có thể sử dụng một thực thể của ConfirmationPrompt để hiển thị lời nhắc cho người dùng, yêu cầu họ phê duyệt một tuyên bố ngắn. Câu lệnh này cho phép ứng dụng khẳng định lại rằng người dùng muốn hoàn tất một giao dịch nhạy cảm, chẳng hạn như thanh toán.

SELinux

Hộp cát SELinux cho mỗi ứng dụng

Hộp cát ứng dụng có các biện pháp bảo vệ và trường hợp kiểm thử mới để đảm bảo rằng tất cả ứng dụng không đặc quyền nhắm đến Android 9 trở lên đều chạy hộp cát SELinux riêng lẻ.

Các thay đổi về SELinux của Treble

Các bản cập nhật cho Treble SELinux trong Android 9 trở lên được ghi lại trong một số trang trong mục SELinux.

Khởi chạy nhà cung cấp

Trình khởi tạo nhà cung cấp sẽ đóng lỗ hổng trong hệ thống Treble/phân tách nhà cung cấp bằng cách sử dụng một miền SELinux riêng biệt để chạy các lệnh /vendor có quyền dành riêng cho nhà cung cấp.

Thuộc tính hệ thống

Android 9 hạn chế việc chia sẻ thuộc tính hệ thống giữa các phân vùng systemvendor khi không cần thiết, đồng thời cung cấp một phương thức để đảm bảo tính nhất quán giữa các thuộc tính hệ thống được chia sẻ.

Kiểm thử thuộc tính SELinux

Android 9 bao gồm các kiểm thử thời gian xây dựng mới giúp đảm bảo tất cả tệp ở các vị trí cụ thể đều có các thuộc tính thích hợp. Ví dụ: tất cả tệp trong sysfs đều có thuộc tính sysfs_type bắt buộc.

Âm thanh

Hiệu ứng âm thanh có độ phân giải cao

Các bản cập nhật cho hiệu ứng âm thanh có độ phân giải cao bao gồm việc chuyển đổi quá trình xử lý hiệu ứng từ định dạng int16 sang float và tăng số lượng kênh đầu ra đồng thời của ứng dụng, bộ nhớ tối đa của ứng dụng/máy chủ và tổng số kênh kết hợp.

Camera

Máy ảnh USB gắn ngoài

Android 9 trở lên hỗ trợ sử dụng máy ảnh USB cắm và chạy (tức là webcam) bằng API Camera2 của Android tiêu chuẩn và giao diện HIDL của máy ảnh.

Theo dõi chuyển động

Thiết bị máy ảnh có thể quảng cáo khả năng theo dõi chuyển động.

Hỗ trợ nhiều camera

Tính năng Hỗ trợ nhiều máy ảnh bao gồm tính năng hỗ trợ API cho các thiết bị nhiều máy ảnh thông qua một thiết bị máy ảnh logic mới bao gồm hai hoặc nhiều thiết bị máy ảnh thực tế hướng về cùng một hướng.

Thông số phiên

Việc triển khai các thông số phiên có thể làm giảm độ trễ bằng cách cho phép ứng dụng máy ảnh chủ động định cấu hình một tập hợp con các thông số yêu cầu tốn kém trong giai đoạn khởi chạy phiên chụp.

Một nhà sản xuất, nhiều vùng đệm người dùng

Một nhà sản xuất, nhiều phương thức truyền vùng đệm máy ảnh của người dùng là một tập hợp các phương thức cho phép ứng dụng máy ảnh thêm và xoá các nền tảng đầu ra một cách linh động trong khi phiên chụp đang hoạt động và quá trình truyền trực tuyến của máy ảnh đang diễn ra.

Khả năng kết nối

Gọi điện và nhắn tin

Triển khai gói dữ liệu

Android 9 trở lên hỗ trợ tốt hơn cho các nhà mạng triển khai gói dữ liệu bằng cách sử dụng API SubscriptionPlan.

Ứng dụng gọi điện của bên thứ ba

Android 9 trở lên cung cấp các API cho phép ứng dụng gọi của bên thứ ba (3P) xử lý các cuộc gọi đến đồng thời của nhà mạng và ghi lại các cuộc gọi trong nhật ký cuộc gọi của hệ thống.

Nhà mạng

Thông tin nhận dạng nhà mạng

Trong Android 9, AOSP thêm cơ sở dữ liệu mã nhận dạng nhà mạng để hỗ trợ xác định nhà mạng. Cơ sở dữ liệu này giảm thiểu logic trùng lặp và trải nghiệm ứng dụng bị phân mảnh bằng cách cung cấp một cách phổ biến để xác định nhà mạng.

eSIM

SIM nhúng (eSIM hoặc eUICC) là công nghệ mới nhất cho phép người dùng thiết bị di động tải hồ sơ nhà mạng xuống và kích hoạt dịch vụ của nhà mạng mà không cần thẻ SIM thực. Trong Android 9 trở lên, khung Android cung cấp các API tiêu chuẩn để truy cập vào eSIM và quản lý hồ sơ thuê bao trên eSIM. Để biết thêm thông tin, hãy xem:

Hỗ trợ nhiều SIM cho chế độ cài đặt IMS

Android 9 trở lên cải thiện chế độ cài đặt người dùng cho hệ thống con đa phương tiện IP (IMS). Bạn có thể thiết lập tính năng gọi qua LTE (VoLTE), gọi video và gọi qua Wi-Fi theo từng gói thuê bao thay vì chia sẻ các chế độ cài đặt này trên tất cả gói thuê bao.

Thông báo trạng thái SIM

Trong Android 9 trở lên, Intent.ACTION_SIM_STATE_CHANGED không còn được dùng nữa và hai thông báo truyền tin riêng biệt cho trạng thái thẻ và trạng thái ứng dụng thẻ được thêm vào, đó là TelephonyManager.ACTION_SIM_CARD_STATE_CHANGEDTelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED.

Với những thay đổi này, các trình nhận chỉ cần biết liệu có thẻ hay không sẽ không phải theo dõi các thay đổi về trạng thái ứng dụng và các trình nhận chỉ cần biết liệu ứng dụng thẻ đã sẵn sàng hay chưa sẽ không phải theo dõi các thay đổi về trạng thái thẻ.

Hai thông báo truyền tin mới là @SystemApis và không cố định. Chỉ những trình thu nhận có quyền READ_PRIVILEGED_PHONE_STATE mới có thể nhận được thông báo truyền tin.

Ý định sẽ không được phát lại khi bạn mở khoá thiết bị. Các trình thu nhận phụ thuộc vào thông báo truyền tin được gửi trước khi bạn mở khoá phải sử dụng directBootAware hoặc phải truy vấn trạng thái sau khi người dùng mở khoá. Bạn có thể truy vấn các trạng thái bằng cách sử dụng các API tương ứng trong TelephonyManager, getSimCardState()getSimApplicationState().

Wi-Fi

Wi-Fi của nhà mạng

Tính năng Wi-Fi của nhà mạng cho phép các thiết bị tự động kết nối với mạng Wi-Fi do nhà mạng triển khai. Ở những khu vực có tình trạng giao thông đông đúc hoặc có vùng phủ sóng di động tối thiểu, chẳng hạn như sân vận động hoặc nhà ga tàu điện ngầm, Wi-Fi của nhà mạng giúp cải thiện khả năng kết nối và giảm lưu lượng truy cập.

Sắp xếp ngẫu nhiên MAC

Tính năng tạo địa chỉ MAC ngẫu nhiên cho phép các thiết bị sử dụng địa chỉ MAC ngẫu nhiên khi thăm dò mạng mới trong khi hiện không liên kết với mạng nào. Trong Android 9 trở lên, bạn có thể bật tuỳ chọn dành cho nhà phát triển để thiết bị sử dụng địa chỉ MAC ngẫu nhiên khi kết nối với mạng Wi-Fi.

Tự động bật Wi-Fi

Khi bạn bật tính năng Tự động bật Wi-Fi, Wi-Fi sẽ tự động bật lại bất cứ khi nào thiết bị ở gần một mạng Wi-Fi đã lưu có chỉ báo cường độ tín hiệu nhận được (RSSI) tương đối đủ cao.

Thời gian trọn vòng của Wi-Fi

Thời gian truyền dữ liệu qua lại (RTT) của Wi-Fi cho phép các thiết bị đo lường khoảng cách đến các thiết bị hỗ trợ khác, cho dù đó là điểm truy cập (AP) hay thiết bị ngang hàng Wi-Fi Aware (nếu Wi-Fi Aware được hỗ trợ trên thiết bị). Tính năng này được xây dựng dựa trên giao thức IEEE 802.11mc và cho phép các ứng dụng sử dụng độ chính xác và khả năng nhận biết vị trí nâng cao.

Cải tiến tính năng tính điểm Wi-Fi

Các mô hình tính điểm Wi-Fi cải tiến nhanh chóng và chính xác xác định thời điểm một thiết bị nên thoát khỏi mạng Wi-Fi đã kết nối hoặc chuyển sang mạng Wi-Fi mới. Các mô hình này mang đến trải nghiệm đáng tin cậy và liền mạch cho người dùng bằng cách tránh các khoảng trống về khả năng kết nối.

Xem lại và điều chỉnh các giá trị RSSI trong tài nguyên config.xml, đặc biệt là các giá trị sau:

  • config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
  • config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
  • config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz

Tính năng đồng thời STA/AP Wi-Fi

Tính năng đồng thời STA/AP Wi-Fi là khả năng các thiết bị hoạt động đồng thời ở chế độ trạm (STA) và điểm truy cập (AP). Đối với các thiết bị hỗ trợ Wi-Fi băng tần kép đồng thời (DBS), tính năng này sẽ mở ra các chức năng như không làm gián đoạn Wi-Fi STA khi người dùng muốn bật điểm phát sóng (SoftAP).

Cải tiến WiFiStateMachine

WifiStateMachine là lớp chính dùng để kiểm soát hoạt động Wi-Fi, điều phối hoạt động đầu vào của người dùng (chế độ hoạt động: điểm phát sóng, quét, kết nối hoặc tắt) và kiểm soát các thao tác trên mạng Wi-Fi (chẳng hạn như quét hoặc kết nối).

Trong Android 9 trở lên, mã khung Wi-Fi và cách triển khai WifiStateMachine được thiết kế lại, giúp giảm kích thước mã, logic điều khiển Wi-Fi dễ theo dõi hơn, cải thiện độ chi tiết của hoạt động kiểm soát, đồng thời tăng mức độ bao phủ và chất lượng của kiểm thử đơn vị.

Ở cấp độ cao,WifiStateMachine cho phép Wi-Fi ở một trong 4 trạng thái:

  • Chế độ ứng dụng (có thể kết nối và quét)
  • Chế độ chỉ quét
  • Chế độ SoftAP (điểm phát sóng Wi-Fi)
  • Tắt (Wi-Fi tắt hoàn toàn)

Mỗi chế độ Wi-Fi có các yêu cầu khác nhau để chạy dịch vụ và phải được thiết lập một cách nhất quán, chỉ xử lý các sự kiện liên quan đến hoạt động của chế độ đó. Cách triển khai mới hạn chế mã cho các sự kiện liên quan đến chế độ đó, giảm thời gian gỡ lỗi và nguy cơ đưa ra lỗi mới do độ phức tạp. Ngoài việc xử lý rõ ràng cho chức năng chế độ, việc quản lý luồng được xử lý một cách nhất quán và việc sử dụng các kênh không đồng bộ sẽ bị loại bỏ dưới dạng cơ chế đồng bộ hoá.

Nội dung cập nhật về quyền truy cập Wi-Fi

Trên Android 9 trở lên, quyền ứng dụng CHANGE_WIFI_STATE được bật theo mặc định. Bạn có thể tắt quyền này cho mọi ứng dụng trên trang cài đặt trong phần Cài đặt > Ứng dụng và thông báo > Quyền truy cập đặc biệt của ứng dụng > Kiểm soát Wi-Fi.

Ứng dụng phải có khả năng xử lý các trường hợp không được cấp quyền CHANGE_WIFI_STATE.

Để xác thực hành vi này, hãy chạy roboelectric và kiểm thử thủ công.

Đối với kiểm thử thủ công:

  1. Chuyển đến phần Cài đặt > Ứng dụng và thông báo > Quyền truy cập đặc biệt > Kiểm soát Wi-Fi.
  2. Chọn và tắt quyền cho ứng dụng của bạn.
  3. Xác minh rằng ứng dụng của bạn có thể xử lý trường hợp quyền CHANGE_WIFI_STATE không được cấp.

Ngừng sử dụng WPS

Do các vấn đề về bảo mật, tính năng thiết lập Wi-Fi được bảo vệ (WPS) trong WiFiManager không còn được dùng nữa và bị tắt trong Android 9 trở lên. Tuy nhiên, WiFiDirect vẫn sử dụng WPS trong trình cấp phép WPA.

Đồ hoạ

Triển khai

API Vulkan 1.1

Android 9 trở lên hỗ trợ triển khai API đồ hoạ Vulkan 1.1.

Công cụ WinScope để theo dõi quá trình chuyển đổi cửa sổ

Android 9 trở lên có công cụ WinScope để theo dõi quá trình chuyển đổi cửa sổ. WinScope cung cấp cơ sở hạ tầng và công cụ để ghi lại và phân tích trạng thái của trình quản lý cửa sổ trong và sau khi chuyển đổi. Công cụ này cho phép ghi lại và chuyển qua các quá trình chuyển đổi cửa sổ, đồng thời ghi lại tất cả trạng thái liên quan của trình quản lý cửa sổ vào một tệp theo dõi. Bạn có thể sử dụng dữ liệu này để phát lại và từng bước thực hiện quá trình chuyển đổi.

Mã nguồn của công cụ WinScope nằm tại platform/development/tools/winscope.

Tương tác

Âm thanh trên ô tô

Âm thanh ô tô mô tả cấu trúc âm thanh cho các hoạt động triển khai Android liên quan đến ô tô.

HAL Neural Networks (NN) xác định một bản tóm tắt của nhiều trình tăng tốc. Trình điều khiển cho các trình tăng tốc này phải tuân thủ HAL này.

HAL của xe

Thuộc tính xe mô tả các thay đổi đối với giao diện HAL của xe.

Chọn vệ tinh GNSS

Khi làm việc với các HAL hệ thống vệ tinh toàn cầu (GNSS) mới (phiên bản 1.1 trở lên), khung Android sẽ theo dõi các chế độ cài đặt Android. Đối tác có thể thay đổi chế độ cài đặt từ Dịch vụ Google Play hoặc các bản cập nhật hệ thống khác. Các chế độ cài đặt này cho HAL GNSS biết liệu có nên sử dụng một số vệ tinh GNSS nhất định hay không. Điều này có thể hữu ích trong trường hợp lỗi vệ tinh hoặc lỗi cụm sao GNSS liên tục, hoặc để phản ứng nhanh hơn với các vấn đề triển khai HAL GNSS có thể xảy ra khi kết hợp các cụm sao bằng nhiều hệ thống thời gian và sự kiện bên ngoài, chẳng hạn như chuyển đổi số giây, ngày hoặc tuần.

Mô hình phần cứng GNSS

Trong Android 9, GNSS HAL phiên bản 1.1 trở lên có thể truyền thông tin về API phần cứng cho nền tảng. Nền tảng cần triển khai giao diện IGnssCallback và truyền một tay điều khiển đến HAL. HAL GNSS truyền thông tin về mô hình phần cứng thông qua phương thức LocationManager#getGnssHardwareModelName(). Nhà sản xuất thiết bị nên làm việc với các nhà cung cấp HAL GNSS để cung cấp thông tin này nếu có thể.

Quyền

Định cấu hình bản cập nhật về quyền kiểm soát truy cập tuỳ ý

Định cấu hình tính năng Kiểm soát quyền truy cập tuỳ ý (DAC) chứa các bản cập nhật cho cơ chế mã nhận dạng Android (AID) để mở rộng chức năng của hệ thống tệp.

Đưa quyền của ứng dụng đặc quyền vào danh sách cho phép

Trong Android 9 trở lên, nếu có quyền cần bị từ chối, hãy chỉnh sửa tệp XML để sử dụng thẻ deny-permission thay vì thẻ permission dùng trong các bản phát hành trước.

Dữ liệu

Cải tiến tính năng ước tính băng thông

Android 9 cải thiện khả năng hỗ trợ tính năng ước tính băng thông. Các ứng dụng Android có thể thiết lập độ phân giải phù hợp hơn cho cuộc gọi video và phát trực tuyến video nếu có thể truy cập vào băng thông dữ liệu có sẵn.

Trên các thiết bị chạy Android 6.0 trở lên, phương thức gọi muốn có thông tin ước tính về băng thông cho mạng di động sẽ gọi ConnectivityManager.requestBandwidthUpdate() và khung có thể cung cấp thông tin ước tính về băng thông đường truyền xuống.

Tuy nhiên, trên các thiết bị chạy phiên bản 9 trở lên, lệnh gọi lại onCapabilitiesChanged() sẽ tự động kích hoạt khi có sự thay đổi đáng kể về băng thông ước tính và lệnh gọi requestBandwidthUpdate() sẽ không hoạt động; getLinkDownstreamBandwidthKbps()getLinkUpstreamBandwidthKbps() được điền sẵn thông tin cập nhật do lớp vật lý cung cấp.

Ngoài ra, các thiết bị có thể kiểm tra băng thông của ô LTE thông qua ServiceState.getCellBandwidths(). Điều này cho phép các ứng dụng xác định lượng băng thông (tần số) có sẵn trên một ô nhất định. Thông tin về băng thông của ô có sẵn thông qua một trình đơn ẩn để người kiểm thử thực địa có thể kiểm tra thông tin mới nhất.

Giám sát lưu lượng truy cập eBPF

Công cụ lưu lượng truy cập mạng eBPF sử dụng kết hợp việc triển khai hạt nhân và không gian người dùng để theo dõi mức sử dụng mạng trên thiết bị kể từ lần khởi động thiết bị gần đây nhất. Công cụ này cung cấp thêm chức năng như gắn thẻ ổ cắm, tách lưu lượng truy cập trên nền trước/nền sau và tường lửa theo UID để chặn ứng dụng truy cập mạng tuỳ thuộc vào trạng thái thiết bị.

Khôi phục về các API cấp thấp hơn

Giờ đây, các thiết bị có thể khôi phục từ các phiên bản hệ điều hành trong tương lai. Điều này đặc biệt hữu ích khi người dùng đã nâng cấp điện thoại nhưng sau đó bị mất hoặc hỏng điện thoại.

Nếu nhà sản xuất thiết bị gốc (OEM) sửa đổi các tác nhân sao lưu cho bất kỳ gói hệ thống nào (android, hệ thống, cài đặt), thì các tác nhân đó phải xử lý việc khôi phục các tập hợp sao lưu được tạo trên các phiên bản cao hơn của nền tảng mà không gặp sự cố và khôi phục ít nhất một số dữ liệu.

Hãy cân nhắc sử dụng trình xác thực để kiểm tra các giá trị không hợp lệ của một phần dữ liệu sao lưu nhất định và chỉ khôi phục dữ liệu hợp lệ, như trong core/java/android/provider/SettingsValidators.java.

Tính năng này được bật theo mặc định. Bạn có thể tắt tính năng hỗ trợ của SettingsBackupAgent để khôi phục từ các phiên bản trong tương lai thông qua Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION. Bạn không cần triển khai thêm trừ phi nhà sản xuất thiết bị mở rộng một trong các tác nhân sao lưu có trong ROM (hoặc thêm một tác nhân tuỳ chỉnh).

Tính năng này cho phép khôi phục hệ thống từ các phiên bản trong tương lai của nền tảng; tuy nhiên, có thể dự kiến dữ liệu được khôi phục sẽ không đầy đủ. Hướng dẫn sau đây áp dụng cho các tác nhân sao lưu sau:

  • PackageManagerBackupAgent hỗ trợ các phiên bản trong tương lai của dữ liệu sao lưu thông qua việc tạo phiên bản định dạng; các tiện ích ở đây phải tương thích với mã khôi phục hiện tại hoặc làm theo hướng dẫn trong lớp, bao gồm cả việc tăng các hằng số thích hợp.

  • SystemBackupAgent chỉ định restoreAnyVersion = false trong Android 9 trở lên. API này không hỗ trợ khôi phục từ các phiên bản API cao hơn.

  • SettingsBackupAgent chỉ định restoreAnyVersion = true trong Android 9 trở lên. Hỗ trợ một phần thông qua trình xác thực. Bạn có thể khôi phục chế độ cài đặt từ phiên bản API cao hơn nếu có trình xác thực cho chế độ cài đặt đó trong hệ điều hành mục tiêu. Khi thêm bất kỳ chế độ cài đặt nào, bạn phải thêm trình xác thực tương ứng. Hãy kiểm tra lớp này để biết thông tin chi tiết.

  • Mọi trình đại diện sao lưu tuỳ chỉnh có trong ROM đều phải tăng mã phiên bản bất cứ khi nào có thay đổi không tương thích với định dạng dữ liệu sao lưu và đảm bảo restoreAnyVersion = false (mặc định) nếu trình đại diện của họ không được chuẩn bị để xử lý dữ liệu sao lưu từ phiên bản mã trong tương lai.

Doanh nghiệp

Cải thiện hồ sơ được quản lý

Các thay đổi về trải nghiệm người dùng đối với hồ sơ được quản lý giúp người dùng dễ dàng xác định, truy cập và kiểm soát hồ sơ được quản lý.

Tạm dừng OTA

@SystemApi mới cho phép chủ sở hữu thiết bị tạm dừng bản cập nhật OTA vô thời hạn, bao gồm cả bản cập nhật bảo mật.

Hiệu suất

Health 2.0

Android 9 trở lên bao gồm android.hardware.health HAL 2.0, một bản nâng cấp phiên bản lớn từ health@1.0 HAL. Để biết thêm thông tin, hãy xem các trang sau:

Giải pháp lưu vào bộ nhớ đệm APK

Android 9 trở lên có giải pháp lưu vào bộ nhớ đệm APK để cài đặt nhanh các ứng dụng tải trước trên thiết bị hỗ trợ phân vùng A/B. Nhà sản xuất thiết bị gốc (OEM) có thể đặt các ứng dụng tải trước và ứng dụng phổ biến vào bộ nhớ đệm APK, chủ yếu được lưu trữ trong phân vùng B trống trên các thiết bị mới được phân vùng A/B mà không ảnh hưởng đến bất kỳ không gian dữ liệu nào mà người dùng nhìn thấy.

Tối ưu hoá theo hướng dẫn của hồ sơ

Android 9 trở lên hỗ trợ sử dụng tính năng tối ưu hoá theo hướng dẫn của hồ sơ (PGO) của Clang trên các mô-đun Android gốc có quy tắc bản dựng bản thiết kế.

Ghi nhật ký trước

Một chế độ đặc biệt của SQLiteDatabase có tên là ghi trước khả năng tương thích (WAL) cho phép cơ sở dữ liệu sử dụng journal_mode=WAL trong khi vẫn giữ tối đa một kết nối cho mỗi cơ sở dữ liệu.

Thời gian khởi động

Android 9 thay đổi tính năng tối ưu hoá thời gian khởi động như mô tả trong phần Tối ưu hoá thời gian khởi động.

Sức mạnh

Hạn chế trong nền

Android 9 trở lên có các quy định hạn chế ở chế độ nền cho phép người dùng hạn chế những ứng dụng có thể làm tiêu hao pin. Hệ thống cũng có thể đề xuất tắt các ứng dụng đang ảnh hưởng tiêu cực đến tình trạng của thiết bị.

Thiết bị không dùng pin

Android 9 xử lý thiết bị không dùng pin một cách tinh tế hơn so với các bản phát hành trước. Android 9 xoá mã cho các thiết bị không có pin mà theo mặc định giả định rằng có pin, đã sạc 100% và ở trạng thái tốt với nhiệt độ đọc bình thường trên nhiệt điện trở.