Ghi chú phát hành 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 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::IAllocatorHIDL @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:

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:

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:

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 systemvendor 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_CHANGEDTelephonyManager.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()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:

  1. Đ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 .
  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 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()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ở.