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 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 này. Xem các bản cập nhật trang web tháng 8 năm 2018 để biết hướng dẫn di chuyển và đổi tên phần.
Xây dựng
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 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 dành cho thiết bị chạy Android 9 và thiết bị nâng cấp lên Android 9.
Ngành 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 pháp để xác minh tính 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 chúng không được sử dụng hoặc không cần thiết.
HIDL
Khối bộ nhớ HIDL
HIDL MemoryBlock là một lớp trừu tượng được xây dựng trên hidl_memory
, HIDL @1.0::IAllocator
và HIDL @1.0::IMapper
. Nó được thiết kế cho các dịch vụ HIDL có nhiều khối bộ nhớ chia sẻ một đống bộ nhớ.
Lớp phủ cây thiết bị
Lớp phủ nén
Android 9 trở lên bao gồm hỗ trợ cho 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ị.
Cập nhật DTO
Android 9 trở lên yêu cầu bộ nạp khởi động chuyển blob cây thiết bị hợp nhất vào kernel 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 bao gồm 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 các thay đổi đối với thuộc tính trong SoC DT, bộ tải khởi động phải tự động phủ một DT dành riêng cho thiết bị lên trên SoC DT. Để biết thêm thông tin, hãy xem Biên dịch & Xác minh .
Tuân thủ hạt nhân
Android 9 trở lên bao gồm các yêu cầu ảnh hưởng đến kernel, giao diện của nó và việc sử dụng DTBO. Để biết thêm thông tin, hãy xem các trang sau:
- Cập nhật và phát hành hạt nhân ổn định
- Hạt nhân phổ biến của Android
- Yêu cầu hạt nhân mô-đun
- Yêu cầu về giao diện
- Lớp phủ cây thiết bị
Nhà cung cấp NDK
Thay đổi thiết kế
Để biết thông tin về những thay đổi thiết kế của VNDK trong Android 9 trở lên, hãy xem các trang sau:
- Bộ công cụ phát triển gốc của nhà cung cấp (đồngK)
- Hỗ trợ hệ thống xây dựng VNDK
- Công cụ định nghĩa VNĐK
- Thư mục, quy tắc và chính sách riêng biệt
- Tiện ích mở rộng VNĐK
- Không gian tên trình liên kết
Trình kiểm tra ABI
Trang Tính ổn định của ABI mô tả trình kiểm tra giao diện nhị phân ứng dụng (ABI), đảm bảo rằng những thay đổi được thực hiện đối với thư viện VNĐK sẽ duy trì sự tuân thủ ABI.
ảnh chụp nhanh VNĐK
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à nhà cung cấp được xây dựng 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ả các bản cập nhật trong Android 9 trở lên:
Lịch trình ngừng sử dụng HIDL
Các trang sau đây mô tả cách Android ngừng sử dụng và loại bỏ HIDL HAL:
Bộ nạp khởi động
Phân vùng sản phẩm
Android 9 trở lên hỗ trợ phân vùng xây dự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) khỏi phân vùng /system
sang phân vùng /vendor
mà không dành không gian cho các thành phần dành riêng cho OEM được xây dựng từ hệ thống xây dựng Android.
Tuân thủ lý do khởi động Canonical
Trang Lý do khởi động Canonical mô tả các thay đổi đối với thông số lý do khởi động bộ nạp khởi động trong Android 9 trở lên.
Hệ thống là root
Tất cả các thiết bị chạy Android 9 trở lên đều phải sử dụng system-as-root , kết hợp ramdisk.img
vào system.img
(còn được gọi là no-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 đề . Bộ nạp khởi động phải kiểm tra trường phiên bản này và phân tích tiêu đề tương ứng.
DTBO đang trong quá trình phục hồi
Để 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 .
Trưng bày
Hiển thị các phần cắt ra
Phần cắt bỏ màn hình cho phép các nhà phát triển ứng dụng tạo ra trải nghiệm sống động, tràn viền trong khi vẫn dành không gian cho các cảm biến quan trọng ở mặt trước của thiết bị.
Xoay đề xuất
Các bản cập nhật cho hành vi xoay màn hình Android 9 trở lên bao gồm hỗ trợ điều khiển hướng tới người dùng để ghim xoay màn hình thành ngang hoặc dọc ngay cả khi vị trí thiết bị thay đổi.
Chuyển đổi ứng dụng được đồng bộ hóa
Chuyển đổi ứng dụng được đồng bộ hóa cho phép tạo hoạt ảnh chuyển đổi ứng dụng mới.
Phân loại văn bản (trước đây là TEXTCCLASSIFIER)
Android 9 trở lên bao gồm dịch vụ Trình phân loại văn bản , đây là cách được đề xuất để triển khai phân loại văn bản và triển khai dịch vụ mặc định.
Màu sắc rộng
Android 9 trở lên bao gồm hỗ trợ cho gam màu 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 đích cuối
Để sử dụng gam màu 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 soạn thảo phần cứng, GPU) phải hỗ trợ gam màu rộng hoặc định dạng vùng đệm. Các thiết bị không bắt buộc phải yêu cầu hỗ trợ cho nội dung có phạm vi rộng ngay cả khi phần cứng hỗ trợ. Tuy nhiên, nên kích hoạt gam màu rộng để tận dụng tối đa phần cứng. Để tránh trải nghiệm hình ảnh không nhất quán, không nên tắt gam màu rộng trong thời gian chạy.
Khả năng tương thích
Tài liệu định nghĩa khả năng tương thích của Android
Tài liệu Định nghĩa Tương thích (CDD) 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à các thay đổi về yêu cầu đối với chức năng đã phát hành trước đó.
Cài đặt
Widget ứng dụng tốt hơn
Khung tiện ích ứng dụng Android giúp tăng khả năng hiển thị về tương tác của người dùng, đặc biệt khi người dùng xóa hoặc thêm tiện ích theo cách thủ công. Chức năng này đi kèm theo mặc định với Launcher3.
Các nhà sản xuất cần cập nhật ứng dụng trình khởi chạy của họ (được cung cấp cùng với thiết bị) để hỗ trợ tính năng này nếu không dựa trên Launcher3. Các OEM cần hỗ trợ trường widgetFeatures mới trong trình khởi chạy mặc định của họ.
Lưu ý rằng tính năng này chỉ hoạt động liên tục khi trình khởi chạy triển khai nó như mong đợi. AOSP bao gồm việc triển khai mẫu. Xem Id thay đổi AOSP Iccd6f965fa3d61992244a365efc242122292c0ca để biết mã mẫu được cung cấp.
Thông báo thay đổi trạng thái thiết bị cho người cài đặt gói
Một chương trình phát sóng hệ thống được bảo vệ có thể được gửi tới 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 độ hiển thị. Người nhận có thể được đăng ký trong bảng kê khai và một quy trình sẽ thức tỉnh để nhận chương trình phát sóng. Điều này hữu ích cho những người 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ì những thay đổi cấu hình đủ điều kiện để kích hoạt chương trình phát sóng này rất hiếm.
Mã nguồn thông báo thay đổi trạng thái thiết bị được đặt tại 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
Những thay đổi về cấu trúc thông tin của ứng dụng Cài đặt mang lại nhiều chức năng hơn và triển khai dễ dàng hơn.
Kiểm tra
Bài kiểm tra
Công cụ dòng lệnh Atest cho phép bạn xây dựng, cài đặt và chạy thử nghiệm Android cục bộ, tăng tốc đáng kể việc chạy lại thử nghiệm mà không cần kiến thức về các tùy chọn dòng lệnh khai thác thử nghiệm của Liên đoàn Thương mại.
Bộ kiểm tra khả năng tương thích
tải xuống CTS
Các gói Bộ kiểm tra khả năng tương thích (CTS) hỗ trợ Android 9 có sẵn trên trang Tải xuống CTS . Mã nguồn của các thử nghiệm đi kèm có thể được đồng bộ hóa với thẻ android-cts-9.0_r1
trong cây nguồn mở.
Tùy chọn CTS
Đối với Android 9, CTS v2 nhận được lệnh và đối số sau:
-
run retry
thử lại tất cả các bài kiểm tra không thành công hoặc không được thực hiện từ các phiên trước. -
'--shard-count
phân đoạn một CTS chạy thành một số khối độc lập nhất định để chạy song song trên nhiều thiết bị.
Ngoài ra, lệnh --retry-type
không có giấy tờ trước đó đã được thêm vào cùng tham chiếu lệnh của bảng điều khiển 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 các thiết bị có triển khai SE HAL hay không và nếu có thì bao nhiêu. Điều này được sử dụng làm cơ sở để kiểm tra API và việc triển khai phần tử bảo mật cơ bản.
Hộp tổng hợp cảm biến
Hộp tổng hợp cảm biến được sử dụng trong thử nghiệm tổng hợp cảm biến của Bộ kiểm tra hình ảnh máy ảnh (Camera ITS) và thử nghiệm đồng bộ hóa nhiều camera, đồng thời cung cấp môi trường thử nghiệm nhất quán để đo độ chính xác về 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. Xem các trang này để biết thêm thông tin:
- Hướng dẫn khởi động nhanh Hộp kết hợp cảm biến cung cấp các bước để thiết lập thử nghiệm kết hợp cảm biến và hộp kết hợp cảm biến lần đầu tiên.
- Bộ lắp ráp hộp kết hợp cảm biến cung cấp các bước để lắp ráp hộp kết hợp cảm biến.
Trường nhìn rộng ITS-in-a-box
Trường nhìn rộng ITS-in-a-box là một hệ thống tự động được thiết kế để kiểm tra cả hệ thống camera trường nhìn rộng (WFoV) và trường nhìn thông thường (RFoV) trong Camera ITS.
Bộ thử nghiệm nhà cung cấp
Kiến trúc bộ điều khiển máy chủ
Kiến trúc bộ điều khiển máy chủ của Vendor Test Suite (VTS) là kiến trúc của khung kiểm tra VTS được tích hợp với dịch vụ phục vụ kiểm tra dựa trên đám mây.
Kiểm tra HAL nhận biết tên dịch vụ
Thử nghiệm HAL nhận biết tên dịch vụ VTS hỗ trợ lấy tên dịch vụ của một phiên bản HAL nhất định dựa trên thiết bị mà thử nghiệm VTS đang chạy.
Kiểm tra khả năng kiểm tra HAL
Kiểm tra khả năng kiểm tra VTS HAL bao gồm phương pháp thời gian chạy để sử dụng cấu hình thiết bị nhằm xác định những kiểm tra VTS nào nên bỏ qua cho mục tiêu thiết bị đó.
Cơ sở hạ tầng thử nghiệm tự động
Cơ sở hạ tầng kiểm tra tự động là cơ sở hạ tầng VTS để kiểm tra tự động VTS, CTS hoặc các thử nghiệm khác trên các thiết bị đối tác chạy hình ảnh hệ thống chung AOSP (GSI).
Gỡ lỗi
Đo từ xa nâng cao
Trong Android, đo từ xa là quá trình tự động thu thập thông tin sử dụng và chẩn đoán về thiết bị, hệ thống Android và ứng dụng. Trong các phiên bản trước của Android, ngăn xếp dữ liệu đo từ xa bị hạn chế và không thu thập được thông tin cần thiết để xác định cũng như giải quyết độ tin cậy của hệ thống cũng như các sự cố về thiết bị hoặc ứng dụng. Điều này làm cho việc xác định nguyên nhân gốc rễ của vấn đề trở nên khó khăn, nếu không muốn nói là không thể.
Android 9 bao gồm tính năng đo từ statsd
, giúp giải quyết sự thiếu hụt này bằng cách thu thập dữ liệu tốt hơn nhanh hơn. statsd
thu thập số liệu thống kê về mức sử dụng ứng dụng, pin và quy trình cũng như các sự cố. Dữ liệu được phân tích và sử dụng để cải thiện sản phẩm, phần cứng và dịch vụ.
Để biết thêm chi tiết, xem frameworks/base/cmds/statsd/
.
Tính năng bảo mật
Ký ứng dụng
Lược đồ chữ ký APK v3 hỗ trợ xoay vòng khóa APK.
Hỗ trợ sinh trắc học
Android 9 bao gồm lớp công khai BiometricPrompt
, lớp công khai mà ứng dụng có thể sử dụng để tích hợp hỗ trợ xác thực sinh trắc học theo kiểu bất khả tri về thiết bị và phương thức. Để biết thêm thông tin về việc tích hợp ngăn xếp sinh trắc học của bạn để bao gồm BiometricPrompt
, hãy xem Biometrics .
Phân tích động
Android 9 bao gồm hỗ trợ cho nhiều công cụ phân tích và giảm thiểu khai thác hơn.
Kiểm soát tính toàn vẹn của luồng (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 được 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 hạt 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 luồng điều khiển hạt nhân (CFI) .
Mã hóa
Mã hóa dựa trên tập tin
Mã hóa dựa trên tệp (FBE) được cập nhật để hoạt động với bộ lưu trữ có thể sử dụng được . Các thiết bị mới nên sử dụng mã hóa dựa trên tệp thay vì mã hóa toàn bộ đĩa.
Mã hóa siêu dữ liệu
Android 9 trở lên bao gồm hỗ trợ mã hóa siêu dữ liệu khi có hỗ trợ phần cứng. Với mã hóa siêu dữ liệu, một khóa duy nhất hiện diện khi khởi động sẽ sử dụng mã hóa dựa trên tệp để mã hóa mọi nội dung chưa được mã hóa.
Kho khóa
Android 9 trở lên bao gồm Keymaster 4 , có các tính năng này.
Hộp mạnh
Android 9 trở lên bao gồm hỗ trợ cho các khóa Android Keystore được lưu trữ và sử dụng trong CPU riêng biệt về mặt vật lý được thiết kế dành riêng cho các ứng dụng có độ bảo mật cao, chẳng hạn như phần tử bảo mật được nhúng (SE) . StrongBox Keymaster là một triển khai Keymaster HAL trong phần cứng bảo mật riêng biệt. StrongBox có:
- CPU rời
- Tích hợp lưu trữ an toàn
- Trình tạo số ngẫu nhiên thực sự chất lượng cao
- Bao bì chống giả mạo
- Điện trở kênh bên
Nhập khóa an toàn
Để nhập khóa vào Keymaster 4 một cách an toàn, khóa được tạo bên ngoài thiết bị sẽ được mã hóa bằng thông số ủy quyền xác định cách sử dụng khóa.
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.
Ràng buộc phiên bản
Để hỗ trợ cấu trúc mô-đun của Treble và phá vỡ ràng buộc của system.img
với boot.img
, Keymaster 4 đã thay đổi mô hình liên kết phiên bản khóa để có các mức vá lỗi riêng cho từng phân vùng. Điều này cho phép mỗi phân vùng được cập nhật độc lập trong khi vẫn cung cấp khả năng bảo vệ khôi phục.
API xác nhận được bảo vệ của Android
Các thiết bị được hỗ trợ khởi chạy cùng với cài đặt Android 9 cung cấp cho nhà phát triển khả năng sử dụng API xác nhận được bảo vệ của Android . Với API này, ứng dụng có thể sử dụng phiên bản 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. Tuyên bố này cho phép ứng dụng xác nhận 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ư thực hiện thanh toán.
SELinux
Hộp cát SELinux trên mỗi ứng dụng
Hộp cát ứng dụng có các trường hợp thử nghiệm và bảo vệ mới để đảm bảo rằng tất cả các ứng dụng không có đặc quyền nhắm mục tiêu Android 9 trở lên đều chạy các hộp cát SELinux riêng lẻ.
Treble SELinux thay đổi
Các bản cập nhật cho Treble SELinux trong Android 9 trở lên được ghi lại ở một số trang trong phần SELinux .
nhà cung cấp ban đầu
Vendor init lấp lỗ hổng trong sự phân chia hệ thống/nhà cung cấp Treble bằng cách sử dụng một miền SELinux riêng để chạy các lệnh /vendor
với các quyền dành riêng cho nhà cung cấp.
Thuộc tính hệ thống
Android 9 hạn chế chia sẻ các thuộc tính hệ thống giữa các phân vùng system
và vendor
một cách không cần thiết, đồng thời cung cấp phương pháp đảm bảo tính nhất quán giữa các thuộc tính hệ thống dùng chung.
Kiểm tra thuộc tính SELinux
Android 9 bao gồm các thử nghiệm mới trong thời gian xây dựng nhằm đảm bảo tất cả các tệp ở các vị trí cụ thể đều có thuộc tính phù hợp . Ví dụ: tất cả các tệp trong sysfs
đều có thuộc tính sysfs_type
bắt buộc.
Âm thanh
Hiệu ứng âm thanh độ 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 chuyển đổi xử lý hiệu ứng từ định dạng int16 sang định dạng float và tăng các bản nhạc đầu ra máy khách đồng thời, bộ nhớ máy khách/máy chủ tối đa và tổng số bản nhạc hỗn hợp.
Máy ảnh
Camera USB ngoài
Android 9 trở lên hỗ trợ sử dụng camera USB plug-and-play (nghĩa là webcam) bằng API Android Camera2 tiêu chuẩn và giao diện HIDL của camera.
Theo dõi chuyển động
Các thiết bị camera có thể quảng cáo khả năng theo dõi chuyển động .
Hỗ trợ nhiều camera
Hỗ trợ nhiều camera bao gồm hỗ trợ API cho các thiết bị nhiều camera thông qua một thiết bị camera logic mới bao gồm hai hoặc nhiều thiết bị camera vật lý hướng về cùng một hướng.
Thông số phiên
Việc triển khai các tham số phiên có thể giảm độ trễ bằng cách cho phép máy khách chủ động định cấu hình một tập hợp con các tham số yêu cầu tốn kém như một phần của giai đoạn khởi tạo phiên chụp.
Một nhà sản xuất, nhiều người tiêu dùng đệm
Vận chuyển bộ đệm camera của nhiều nhà sản xuất, nhiều người tiêu dùng là một tập hợp các phương pháp cho phép khách hàng camera thêm và xóa các bề mặt đầu ra một cách linh hoạt trong khi phiên chụp đang hoạt động và quá trình truyền phát camera đang diễn ra.
Kết nối
Gọi điện và nhắn tin
Triển khai kế hoạch dữ liệu
Android 9 trở lên cung cấp khả năng hỗ trợ cải tiến cho các nhà cung cấp dịch vụ 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 các ứng dụng gọi điện của bên thứ ba (3P) xử lý đồng thời các cuộc gọi đến của nhà mạng và ghi các cuộc gọi vào nhật ký cuộc gọi hệ thống.
Vận chuyển
Nhận dạng nhà cung cấp dịch vụ
Trong Android 9, AOSP bổ sung cơ sở dữ liệu ID nhà cung cấp dịch vụ để giúp nhận dạng nhà cung cấp dịch vụ . Cơ sở dữ liệu 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 chung để xác định nhà cung cấp dịch vụ.
eSIM
SIM nhúng (eSIM hoặc eUICC) là công nghệ mới nhất cho phép người dùng di động tải xuống hồ sơ nhà mạng và kích hoạt dịch vụ của nhà mạng mà không cần có thẻ SIM vật lý. Trong Android 9 trở lên, khung Android cung cấp các API tiêu chuẩn để truy cập eSIM và quản lý hồ sơ đăng ký trên eSIM. Để biết thêm thông tin, xem:
Hỗ trợ nhiều SIM cho cài đặt IMS
Android 9 trở lên cung cấp các cải tiến cho 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 lồng tiếng LTE (VoLTE), gọi video và gọi Wi-Fi trên cơ sở mỗi đăng ký thay vì chia sẻ các cài đặt này trên tất cả các đăng ký.
Chương trình phát sóng trạng thái SIM
Trong Android 9 trở lên, Intent.ACTION_SIM_STATE_CHANGED
không được dùng nữa và hai chương trình phát sóng riêng biệt cho trạng thái thẻ và trạng thái ứng dụng thẻ được thêm vào, TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED
và TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED
.
Với những thay đổi này, người nhận chỉ cần biết liệu thẻ có sẵn không cần phải lắng nghe những thay đổi trạng thái ứng dụng và người nhận chỉ cần biết liệu ứng dụng thẻ đã sẵn sàng hay chưa sẽ không cần phải lắng nghe những thay đổi trong trạng thái thẻ.
Hai chương trình phát sóng mới là @SystemApis và không hấp dẫn. Chỉ những người nhận có quyền READ_PRIVILEGED_PHONE_STATE
mới có thể nhận được chương trình phát sóng.
Ý định không được phát lại khi bạn mở khóa thiết bị. Bộ thu phụ thuộc vào các chương trình phát sóng được gửi trước khi bạn mở khóa phải sử dụng directBootAware
hoặc phải truy vấn trạng thái sau khi người dùng mở khóa. Các trạng thái có thể được truy vấn bằng cách sử dụng các API tương ứng trong TelephonyManager, getSimCardState()
và getSimApplicationState()
.
Wifi
Wi-Fi của nhà cung cấp dịch vụ
Tính năng Wi-Fi của nhà cung cấp dịch vụ cho phép các thiết bị tự động kết nối với mạng Wi-Fi do nhà cung cấp dịch vụ triển khai. Ở những khu vực có mật độ mạng cao hoặc có phạm vi phủ sóng di động tối thiểu như sân vận động hoặc ga tàu điện ngầm, Wi-Fi của nhà cung cấp dịch vụ giúp cải thiện kết nối và giảm tải lưu lượng.
ngẫu nhiên MAC
Tính năng ngẫu nhiên hóa MAC cho phép các thiết bị sử dụng địa chỉ MAC ngẫu nhiên khi thăm dò các mạng mới trong khi hiện không được liên kết với mạng. Trong Android 9 trở lên, tùy chọn nhà phát triển có thể được bật để khiế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ật tính năng Tự động bật Wi-Fi , Wi-Fi sẽ tự động được bật lại bất cứ khi nào thiết bị ở gần mạng Wi-Fi đã lưu có chỉ báo cường độ tín hiệu nhận được tương đối (RSSI) đủ cao.
Thời gian khứ hồi Wi-Fi
Thời gian khứ hồi Wi-Fi (RTT) cho phép các thiết bị đo khoảng cách đến các thiết bị hỗ trợ khác, cho dù chúng là điểm truy cập (AP) hay Wi-Fi Aware ngang hàng (nếu Wi-Fi Aware được hỗ trợ trên thiết bị). Tính năng này được xây dựng trên giao thức IEEE 802.11mc và cho phép các ứng dụng sử dụng nhận thức và độ chính xác nâng cao về vị trí.
Cải tiến tính điểm Wi-Fi
Các mô hình tính điểm Wi-Fi được cải tiến sẽ xác định nhanh chóng và chính xác khi nào thiết bị nên thoát khỏi mạng Wi-Fi được kết nối hoặc truy cập vào mạng Wi-Fi mới. Những mô hình này mang lại 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 trong 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 tài nguyên 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
Wi-Fi STA/AP đồng thời
Tính đồng thời của Wi-Fi STA/AP 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 đồng thời băng tần kép (DBS), điều này mở ra các khả 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 được sử dụng để kiểm soát hoạt động Wi-Fi, điều phối đầ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 hoạt động của 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 cấu trúc lại, dẫn đến giảm kích thước mã, logic điều khiển Wi-Fi dễ thực hiện hơn, cải thiện độ chi tiết của điều khiển cũng như tăng phạm vi phủ sóng và chất lượng của các thử nghiệm đơn vị .
Ở mức cao, WifiStateMachine
cho phép Wi-Fi ở một trong bốn trạng thái:
- Chế độ máy khách (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 các 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 nó. Việc triển khai mới hạn chế mã ở các sự kiện liên quan đến chế độ đó, giảm thời gian gỡ lỗi và nguy cơ đưa ra các lỗi mới do tính phức tạp. Ngoài việc xử lý rõ ràng chức năng chế độ, việc quản lý luồng còn được xử lý một cách nhất quán và loại bỏ việc sử dụng các kênh không đồng bộ như một cơ chế đồng bộ hóa.
Cập nhật quyền truy cập Wi-Fi
Trong 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 cho bất kỳ ứng dụng nào trên trang cài đặt trong Cài đặt > Ứng dụng & thông báo > Quyền truy cập ứng dụng đặc biệt > Điều khiển 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 thử nghiệm điện tự động và thủ công.
Để kiểm tra thủ công:
- Đi tới Cài đặt > Ứng dụng và thông báo > Truy cập ứng dụng đặc biệt > Kiểm soát Wi-Fi .
- Chọn và tắt quyền cho ứng dụng của bạn.
- Xác minh rằng ứng dụng của bạn có thể xử lý trường hợp không cấp quyền
CHANGE_WIFI_STATE
.
Ngừng sử dụng WPS
Do vấn đề bảo mật, thiết lập Wi-Fi được bảo vệ (WPS) trong WiFiManager
không đượ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 thay thế WPA.
đồ họa
Thực hiện
API Vulkan 1.1
Android 9 trở lên hỗ trợ triển khai API đồ họa Vulkan 1.1 .
Công cụ WinScope để theo dõi quá trình chuyển đổi cửa sổ
Android 9 trở lên bao gồm 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 trình quản lý cửa sổ trong và sau khi chuyển đổi. Nó cho phép ghi và thực hiện từng bước chuyển đổi cửa sổ, đồng thời ghi lại tất cả trạng thái trình quản lý cửa sổ thích hợp 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à thực hiện từng bước chuyển đổi.
Mã nguồn của công cụ WinScope được đặt tại platform/development/tools/winscope
.
Sự tương tác
Âm thanh ô tô
Automotive Audio mô tả kiến trúc âm thanh để triển khai Android liên quan đến ô tô.
HAL của Mạng thần kinh (NN) xác định sự trừu tượng của các máy gia tốc khác nhau. Trình điều khiển cho các máy gia tốc này phải tuân theo HAL này.
Xe HAL
Thuộc tính xe mô tả những thay đổi đối với giao diện HAL của xe.
Lựa chọn vệ tinh GNSS
Khi làm việc với HAL của hệ thống vệ tinh dẫn đường toàn cầu (GNSS) mới (v1.1+), Android Framework sẽ giám sát cài đặt Android. Đối tác có thể thay đổi 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 cài đặt này cho GNSS HAL biết nếu không nên sử dụng một số vệ tinh GNSS nhất định. Điều này có thể hữu ích trong trường hợp có lỗi liên tục của vệ tinh hoặc chòm sao GNSS hoặc để phản ứng nhanh hơn với các vấn đề triển khai GNSS HAL có thể xảy ra khi trộn các chòm sao bằng cách sử dụng các hệ thống thời gian và sự kiện bên ngoài khác nhau, 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 tới nền tảng. Nền tảng cần triển khai giao diện IGnssCallback
và chuyển một điều khiển cho HAL. GNSS HAL chuyển thông tin mô hình phần cứng thông qua phương thức LocationManager#getGnssHardwareModelName()
. Các nhà sản xuất thiết bị nên làm việc với các nhà cung cấp GNSS HAL của họ để cung cấp thông tin này nếu có thể.
Quyền
Định cấu hình cập nhật kiểm soát truy cập tùy ý
Định cấu hình Kiểm soát truy cập tùy ý (DAC) chứa các bản cập nhật cho cơ chế ID Android (AID) để mở rộng khả năng của hệ thống tệp.
Đưa các quyền của ứng dụng đặc quyền vào danh sách trắng
Trong Android 9 trở lên, nếu có các quyền cần bị từ chối, hãy chỉnh sửa XML để sử dụng thẻ deny-permission
thay vì thẻ permission
được sử dụng trong các bản phát hành trước.
Dữ liệu
Cải thiện ước tính băng thông
Android 9 cung cấp hỗ trợ cải tiến cho việc ước tính băng thông. Ứng dụng Android có thể thực hiện cài đặt độ phân giải phù hợp hơn cho cuộc gọi video và truyền phát video nếu chúng có thể truy cập băng thông dữ liệu sẵn có.
Trên các thiết bị chạy Android 6.0 trở lên, người gọi muốn ước tính băng thông cho mạng di động sẽ gọi ConnectivityManager.requestBandwidthUpdate()
và khung có thể cung cấp băng thông đường xuống ước tính.
Nhưng 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ó thay đổi đáng kể về băng thông ước tính và việc gọi requestBandwidthUpdate()
là không hoạt động; getLinkDownstreamBandwidthKbps()
và getLinkUpstreamBandwidthKbps()
liên quan được điề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 di động 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 di động có sẵn thông qua một menu ẩn để người kiểm tra hiện trường có thể kiểm tra thông tin mới nhất.
giám sát lưu lượng eBPF
Công cụ lưu lượng mạng eBPF sử dụng kết hợp triển khai kernel và không gian người dùng để giám sát việc sử dụng mạng trên thiết bị kể từ lần khởi động thiết bị cuối cùng. Công cụ này cung cấp chức năng bổ sung như gắn thẻ ổ cắm, phân tách lưu lượng nền trước/nền và tường lửa trên mỗi UID để chặn các ứng dụng truy cập mạng tùy thuộc vào trạng thái thiết bị.
Khôi phục về các API 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.
Nếu OEM sửa đổi 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 đó sẽ xử lý việc khôi phục các bộ bản 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. Hỗ trợ settingsBackupAgent để khôi phục từ các phiên bản trong tương lai có thể bị tắt thông qua Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION
. Không cần triển khai bổ sung trừ khi nhà sản xuất thiết bị mở rộng một trong các tác nhân dự phòng có trong ROM (hoặc thêm một tác nhân tùy 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 tương lai của nền tảng; tuy nhiên, thật hợp lý khi cho rằng dữ liệu được khôi phục sẽ không hoàn chỉnh. Các 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 tương lai của dữ liệu sao lưu thông qua phiên bản định dạng; các tiện ích mở rộng ở đâ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 thay đổi các hằng số thích hợp.
SystemBackupAgent chỉ định
restoreAnyVersion = false
trong Android 9 trở lên. Nó không hỗ trợ khôi phục từ các phiên bản API cao hơn.Cài đặtBackupAgent chỉ định
restoreAnyVersion = true
trong Android 9 trở lên. Hỗ trợ một phần tồn tại thông qua trình xác nhận. Cài đặt có thể được khôi phục từ phiên bản API cao hơn nếu trình xác thực cho cài đặt đó tồn tại trong hệ điều hành đích. Việc thêm bất kỳ cài đặt nào đều phải đi kèm với trình xác nhận của nó. Kiểm tra lớp học để biết chi tiết.Bất kỳ tác nhân sao lưu tùy chỉnh nào có trong ROM phải tăng mã phiên bản của nó bất cứ khi nào có thay đổi không tương thích đối với định dạng dữ liệu sao lưu và đảm bảo
restoreAnyVersion = false
(mặc định) nếu tác nhân của chúng không sẵn sàng xử lý dữ liệu sao lưu từ phiên bản tương lai của mã của họ.
Doanh nghiệp
Cải tiến hồ sơ được quản lý
Những thay đổi về trải nghiệm người dùng cho 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ý hơn.
Tạm dừng OTA
@SystemApi mới cho phép chủ sở hữu thiết bị tạm dừng vô thời hạn các bản cập nhật OTA , bao gồm cả các bản cập nhật bảo mật.
Hiệu suất
Sức khỏe 2.0
Android 9 trở lên bao gồm android.hardware.health
HAL 2.0, một phiên bản nâng cấp chính từ health@1.0 HAL. Để biết thêm thông tin, hãy xem các trang này:
Giải pháp bộ nhớ đệm APK
Android 9 trở lên bao gồm giải pháp bộ nhớ đệm APK để cài đặt nhanh các ứng dụng tải sẵn trên thiết bị hỗ trợ phân vùng A/B. OEM có thể đặt các bản tải trước và các ứng dụng phổ biến vào bộ đệm APK được lưu trữ chủ yếu trong phân vùng B trống trên các thiết bị được phân vùng A/B mới mà không ảnh hưởng đến bất kỳ không gian dữ liệu nào của người dùng.
Tối ưu hóa theo hướng dẫn hồ sơ
Android 9 trở lên hỗ trợ sử dụng tối ưu hóa hướng dẫn hồ sơ (PGO) của Clang trên các mô-đun Android gốc có quy tắc xây dựng kế hoạch chi tiết.
Ghi nhật ký viết trước
Một chế độ đặc biệt của SQLiteDatabase được gọi là ghi nhật ký 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 duy trì 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 hóa thời gian khởi động như được mô tả trong Tối ưu hóa thời gian khởi động .
Quyền lực
Hạn chế nền
Android 9 trở lên bao gồm các hạn chế chạy nền cho phép người dùng hạn chế các ứng dụng có thể tiêu hao pin. Hệ thống cũng có thể đề xuất tắt các ứng dụng có ả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ý các thiết bị không dùng pin mượt mà hơn so với các phiên bản trước. Android 9 loại bỏ mã dành cho các thiết bị không dùng pin được mặc định cho rằng có pin, được sạc ở mức 100% và hoạt động tốt với nhiệt độ bình thường trên nhiệt điện trở.