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 Nội dung cập nhật trang web tháng 8 năm 2018 để biết hướng dẫn về cách di chuyển và đổi tên phần.

Tạo

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

Hình ảnh hệ thống chung (GSI) là một 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ị ra mắt bằng 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.

Các HAL có sẵn theo cách linh động

HAL có sẵn linh hoạt hỗ trợ tắt linh hoạt 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

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. Thư viện 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ớ duy nhất.

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

Lớp phủ nén

Android 9 trở lên có hỗ trợ lớp phủ nén trong hình ảnh lớp phủ blob cây thiết bị (DTBO) khi 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 chuyển blob cây thiết bị hợp nhất đến 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ó một 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ải có một phân vùng DTBO. Để thêm các nút hoặc thay đổi các thuộc tính trong SoC DT, 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 SoC DT. Để biết thêm thông tin, hãy xem phần Biên dịch và xác minh.

Tuân thủ kernel

Android 9 trở lên có các yêu cầu ảnh hưởng đến nhân, các giao diện của nhâ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ề những thay đổi trong thiết kế VNDK trên Android 9 trở lên, hãy xem các trang sau:

Công cụ 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 của ứng dụng (ABI), giúp đảm bảo rằng những thay đổi đối với các thư viện VNDK vẫn tuân thủ ABI.

VNDK snapshots

Hình ảnh hệ thống có thể sử dụng ảnh chụp nhanh VNDK để cung cấp các thư viện VNDK phù hợp 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 đây trong phần Đối tượng giao diện nhà cung cấp mô tả các điểm 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à xoá HAL HIDL:

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

Phân chia sản phẩm

Android 9 trở lên hỗ trợ tạo phân vùng /product bằng hệ thống bản 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 tạo từ hệ thống bản 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 gốc

Tất cả các thiết bị khởi chạy bằng Android 9 trở lên đều phải sử dụng system-as-root, hợp nhất ramdisk.img vào system.img (còn gọi là no-ramdisk), sau đó được gắn dưới dạng rootfs.

Phân 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 có 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 đề cho phù hợp.

DTBO ở chế độ khôi phục

Để ngăn chặn lỗi OTA do sự 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

Vết cắt trên màn hình 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 trong khi vẫn có không gian cho các cảm biến quan trọng ở mặt trước của thiết bị.

Xoay các đề xuất

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

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

Hiệu ứng chuyển đổi ứng dụng được đồng bộ hoá cho phép tạo ả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 nên dùng để triển khai tính năng phân loại văn bản và một cách triển khai dịch vụ mặc định.

Màu có gam màu rộng

Android 9 trở lên có hỗ trợ dải màu rộng, bao gồm:

  • Dải động cao (HDR)
  • Xử lý nội dung trong hệ màu BT.2020, 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 có gam màu rộng, toàn bộ ngăn xếp hiển thị của thiết bị (chẳng hạn như màn hình, trình kết hợp phần cứng, GPU) phải hỗ trợ màu có gam màu rộng hoặc định dạng bộ nhớ đệm. Thiết bị không bắt buộc phải hỗ trợ nội dung có 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 chế độ màu có 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, bạn không nên tắt màu có dải màu 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 của 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 những tính năng mới và thay đổi đối với các yêu cầu về 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 giúp tăng khả năng hiển thị đối với các hoạt động tương tác của người dùng, đặc biệt là khi người dùng xoá hoặc thêm tiện ích theo cách thủ công. Chức năng này có sẵn theo mặc định trong Launcher3.

Các 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. Các OEM cần hỗ trợ trường widgetFeatures mới trong trình chạy mặc định của họ.

Xin lưu ý rằng tính năng này chỉ hoạt động từ đầu đến cuối khi các trình chạy triển khai tính năng này như mong đợi. AOSP có một hoạt động 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 một thông báo 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 độ hiển thị. Bạn có thể đăng ký các receiver 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 những 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. Tuy nhiên, điều này không phổ biến vì những thay đổi về cấu hình đủ điều kiện kích hoạt thông báo 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

Những thay đổi đối với cấu trúc thông tin cho ứng dụng Cài đặt mang đến nhiều chức năng hơn và giúp việc triển khai trở nên dễ dàng hơn.

Kiểm thử

Atest

Công cụ dòng lệnh Atest cho phép bạn tạo, cài đặt và chạy các kiểm thử Android cục bộ, giúp tăng tốc đáng kể các lần chạy lại kiểm thử mà không cần kiến thức về các lựa chọn dòng lệnh của bộ kiểm thử Trade Federation.

Bộ kiểm tra tính tương thích

Tải CTS xuống

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. Mã nguồn cho các kiểm thử đi kèm có thể được đồng bộ hoá với thẻ android-cts-9.0_r1 trong cây mã nguồn mở.

Các lựa chọn CTS

Đối với Android 9, CTS phiên bản 2 có 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 chưa được thực thi từ các phiên trước.
  • ‘--shard-count phân chia một lần chạy CTS thành số lượng đoạn độc lập nhất định để chạy song song trên nhiều thiết bị.

Ngoài ra, lệnh --retry-type (trước đây không có trong tài liệu) đã được thêm vào cùng một tài liệu tham khảo về lệnh điều khiển CTS phiên bản 2.

Dịch vụ Secure Element (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 SE HAL hay không và nếu có thì có bao nhiêu. Đây là cơ sở để kiểm thử API và quá trình triển khai phần tử bảo mật cơ bản.

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

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

ITS-in-a-box có trường nhìn rộng

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 camera có trường nhìn rộng (WFoV) và trường nhìn thông thường (RFoV) trong Camera ITS.

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

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

Cấu trúc bộ điều khiển máy chủ Vendor Test Suite (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ợ việc 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à các kiểm thử VTS đang chạy.

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

Kiểm tra khả năng kiểm thử HAL 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 cần 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, đo từ xa là quy 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à các ứng dụng. Trong các phiên bản Android trước đây, 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ư 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 của các vấn đề 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 khắc phục điểm thiếu sót này bằng cách thu thập dữ liệu tốt hơn một cách nhanh chóng. 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ư sự cố. Dữ liệu này được phân tích và dùng để cải thiện các 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 có lớp công khai BiometricPrompt. Các ứng dụng có thể dùng lớp này để tích hợp tính năng hỗ trợ xác thực bằng sinh trắc học theo cách độc lập với 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 để thê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 lỗ hổng 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 ngăn chặn các thay đổi đối với biểu đồ luồng điều khiển ban đầu của một 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 của kernel

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 (CFI) trong nhân.

Mã hóa

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

Tính năng mã hoá dựa trên tệp (FBE) được cập nhật để hoạt động với bộ nhớ có thể di chuyển. 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ì phương thức mã hoá toàn bộ đĩa.

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

Android 9 trở lên có hỗ trợ 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 tính năng mã hoá dựa trên tệp để mã hoá mọi nội dung chưa được mã hoá.

Kho khoá

Android 9 trở lên có Keymaster 4, có các tính năng sau.

StrongBox

Android 9 trở lên hỗ trợ các khoá trong Kho khoá Android được lưu trữ và sử dụng trong một CPU riêng biệt về mặt vật lý, được thiết kế 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 (SE) được nhúng. StrongBox Keymaster là một cách triển khai HAL Keymaster trong phần cứng bảo mật riêng biệt. StrongBox có:

  • CPU rời
  • 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 tấn công kênh bên

Nhập khoá bảo mật

Để nhập khoá một cách an toàn vào Keymaster 4, khoá được tạo bên ngoài thiết bị sẽ được mã hoá theo quy cách về các hoạt động uỷ 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à phá vỡ mối liên kết của 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 độ vá 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 mà vẫn cung cấp tính năng bảo vệ chống khôi phục về phiên bản cũ.

Android Protected Confirmation API

Các thiết bị được hỗ trợ khi ra mắt có cài đặt Android 9 sẽ 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 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 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 từng ứ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ả các ứng dụng không có đặc quyền nhắm đến Android 9 trở lên đều chạy các hộp cát SELinux riêng lẻ.

Các thay đổi về SELinux trên 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 phần SELinux.

Vendor init

Vendor init đóng lỗ hổng trong quá trình 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 biệt để 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ế việc chia sẻ 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 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 có các thử nghiệm thời gian xây dựng mới giúp đảm bảo tất cả các tệp ở những 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 định dạng số thực và tăng số lượng bản nhạc đầu ra đồng thời của máy khách, bộ nhớ tối đa của máy khách/máy chủ và tổng số bản nhạc kết hợp.

Camera

Camera USB bên ngoài

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

Theo dõi chuyển động

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ị có nhiều camera thông qua một thiết bị camera logic mới bao gồm từ 2 thiết bị camera thực trở lên cùng hướng.

Tham số phiên

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

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

Vận chuyển bộ đệm camera của một nhà sản xuất, nhiều người dùng là một nhóm phương thức cho phép các ứng dụng camera thêm và xoá 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 trực tiếp camera đang diễn ra.

Khả năng 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 hỗ trợ tốt hơn cho các nhà mạng triển khai gói dữ liệu bằng SubscriptionPlan API.

Ứ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 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 hệ thống.

Nhà mạng

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

Trong Android 9, AOSP thêm một cơ sở dữ liệu mã nhận dạng nhà mạng để hỗ trợ nhận dạng 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 rời rạc bằng cách cung cấp một cách thức chung để 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 dịch vụ thoại qua LTE (VoLTE), gọi video và gọi qua Wi-Fi cho từng thuê bao thay vì chia sẻ các chế độ cài đặt này cho tất cả các thuê bao.

Thông báo về 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 thông báo 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, những receiver 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, còn những receiver chỉ cần biết liệu các ứ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 mới là @SystemApis và không cố định. Chỉ những bộ nhận có quyền READ_PRIVILEGED_PHONE_STATE mới nhận được thông báo truyền tin.

Các ý định sẽ không được phát lại khi bạn mở khoá thiết bị. Những receiver phụ thuộc vào các 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 tắc nghẽn nghiêm trọng 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 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 tải lưu lượng truy cập.

Tạo địa chỉ MAC ngẫu nhiên

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 dò tìm mạng mới trong khi hiện không liên kết với mạng. Trong Android 9 trở lên, bạn có thể bật một lựa chọn dành cho nhà phát triển để 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ạ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 (RSSI) tương đối đủ cao.

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

Thời gian khứ hồi (RTT) của Wi-Fi 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ù đó là điểm truy cập (AP) hay các thiết bị ngang hàng Wi-Fi Aware (nếu thiết bị hỗ trợ Wi-Fi Aware). Tính năng này được xây dựng dựa trên giao thức IEEE 802.11mc, 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 thiện tính năng chấm điểm Wi-Fi

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

Xem xét và điều chỉnh các giá trị RSSI trong tài nguyên config.xml, đặc biệt là những 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

Đồng thời Wi-Fi STA/AP

Tính năng đồng thời Wi-Fi STA/AP là khả năng cho phép 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), đ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ác điểm cải tiến đối với WiFiStateMachine

WifiStateMachine là lớp chính dùng để kiểm soát hoạt động Wi-Fi, điều phối thông tin đầ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à việc triển khai WifiStateMachine được tái cấu trúc, dẫn đến việc giảm kích thước mã, logic điều khiển Wi-Fi dễ theo dõi hơn, độ chi tiết của chế độ điều khiển được cải thiện, đồng thời tăng phạm vi và chất lượng của các bài kiểm thử đơn vị.

Nhìn chung,WifiStateMachine cho phép Wi-Fi ở một trong 4 trạng thái sau:

  • 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 hoàn toàn tắt)

Mỗi chế độ Wi-Fi có các yêu cầu khác nhau đối với các dịch vụ đang chạy và phải được thiết lập theo 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 này giới hạn mã cho các sự kiện liên quan đến chế độ đó, giúp giảm thời gian gỡ lỗi và nguy cơ xuất hiện 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ỏ như một cơ chế đồng bộ hoá.

Cập nhật quyền truy cập Wi-Fi

Trong Android 9 trở lên, quyền truy cập vào ứng dụng CHANGE_WIFI_STATE được bật theo mặc định. Bạn có thể tắt quyền này cho bất kỳ ứng dụng nào 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 > Quyền 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 robolectric và các 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 của ứng dụng > Quyền 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 cấp quyền CHANGE_WIFI_STATE.

Ngừng sử dụng WPS

Do các vấn đề về bảo mật, chế độ thiết lập Wi-Fi được bảo vệ (WPS) trong WiFiManager đã ngừng hoạt động và bị vô hiệu hoá trong Android 9 trở lên. Tuy nhiên, WiFiDirect vẫn sử dụng WPS trong trình bổ trợ WPA.

Đồ hoạ

Triển khai

Vulkan 1.1 API

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 các hiệu ứng chuyển đổi cửa sổ. WinScope cung cấp cơ sở hạ tầng và các 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 các quá trình chuyển đổi. Công cụ này cho phép ghi và chuyển đổi từng bước 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 trình quản lý cửa sổ có liên quan 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à xem từng bước của hiệu ứng 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 trên ô 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 Mạng nơ-ron (NN) xác định một lớp trừu tượng của nhiều bộ tăng tốc. Trình điều khiển cho các bộ tăng tốc này phải tuân thủ HAL này.

HAL của phương tiện

Thuộc tính xe mô tả các 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 (v1.1 trở lên) hệ thống vệ tinh dẫn đường toàn cầu (GNSS) mới, Khung Android sẽ giám sát các chế độ cài đặt Android. Đối tác có thể thay đổi chế độ cài đặt thông qua 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 biết GNSS HAL 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 xảy ra lỗi về vệ tinh hoặc chòm sao GNSS liên tục, hoặc để phản ứng nhanh hơn với các vấn đề về việc triển khai GNSS HAL có thể xảy ra khi kết hợp 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ư giây nhuận, ngày hoặc số tuần.

Kiểu 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 đến nền tảng. Nền tảng này cần triển khai giao diện IGnssCallback và truyền một giá trị nhận dạng đến HAL. GNSS HAL 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 hợp tác với 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 các bản cập nhật kiểm soát quyền truy cập tuỳ ý

Định cấu hình Quyền kiểm soát 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 các chức năng của hệ thống tệp.

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

Trong Android 9 trở lên, nếu có những 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 dùng trong các bản phát hành trước.

Dữ liệu

Cải thiện việc ước tính băng thông

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

Trên các thiết bị chạy Android 6.0 trở lên, một phương thức 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 tải xuống ước tính.

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ó thay đổi đáng kể về băng thông ước tính và việc gọi requestBandwidthUpdate() là không cần thiết; getLinkDownstreamBandwidthKbps()getLinkUpstreamBandwidthKbps() được liên kết sẽ được điền thông tin mới 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 ô cụ thể. Thông tin về băng thông của ô có trong một trình đơn ẩn để người kiểm thử tại hiện trường 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 không gian người dùng và nhân để theo dõi mức sử dụng mạng trên một 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 ở nền trước/nền sau và tường lửa theo UID để chặn các ứng dụng truy cập vào mạng tuỳ 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 điện thoại.

Nếu một 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, chế độ cài đặt), thì các tác nhân đó phải xử lý việc khôi phục các bộ sao lưu được tạo trên các phiên bản nền tảng cao hơn 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 chế độ hỗ trợ 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 nền tảng trong tương lai; tuy nhiên, bạn có thể cho rằng dữ liệu được khôi phục sẽ không đầy đủ. Các hướng dẫn sau đây áp dụng cho những tác nhân sao lưu sau:

  • PackageManagerBackupAgent hỗ trợ các phiên bản dữ liệu sao lưu trong tương lai thông qua việc tạo phiên bản định dạng; các tiện ích tại đâ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. Có hỗ trợ một phần thông qua trình xác thực. Bạn có thể khôi phục một 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 đích. Bạn phải thêm mọi chế độ cài đặt cùng với trình xác thực tương ứng. Kiểm tra lớp học để biết thông tin chi tiết.

  • Mọi tác nhâ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 đố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 họ chưa 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ý hơn.

Tạm dừng OTA

Một @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 qua mạng không dây, bao gồm cả bản cập nhật bảo mật.

Hiệu suất

Sức khoẻ 2.0

Android 9 trở lên có HAL 2.0, một bản nâng cấp phiên bản chính từ health@1.0 HAL.android.hardware.health Để 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 được tải sẵn trên thiết bị hỗ trợ phân vùng A/B. Cá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 được lưu trữ chủ yếu 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ợ việc 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 xây 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 nhật ký tương thích trước khi ghi (WAL) cho phép cơ sở dữ liệu sử dụng journal_mode=WAL trong khi 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 chế độ 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 hạn chế đối với hoạt động ở chế độ nền, cho phép người dùng hạn chế những ứng dụng có thể làm hao pin. Hệ thống cũng có thể đề xuất tắt những ứ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ý các thiết bị không có pin một cách hiệu quả 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. Theo mặc định, mã này giả định rằng có pin, pin được sạc ở mức 100% và ở trạng thái tốt với chỉ số nhiệt độ bình thường trên điện trở nhiệt.