Trang này tóm tắt các tính năng chính trong bản phát hành Android 10 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.
Tạo
java_sdk_library
Android 10 ra mắt java_sdk_library
, một quy tắc bản dựng mới để khắc phục các vấn đề về khả năng tương thích cho các thư viện Java dùng chung. Các nhà sản xuất thiết bị có thể sử dụng cơ chế này cho các thư viện Java dùng chung của riêng họ để duy trì khả năng tương thích ngược cho các API của họ.
Kiến trúc
Thành phần hệ thống mô-đun
Android 10 mô-đun hoá một số thành phần hệ thống Android và cho phép cập nhật các thành phần đó bên ngoài chu kỳ phát hành Android thông thường. Một số mô-đun bao gồm:
- Android Runtime
- Conscrypt
- Trình phân giải DNS
- DocumentsUI
- ExtServices
- Nội dung đa phương tiện
- ModuleMetadata
- Networking
- PermissionController
- Dữ liệu múi giờ
Lớp trừu tượng phần cứng (HAL)
Android 10 bổ sung tính năng hỗ trợ cho HAL để tự động tắt khi không có ứng dụng nào.
Kernel
ABI
Android 10 hỗ trợ các tiện ích giám sát ABI mới để so sánh, theo dõi và giảm thiểu các thay đổi về ABI của hạt nhân ảnh hưởng đến khả năng tương thích với các mô-đun hạt nhân.
Android 10 cũng giới thiệu một trình kiểm tra mức sử dụng ABI dựa trên biểu tượng. Trình kiểm tra có thể phát hiện các tệp nhị phân tạo sẵn đã lỗi thời tại thời điểm tạo bản dựng, nhờ đó, các nhà phát triển thư viện dùng chung có thể biết những tệp nhị phân tạo sẵn nào có thể bị hỏng do thay đổi và những tệp nhị phân tạo sẵn nào phải được tạo lại.
Trình nền khoá trực tiếp của Android
Android 10 bao gồm Android Live-Lock Daemon (llkd), được thiết kế để phát hiện và giảm thiểu tình trạng tắc nghẽn hạt nhân.
vDSO32 trên ARM64
Android 10 hỗ trợ sử dụng vDSO32 trên nhân 64 bit, giúp tăng thời lượng pin thêm 0,4% và cải thiện hiệu suất khác.
Mục nhập fstab cho các phân vùng được gắn sớm
Android 10 yêu cầu các thiết bị chỉ định các mục nhập fstab
cho các phân vùng được gắn sớm bằng cách sử dụng tệp fstab
trong ramdisk giai đoạn đầu.
HIDL
Giảm tải BroadcastQueue
Android 10 bao gồm một BroadcastQueue
giải phóng mới vào các hàng đợi nền và nền trước hiện có. Hàng đợi giảm tải có cùng mức độ ưu tiên và hành vi hết thời gian chờ với hàng đợi ở chế độ nền. Để ngăn chặn việc chặn hàng đợi ở chế độ nền, nơi có thể xảy ra các thông báo truyền tin thú vị hơn hoặc hiển thị với người dùng, hàng đợi giảm tải sẽ xử lý thông báo truyền tin BOOT_COMPLETED
mà nhiều ứng dụng nghe và có thể mất nhiều thời gian để hoàn tất.
Hàng đợi giảm tải hiện chỉ xử lý thông báo truyền tin BOOT_COMPLETED
, nhưng có thể xử lý các thông báo truyền tin dài khác.
Dịch vụ SystemSuspend
Android 10 thay thế luồng trong libsuspend
chịu trách nhiệm bắt đầu tạm ngưng hệ thống bằng dịch vụ SystemSuspend HIDL. Phương thức triển khai này cung cấp chức năng tương đương với các phiên bản trước, đồng thời tận dụng các lợi ích từ cơ sở hạ tầng Android HIDL.
safe_union trong HIDL
Android 10 giới thiệu safe_union
, một loại liên kết được gắn thẻ rõ ràng trong HIDL.
Cấu hình
ConfigStore HAL
Android 10 ngừng sử dụng HAL ConfigStore do mức tiêu thụ bộ nhớ cao và khó sử dụng, đồng thời thay thế HAL bằng các thuộc tính hệ thống.
API giản đồ tệp cấu hình
Nền tảng Android chứa một lượng lớn tệp XML để lưu trữ dữ liệu cấu hình. Nhiều tệp XML nằm trong phân vùng vendor
, nhưng các tệp này được đọc trong phân vùng system
. Trong trường hợp này, giản đồ của tệp XML đóng vai trò là giao diện trên hai phân vùng, do đó, giản đồ phải được chỉ định rõ ràng và phải phát triển theo cách tương thích ngược. Trước Android 10, nền tảng này không cung cấp cơ chế yêu cầu chỉ định và sử dụng giản đồ XML hoặc ngăn chặn các thay đổi không tương thích trong giản đồ. Android 10 cung cấp cơ chế này, gọi là API giản đồ tệp cấu hình.
Thuộc tính hệ thống dưới dạng API
Thuộc tính hệ thống được truy cập trên các phân vùng được lập trình thành tệp mô tả sysprop
và các API để truy cập vào thuộc tính được tạo dưới dạng hàm cụ thể cho C++ và lớp cho Java.
Đối tượng giao diện nhà cung cấp (VINTF)
VINTF
Các thay đổi đối với VINTF trong Android 10 bao gồm:
- Ngừng sử dụng thẻ phiên bản AVB
- Thêm thông tin về hạt nhân trong gói OTA
- Xây dựng tệp kê khai ODM chính thức
- Thêm ma trận tương thích của sản phẩm
- Liên kết mục nhập tệp kê khai với mô-đun HAL trong hệ thống xây dựng
Trình tải khởi động
Ramdisk
Trong Android 10, hệ thống tệp gốc không còn nằm trong ramdisk.img
nữa mà được hợp nhất vào system.img
.
Tạo các phân vùng ODM
Android 10 hỗ trợ tạo các phân vùng odm
bằng hệ thống xây dựng Android. Bạn có thể sử dụng một phân vùng /odm
riêng biệt để
tuỳ chỉnh, cho phép bạn sử dụng một hình ảnh nhà cung cấp cho nhiều
SKU phần cứng. Điều này cho phép nhà sản xuất thiết kế gốc (ODM) tuỳ chỉnh gói hỗ trợ bo mạch của nhà cung cấp hệ thống trên một chip (SoC) cho các thiết bị cụ thể (bo mạch) của họ. Các lớp này có thể triển khai các mô-đun hạt nhân cho các thành phần dành riêng cho bo mạch, trình nền dành riêng cho bo mạch hoặc các tính năng riêng trên các lớp trừu tượng phần cứng (HAL). Các công cụ này cũng có thể thay thế hoặc tuỳ chỉnh các thành phần SoC.
Phiên bản tiêu đề hình ảnh khởi động
Android 10 cập nhật tiêu đề hình ảnh khởi động lên phiên bản 2, bao gồm một phần để lưu trữ hình ảnh blob cây thiết bị (DTB). Các thử nghiệm VTS của Android 10 xác minh rằng tất cả thiết bị khởi chạy bằng Android 10 đều sử dụng tiêu đề hình ảnh khởi động phiên bản 2 và bao gồm hình ảnh DTB hợp lệ trong hình ảnh khởi động/khôi phục.
Hình ảnh khôi phục cho các thiết bị không phải A/B
Trong Android 9 trở lên, hình ảnh khôi phục của thiết bị phải chứa thông tin từ hình ảnh lớp phủ. Nhà sản xuất thiết bị có thể sử dụng DeviceTree hoặc Giao diện cấu hình và nguồn điện nâng cao (ACPI) để mô tả tất cả thiết bị không thể phát hiện. Android 10 trở lên hỗ trợ các cấu trúc sử dụng ACPI thay vì tệp blob DeviceTree cho lớp phủ (DTBO).
AIDL ổn định
Android 10 hỗ trợ thêm Ngôn ngữ định nghĩa giao diện Android (AIDL) ổn định, một cách mới để theo dõi giao diện lập trình ứng dụng (API)/giao diện nhị phân ứng dụng (ABI) do các giao diện AIDL cung cấp.
Di chuyển tính năng khởi động nhanh sang không gian người dùng
Android 10 hỗ trợ thêm các phân vùng có thể đổi kích thước bằng cách di chuyển quy trình triển khai khởi động nhanh từ trình tải khởi động sang không gian người dùng.
Màn hình
Phát video HDR
Android 10 hỗ trợ phát HDR10, VP9 và HDR10+.
Phân loại văn bản
Phân loại văn bản sử dụng các kỹ thuật máy học để giúp nhà phát triển phân loại văn bản. Android 10 giới thiệu hai phương thức cho API TextClassifier: suggestConversationActions
và detectLanguage
.
Phương thức suggestConversationActions
tạo các câu trả lời và hành động được đề xuất từ một cuộc trò chuyện nhất định, còn phương thức detectLanguage
phát hiện ngôn ngữ của văn bản.
Hỗ trợ kết xuất phông chữ Zawgyi
Zawgyi là phông chữ phổ biến nhất ở Myanmar. Android 9 trở xuống không hỗ trợ hiển thị Zawgyi vì phông chữ này không tuân thủ Unicode. Android 10 giải quyết vấn đề này bằng cách đưa vào một phông chữ Unicode có thể hiển thị cả Unicode Burmese và Zawgyi cùng nhau. Bạn không cần triển khai công việc nào để hỗ trợ kết xuất phông chữ Zawgyi trên các thiết bị chạy Android 10. Nếu thiết bị của bạn có cách triển khai tuỳ chỉnh để hỗ trợ Zawgyi, bạn có thể:
- Huỷ bỏ những thay đổi đó và sử dụng phương thức được nền tảng hỗ trợ.
- Giữ phông chữ Zawgyi phổ biến trong hệ thống và sử dụng mã ngôn ngữ
my-qaag
trongfonts.xml
. Để biết thêm thông tin, hãy xem Ghi chú phát hành Unicode CLDR về Zawgyi (Qaag).
Hạn chế khi ẩn biểu tượng ứng dụng
Android 10 giới hạn khả năng ứng dụng ẩn biểu tượng trình chạy. Nếu một ứng dụng không bật hoạt động trong trình chạy, thì hệ thống sẽ hiển thị một hoạt động tổng hợp trong trình chạy; hoạt động tổng hợp này đại diện cho trang chi tiết của ứng dụng trong phần cài đặt hệ thống.
Để biết thêm thông tin về logic dùng để hiển thị biểu tượng ứng dụng, bao gồm cả các loại ứng dụng không hiển thị biểu tượng ứng dụng, hãy xem tài liệu về getActivityList()
trong tài liệu tham khảo API.
Cài đặt
Để cải thiện khả năng hỗ trợ tiếp cận, Android 10 có các chế độ cài đặt thời gian chờ mà người dùng có thể tuỳ chỉnh. Các thay đổi về API và Cài đặt đi kèm với Android 10. Nếu bạn tuỳ chỉnh phần Cài đặt, hãy đảm bảo rằng tính năng này được hỗ trợ. Nếu bạn có các thành phần trên giao diện người dùng hết thời gian chờ trên thiết bị, hãy sử dụng API thời gian chờ trên các thành phần đó. Để biết thêm thông tin, hãy xem Nguyên tắc hỗ trợ tiếp cận dành cho nhà phát triển Android.
Khả năng tương thích
Tài liệu định nghĩa về khả năng tương thích (CDD) cho Android
Tài liệu định nghĩa về khả năng tương thích của Android 10 lặp lại các phiên bản trước với các bản cập nhật cho 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 đó.
Kiểm thử
Bộ kiểm tra tính tương thích (CTS)
Android CTS có một trang ghi chú phát hành riêng liệt kê nhiều thay đổi quan trọng đối với Android 10.
Tệp tải xuống CTS
Các gói CTS hỗ trợ Android 10 có trên trang Tải CTS xuống. Bạn có thể đồng bộ hoá mã nguồn cho các chương trình kiểm thử đi kèm với thẻ android-cts-10_r1
trong cây nguồn mở.
CTS shim APEX
Android 10 giới thiệu một gói có tên là CtsShimApex
. Bạn phải cài đặt sẵn gói này trên thiết bị để viết các bài kiểm thử CTS cho việc quản lý APEX.
Chế độ khai thác kiểm thử
Chế độ bộ kiểm thử CTS giúp nhà phát triển tự động hoá việc kiểm thử cho một thiết bị hoặc một nhóm thiết bị.
Chế độ Ứng dụng tức thì
Kể từ Android 10, CTS chạy ở chế độ Ứng dụng tức thì, tức là cài đặt tệp APK kiểm thử dưới dạng Ứng dụng tức thì và chạy các chương trình kiểm thử.
Ngoài chế độ CTS cho Ứng dụng tức thì, Android 10 còn có Trình xác minh CTS cho Ứng dụng tức thì
Kiểm thử âm thanh chuyên nghiệp bằng CTS Verifier
Android 10 thêm một quy trình kiểm tra Trình xác minh CTS để tuân thủ Pro Audio.
Kiểm thử MIDI của Trình xác minh CTS
Trong Android 10, Kiểm thử MIDI của Trình xác minh CTS kiểm thử chức năng MIDI bằng giao diện MIDI USB, giao diện MIDI Bluetooth và đường dẫn thiết bị MIDI ảo.
Diễn giải kết quả kiểm thử CTS
Android 10 cập nhật cơ chế diễn giải kết quả CTS.
Bộ thử nghiệm nhà cung cấp (VTS)
Kiểm thử VTS bằng ramdisk gỡ lỗi
Trong Android 10, hình ảnh hệ thống chung (GSI) dùng để chạy các thay đổi kiểm thử tuân thủ CTS-on-GSI/VTS từ loại bản dựng userdebug sang user, vì GSI được ký phát hành. Tuy nhiên, lệnh adb root
cấp quyền gốc cho máy chủ lưu trữ cho thiết bị Android đang được kiểm thử không có trong bản dựng người dùng. Đây là vấn đề vì VTS yêu cầu adb root
để chạy.
Ramdisk gỡ lỗi được giới thiệu để có thể thực hiện adb root
, nếu thiết bị được mở khoá. Điều này giúp đơn giản hoá quy trình kiểm thử bằng cách sử dụng lại cùng một bản dựng người dùng system.img
(GSI hoặc system.img
của OEM).
Xác thực Hardware Composer
Android 10 thêm một lớp kiểm thử VTS mới để xác thực Hardware Composer thông qua giao diện readback
trong IComposerClient.hal
.
Nếu nhà cung cấp không triển khai readback
, thì các bài kiểm thử sẽ tự động vượt qua.
Gỡ lỗi
Tải thư viện dùng chung bằng nhiều trình tải lớp
Trong Android 9 trở xuống, các ứng dụng đã tải thư viện chia sẻ Java được liên kết trong trình tải lớp của ứng dụng. Trong Android 10, khung này sử dụng một trình tải lớp khác với trình tải lớp của ứng dụng để tải các thư viện dùng chung Java được liên kết thông qua uses-library
hoặc uses-static-library
.
Nhìn chung, ứng dụng không nên dựa vào việc sử dụng một trình tải lớp cụ thể, vì vậy, thay đổi này sẽ không làm hỏng hành vi của ứng dụng. Tuy nhiên, nếu một ứng dụng dựa vào việc sử dụng một trình tải lớp duy nhất, thì hành vi đó sẽ bị hỏng. Ngoài ra, chế độ hiển thị gói riêng tư của các lớp trong cùng một gói vẫn được hỗ trợ, nhưng không được hỗ trợ trong thư viện dùng chung.
Nhà sản xuất thiết bị có thể gặp phải các vấn đề về khả năng tương thích của ứng dụng khi kiểm thử thiết bị chạy Android 10.
Các tính năng bảo mật
Để xem danh sách đầy đủ hơn về các điểm cải tiến chỉ liên quan đến bảo mật và quyền riêng tư, hãy xem trang Các điểm cải tiến về bảo mật và quyền riêng tư của Android 10.
Xác thực khuôn mặt
Tính năng Xác thực khuôn mặt cho phép người dùng mở khoá thiết bị chỉ bằng cách nhìn vào mặt trước của thiết bị. Android 10 hỗ trợ thêm một ngăn xếp xác thực khuôn mặt mới có thể xử lý khung hình máy ảnh một cách an toàn, bảo vệ tính bảo mật và quyền riêng tư trong quá trình xác thực khuôn mặt trên phần cứng được hỗ trợ. Android 10 cũng cung cấp một cách dễ dàng để triển khai các biện pháp bảo mật nhằm bật tính năng tích hợp ứng dụng cho các giao dịch như ngân hàng trực tuyến hoặc các dịch vụ khác.
Quyền truy cập mở rộng
Tác nhân tin cậy, cơ chế cơ bản mà các cơ chế xác thực cấp ba (chẳng hạn như Smart Lock) sử dụng, chỉ có thể kéo dài thời gian mở khoá trong Android 10. Các tác nhân tin cậy không thể mở khoá thiết bị bị khoá nữa và chỉ có thể duy trì chế độ mở khoá cho thiết bị trong tối đa 4 giờ.
Mã hóa
OEMCrypto
Android 10 sử dụng OEMCrypto API phiên bản 15.
Thử nghiệm
BoundsSanitizer
Android 10 triển khai BoundsSanitizer (BoundSan) trong Bluetooth và bộ mã hoá và giải mã. BoundSan sử dụng trình dọn dẹp giới hạn của UBSan. Phương pháp giảm thiểu này được bật ở cấp mô-đun. Tính năng này giúp bảo mật các thành phần quan trọng của Android và không được tắt. BoundSan được bật trong các bộ mã hoá và giải mã sau:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
libaac
libxaac
Xoá dữ liệu tràn số nguyên
Android 10 hỗ trợ tính năng Loại bỏ tràn số nguyên (IntSan) trong bộ mã hoá và giải mã phần mềm. Đảm bảo hiệu suất phát ở mức chấp nhận được đối với mọi bộ mã hoá và giải mã không được hỗ trợ trong phần cứng của thiết bị. IntSan được bật trong các bộ mã hoá và giải mã sau:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
Bộ nhớ chỉ thực thi
Theo mặc định, các phần mã thực thi cho tệp nhị phân hệ thống AArch64 được đánh dấu là chỉ thực thi (không đọc được) để giảm thiểu việc tăng cường bảo mật trước các cuộc tấn công tái sử dụng mã đúng thời điểm. Mã kết hợp dữ liệu và mã với nhau và mã kiểm tra có chủ đích các phần này (mà không cần ánh xạ lại các phân đoạn bộ nhớ ở chế độ có thể đọc trước tiên) không còn hoạt động nữa. Các ứng dụng có SDK mục tiêu là Android 10 (API cấp 29 trở lên) sẽ bị ảnh hưởng nếu ứng dụng đó cố gắng đọc các phần mã của thư viện hệ thống đã bật bộ nhớ chỉ thực thi (XOM) trong bộ nhớ mà không đánh dấu trước phần đó là có thể đọc được.
Scudo
Scudo là một trình phân bổ bộ nhớ ở chế độ người dùng động được thiết kế để có khả năng chống chịu tốt hơn trước các lỗ hổng liên quan đến vùng nhớ khối xếp. Thư viện này cung cấp các nguyên hàm phân bổ và giải phóng tiêu chuẩn C, cũng như các nguyên hàm C++.
ShadowCallStack
ShadowCallStack
(SCS) là một chế độ thiết bị đo lường LLVM giúp bảo vệ khỏi việc ghi đè địa chỉ trả về (chẳng hạn như tràn vùng đệm ngăn xếp) bằng cách lưu địa chỉ trả về của một hàm vào một thực thể ShadowCallStack
được phân bổ riêng biệt trong phần đầu hàm của các hàm không phải lá và tải địa chỉ trả về từ thực thể ShadowCallStack
trong phần cuối hàm.
Âm thanh
Audio HAL
Android 10 bao gồm các chức năng mới sau đây cho HAL âm thanh.
AudioSource
AudioFormat
AudioChannelMask
Thêm các yêu cầu bổ sung để triển khai HAL âm thanh và hệ thống con.
Hiệu ứng xử lý trước
Android cung cấp các hiệu ứng xử lý trước, chẳng hạn như loại bỏ tiếng vọng âm thanh, kiểm soát độ khuếch đại tự động và khử tiếng ồn.
Android 10 đưa ra các yêu cầu mới để chụp bằng VOICE_COMMUNICATION
.
Trình quản lý chính sách âm thanh
Android 10 bao gồm một quá trình tái cấu trúc đáng kể của trình quản lý chính sách âm thanh để mang lại nhiều tính linh hoạt hơn nhằm hỗ trợ các trường hợp sử dụng phức tạp trong ngành ô tô.
Âm thanh có độ phân giải cao
Android 10 có các điểm cải tiến sau đây đối với âm thanh có độ phân giải cao.
- Hỗ trợ số thực dấu phẩy động
- Hỗ trợ tần số 192 KHz
- Hỗ trợ 8 kênh
- Bao gồm thông tin về thời gian
Chụp đồng thời
Android 10 cải thiện trải nghiệm người dùng về tính năng ghi đồng thời, trong đó yêu cầu nhiều quá trình ghi âm đang hoạt động diễn ra đồng thời.
AudioPlaybackCapture
Android 10 chứa một API mới có tên là AudioPlaybackCapture
. API này cho phép các ứng dụng sao chép âm thanh đang phát của các ứng dụng khác. Tính năng này tương tự như tính năng chụp màn hình, nhưng dành cho âm thanh.
Trường hợp sử dụng chính là cho phép các ứng dụng phát trực tuyến ghi lại âm thanh đang phát trong trò chơi.
API ghi âm không ảnh hưởng đến độ trễ của ứng dụng đang ghi âm.
MIDI
Android 10 giúp bạn dễ dàng chuyển các ứng dụng âm thanh chuyên nghiệp sử dụng MIDI sang nền tảng Android bằng cách sử dụng API NDK AMidi
.
Camera
Để biết thông tin tóm tắt về các thay đổi đối với API máy ảnh, HAL máy ảnh và mô-đun máy ảnh được giới thiệu trong Android 10, hãy xem phần Nội dung cập nhật về máy ảnh trong Android 10.
Cải tiến về quyền riêng tư trong khung máy ảnh
Android 10 giới thiệu các tính năng nâng cao về quyền riêng tư cho khung máy ảnh. Để tránh tiết lộ thông tin có thể nhạy cảm của máy ảnh tĩnh trong CameraCharacteristics
mà không có sự đồng ý của người dùng, ứng dụng phải có quyền CAMERA
để truy xuất siêu dữ liệu tĩnh có thẻ nhạy cảm về quyền riêng tư bằng phương thức getCameraCharacteristics
.
Để nhận danh sách các khoá đặc điểm của máy ảnh cần có quyền CAMERA
, hãy gọi phương thức getKeysNeedingPermission
.
Truy vấn định cấu hình lại phiên
Android 10 thêm tính năng truy vấn định cấu hình lại phiên, cho phép cải thiện hiệu suất thông qua việc kiểm soát tốt hơn logic định cấu hình lại tham số phiên nội bộ.
API quản lý vùng đệm Camera HAL3
Android 10 giới thiệu các API quản lý vùng đệm HAL3 của máy ảnh không bắt buộc, cho phép bạn triển khai logic quản lý vùng đệm để đạt được nhiều mức độ đánh đổi về bộ nhớ và độ trễ chụp trong quá trình triển khai HAL của máy ảnh.
Công tắc máy ảnh vật lý động HAL cho máy ảnh
Android 10 giới thiệu một thẻ siêu dữ liệu động, ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
, cho biết máy ảnh thực tế cơ bản đang hoạt động của một thiết bị máy ảnh logic. Để biết thêm thông tin, hãy xem phần Hỗ trợ nhiều máy ảnh.
Hỗ trợ ẩn camera thực
Trong Android 10, HAL máy ảnh có thể giảm số lượng camera thực mà ứng dụng có thể mở trực tiếp. Để biết thêm thông tin chi tiết, hãy xem phần Hỗ trợ nhiều camera.
Camera2 VNDK API
Trong Android 10, các mô-đun của nhà cung cấp có thể truy cập và kiểm soát các thiết bị máy ảnh thông qua hai giao diện HIDL tiêu chuẩn mới là android.frameworks.cameraservice.service@2.0
và android.frameworks.cameraservice.device@2.0
. Để sử dụng giao diện HIDL thuận tiện hơn, Android 10 cũng giới thiệu một thư viện do nhà cung cấp cung cấp, libcamera2_vendor
. Thư viện này tương tự như thư viện Camera NDK, với một vài sửa đổi nhỏ.
Cấu hình luồng
Android 10 bổ sung các tính năng cho phép nhà cung cấp máy ảnh quảng cáo luồng máy ảnh được đề xuất cho ứng dụng máy ảnh và hỗ trợ API để truy vấn các tổ hợp luồng.
Yêu cầu về việc kết hợp luồng camera
Các thiết bị chạy Android 10 không còn bắt buộc phải hỗ trợ các tổ hợp luồng với luồng máy ảnh phụ thực. Tuy nhiên, các thiết bị chạy Android 10 với phiên bản thiết bị HAL máy ảnh 3.5 phải hỗ trợ isStreamCombinationSupported()
để cho phép ứng dụng truy vấn xem liệu một tổ hợp luồng chứa luồng thực có được hỗ trợ hay không.
Để biết thêm thông tin, hãy xem phần Hỗ trợ nhiều máy ảnh.
Tạo ảnh HEIF
Android 10 hỗ trợ máy ảnh gốc cho hình ảnh định dạng tệp hình ảnh hiệu quả cao (HEIF), giúp cải thiện chất lượng hình ảnh và có kích thước nhỏ hơn so với hình ảnh JPEG. Thiết bị phải có bộ mã hoá HEIC hoặc HEVC để hỗ trợ hình ảnh HEIF.
Máy ảnh đơn sắc
Android 10 hỗ trợ thêm định dạng luồng Y8, siêu dữ liệu tĩnh của mảng bộ lọc màu đơn sắc và gần hồng ngoại (NIR) và các hàm DngCreator
cho máy ảnh đơn sắc.
Khả năng kết nối
Gọi điện và nhắn tin
Số điện thoại khẩn cấp và tính năng gọi khẩn cấp
Android 10 hỗ trợ tốt hơn cho tính năng cuộc gọi khẩn cấp. Trong trường hợp khẩn cấp, các thiết bị hỗ trợ IRadio HAL v1.4 có thể bắt đầu cuộc gọi khẩn cấp bằng cách sử dụng các số khẩn cấp được truy xuất từ một nguồn như thẻ SIM, tín hiệu mạng hoặc cơ sở dữ liệu Android. Bạn có thể phân loại số điện thoại dựa trên các danh mục dịch vụ khẩn cấp như cảnh sát, cứu hỏa và xe cứu thương.
API cuộc gọi nhóm
API cuộc gọi nhóm là phần mở rộng của API eMBMS được thêm vào Android 9. Các API mới xác định một tiêu chuẩn để các ứng dụng tham gia và truyền tin trên các cuộc gọi nhóm truyền tin qua tế bào bằng cách tương tác với các gói phần mềm trung gian eMBMS. Các cuộc gọi nhóm cần có sự hỗ trợ của nhà cung cấp chipset, nhà cung cấp phần mềm trung gian và nhà mạng di động để hoạt động đúng cách. Tài liệu dành cho nhà phát triển nằm tại developer.google.com.
Các tính năng của SIM từ xa
Android 10 ra mắt các tính năng SIM từ xa cho phép các ứng dụng nhắn tin trên thiết bị lưu trữ Android gửi tin nhắn SMS thông qua điện thoại bằng các cơ chế như Bluetooth. Để biết thêm thông tin, hãy xem tài liệu tham khảo về phương thức getSubscriptionType
và hằng số SUBSCRIPTION_TYPE_REMOTE_SIM
.
Nhiều eSIM
Trong Android 10, lớp EuiccManager
hỗ trợ các thiết bị có nhiều SIM nhúng (eSIM) hoặc eUICC.
Cập nhật về eSIM
Đối với các thiết bị chạy Android 10 hỗ trợ eSIM, bạn phải xác định một mảng mã nhận dạng khe eUICC không thể tháo rời. Thiết bị cũng phải hỗ trợ IRadio HAL v1.4 và IRadioConfig HAL v1.2. Để biết thêm thông tin, hãy xem phần Triển khai eSIM và Yêu cầu về HAL.
5G không độc lập (NSA)
Android 10 hỗ trợ thêm 5G không độc lập (NSA). 5G NSA là một giải pháp cho mạng 5G, trong đó mạng được hỗ trợ bởi cơ sở hạ tầng 4G hiện có. Trên Android 10, các thiết bị có thể hiển thị biểu tượng 5G trên thanh trạng thái khi kết nối với mạng 5G.
Đề xuất về tài khoản điện thoại
Android 10 ra mắt dịch vụ đề xuất tài khoản điện thoại, cho phép hiển thị các đề xuất về tài khoản điện thoại cho người dùng khi thực hiện cuộc gọi.
Nhà mạng
Di chuyển chế độ cài đặt Mạng di động
Android 10 đã thiết kế lại mã giao diện người dùng cài đặt mạng di động và di chuyển mã đó từ ngăn xếp Điện thoại sang ngăn xếp Cài đặt. Để hỗ trợ mã đã di chuyển, hãy thay đổi các giá trị cấu hình cài đặt Mạng di động sau đây từ tài nguyên Android thành tài nguyên CarrierConfig
:
config_world_mode
->
CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL
config_support_tdscdma
->
CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL
config_support_tdscdma_roaming_on_networks
->
CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY
config_enabled_lte
->
CarrierConfigManager#KEY_LTE_ENABLED_BOOL
Mã nhận dạng thiết bị
Giá trị nhận dạng thiết bị (IMEI/MEID, IMSI và số sê-ri bản dựng) cố định được bảo vệ bằng một quyền đặc quyền, trong đó quyền truy cập cũng được cấp cho ứng dụng của chủ sở hữu hồ sơ và thiết bị. Vì IMSI và số sê-ri SIM do nhà mạng cung cấp, nên quyền truy cập vào các giá trị nhận dạng này sẽ được cấp cho các gói có đặc quyền của nhà mạng.
Wi-Fi
Lựa chọn mạng
Android liên tục đánh giá chất lượng của mạng đã kết nối và đánh giá chất lượng của các mạng có sẵn. Android 10 đã cập nhật các thuật toán và quy trình để chọn và chuyển đổi giữa các mạng Wi-Fi.
Quét để truyền dữ liệu về mạng ưu tiên Wi-Fi
Android 10 giới thiệu một phương thức API không bắt buộc có tên setDeviceMobilityState()
trong WifiManager
. Phương thức này tăng khoảng thời gian giữa các lần quét giảm tải mạng ưu tiên (PNO) khi thiết bị đứng yên để giảm mức sử dụng pin.
Wi-Fi của nhà mạng
Trong Android 10, các thiết bị có tính năng Wi-Fi của nhà mạng sẽ tự động kết nối với các mạng Wi-Fi của nhà mạng đã định cấu hình (các mạng có chứng chỉ khoá công khai).
Kết nối Wi-Fi dễ dàng
Trong Android 10, các thiết bị có thể sử dụng tính năng Wi-Fi Easy Connect. Tính năng này sử dụng giao thức cấp phép thiết bị (DPP) do Liên minh Wi-Fi (WFA) giới thiệu để cấp phép và định cấu hình các thiết bị Wi-Fi.
Chế độ độ trễ thấp trên Wi-Fi
Android 10 ra mắt chế độ Wi-Fi có độ trễ thấp, giúp định cấu hình khối Wi-Fi để giảm độ trễ.
Cập nhật máy chủ DHCP
Trong quá trình hình thành một dịch vụ "Máy chủ IP", dnsmasq
đang được xoá. Android 10 thay thế chức năng sử dụng máy chủ DHCPv4 bằng một thành phần riêng biệt, chủ yếu được viết bằng Java để tích hợp tốt hơn với vùng điều khiển khung Java. Điều này giúp cải thiện tính bảo mật và khả năng cập nhật cho máy chủ DHCP. Để biết thêm thông tin, hãy xem packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java
.
Bạn không cần thực hiện hành động nào để triển khai thay đổi này: tất cả thiết bị phát hành và nâng cấp lên Android 10 đều sử dụng DhcpServer
theo mặc định.
Nếu đã tuỳ chỉnh máy chủ DHCP, bạn có thể quay lại hành vi của Android 9 bằng cách đặt chế độ cài đặt chung tether_enable_legacy_dhcp_server=1
.
DhcpServer
mới được đưa vào mô-đun thành phần kết nối mạng, vì vậy, mọi hoạt động tuỳ chỉnh đối với chức năng máy chủ DHCP đều phải được chuyển lên trên.
WPA3 và Wi-Fi Enhanced Open
Android 10 hỗ trợ thêm các tiêu chuẩn bảo mật Wi-Fi Protected Access 3 (WPA3) và Wi-Fi Enhanced Open để mang lại quyền riêng tư tốt hơn và khả năng chống lại các cuộc tấn công đã biết.
Wi-Fi Direct
Wi-Fi Direct (còn gọi là Wi-Fi P2P) cho phép các thiết bị hỗ trợ tìm và kết nối trực tiếp với nhau bằng giao thức Wi-Fi Direct mà không cần truy cập Internet hoặc mạng di động.
Các tính năng nâng cao về việc tạo địa chỉ MAC ngẫu nhiên
Kể từ Android 10, tính năng tạo địa chỉ MAC ngẫu nhiên được bật theo mặc định cho chế độ máy khách, SoftAp và Wi-Fi Direct. Thiết bị phải cung cấp tuỳ chọn để bật hoặc tắt tính năng tạo địa chỉ MAC ngẫu nhiên cho từng SSID trong giao diện người dùng hệ thống.
Passpoint R2
Android 10 ra mắt tính năng hỗ trợ các tính năng Passpoint R2. Passpoint R2 triển khai tính năng đăng ký trực tuyến (OSU), một phương thức tiêu chuẩn để cấp cấu hình Passpoint mới. Android 10 hỗ trợ việc cấp phép hồ sơ EAP-TTLS bằng SOAP-XML.
NFC
Bảo mật NFC
NFC bảo mật chỉ cho phép bật tính năng mô phỏng thẻ NFC bên ngoài máy chủ khi màn hình của thiết bị đang mở khoá. Việc triển khai tính năng này cho phép người dùng bật tính năng NFC bảo mật để tăng cường bảo mật.
Ngừng sử dụng Android Beam
Trong Android 10, Android Beam không còn bắt buộc và các giao diện và phương thức sau đây không còn được dùng nữa.
Giao diện:
NfcAdapter.CreateBeamUrisCallback
NfcAdapter.CreateNdefMessageCallback
NfcAdapter.OnNdefPushCompleteCallback
Phương thức:
createBeamUris
invokeBeam
isNdefPushEnabled
setBeamPushUris
setBeamPushUrisCallback
setNdefPushMessage
setNdefPushMessageCallback
setOnNdefPushCompleteCallback
createNdefMessageCallback
onNdefPushCompleteCallback
Để sử dụng Android Beam, hãy báo cáo hằng số tính năng android.sofware.nfc.beam
.
Đồ hoạ
ASurfaceControl
Android 10 thêm ASurfaceControl
, một cách mới để SurfaceFlinger
chấp nhận vùng đệm.
Triển khai đồ hoạ
Lớp OpenGL ES
Android 10 giới thiệu một hệ thống phân lớp cho GLES.
EGL 1.5
Android 10 triển khai giao diện EGL 1.5. Để biết thông tin về các tính năng mới trong EGL 1.5, hãy xem bài viết Khronos phát hành bản đặc tả EGL 1.5.
Vulkan
Android 10 hỗ trợ đồ hoạ Vulkan 1.1.
Nền tảng này cũng hỗ trợ VK_KHR_swapchain
phiên bản 70, vì vậy, ứng dụng Vulkan có thể tạo VkImage
được hỗ trợ bởi bộ nhớ chuỗi hoán đổi.
Tốc độ làm mới hiệu suất
Android 10 bổ sung tính năng hỗ trợ tốc độ làm mới hiệu suất. Tính năng này bị tắt theo mặc định.
Tương tác
Automotive
Âm thanh trên ô tô
Trong Android 10, ngữ cảnh Audio HAL liên kết với AudioAttributes.usage
để xác định âm thanh. Android hỗ trợ một thực thể AUDIO_DEVICE_OUT_BUS
cho mỗi ngữ cảnh. HAL IAudioControl
cung cấp
các tiện ích dành riêng cho xe cho Audio HAL.
Thao tác bằng cử chỉ
Android 10 giới thiệu một tuỳ chọn để điều hướng hệ thống hoàn toàn bằng cử chỉ. Để biết thông tin về cách chuẩn bị ứng dụng sử dụng tính năng này, hãy xem trang Điều hướng bằng cử chỉ trên trang web dành cho nhà phát triển Android.
Mạng nơron
Android 10 giới thiệu các bản cập nhật cho Neural Networks API và Neural Networks HAL. Để nắm được nội dung tóm tắt về các thay đổi, hãy xem bài viết Mạng nơron.
Tài liệu mới và cập nhật về Mạng nơron cho Android 10:
- Tổng quan
- AHardwareBuffer
- Thực thi hàng loạt và hàng đợi thông báo nhanh
- Lưu biên dịch vào bộ nhớ đệm
- Khám phá và chỉ định thiết bị
- Tiện ích của nhà cung cấp
Cảm biến
Sensors HAL 2.0
Sensors HAL 2.0 hỗ trợ sử dụng hàng đợi thông báo nhanh (FMQ) để gửi các sự kiện cảm biến từ HAL vào Khung cảm biến Android.
Tắt cảm biến
Android 10 có một chế độ cài đặt dành cho nhà phát triển để tắt tất cả cảm biến trên thiết bị. Tính năng này giúp nhà phát triển kiểm thử chức năng của ứng dụng trong trường hợp các cảm biến đó không hoạt động, đồng thời giúp người dùng có cách kiểm soát các cảm biến trong thiết bị của họ.
Nếu thiết bị của bạn sử dụng phương thức triển khai mặc định của SensorService
, CameraService
và AudioPolicyService
, thì bạn không cần tuỳ chỉnh thêm thiết kế tham chiếu. Nếu bạn có các cảm biến khác, hãy xem phần Tuỳ chỉnh để biết thêm thông tin chi tiết về cách hỗ trợ tính năng này.
Nội dung nghe nhìn
Thành phần nội dung nghe nhìn có thể cập nhật
Android 10 cung cấp các thành phần nội dung nghe nhìn có thể cập nhật, cho phép cập nhật các thành phần hệ thống mô-đun liên quan đến nội dung nghe nhìn thông qua cơ sở hạ tầng Cửa hàng Google Play hoặc thông qua cơ chế qua mạng không dây (OTA) do đối tác cung cấp.
DRM cho nội dung đa phương tiện
Android 10 cải thiện tiện ích và khả năng hữu dụng của API Java và NDK MediaDrm
.
Giải mã
Android 10 hỗ trợ giải mã phần mềm AV1.
Quyền
Android 10 cung cấp thêm các cấu hình quyền để đảm bảo tính minh bạch và quyền riêng tư của người dùng.
Thông tin về trình cung cấp danh bạ và mối quan hệ tương đồng
Kể từ Android 10, dữ liệu liên quan đến mối quan hệ tương đồng của danh bạ, do thành phần Nhà cung cấp danh bạ quản lý, được truy cập theo cách khác so với Android 9 trở xuống. Những thay đổi này liên quan đến khả năng hỗ trợ tiếp cận dữ liệu giúp cải thiện quyền riêng tư của người dùng trên tất cả thiết bị Android 10 sử dụng thành phần Nhà cung cấp danh bạ. Cơ sở dữ liệu cơ bản không còn chứa dữ liệu về mối quan hệ đối tượng liên hệ nữa. Do đó, các ứng dụng không thể ghi vào hoặc đọc từ bộ nhớ đệm này.
Các thay đổi trong Android 10 dự kiến sẽ tác động lớn đến API. Nếu ứng dụng của bạn dựa vào các tính năng không dùng nữa được đề cập trong Thông tin về nhà cung cấp danh bạ và mối quan hệ tương đồng, bạn nên cập nhật ứng dụng để bù đắp cho mọi thay đổi. Ngoài ra, nếu sử dụng phiên bản phân nhánh của Nhà cung cấp danh bạ, bạn phải cập nhật Nhà cung cấp danh bạ.
Quyền truy cập thông tin vị trí ở trạng thái ba trạng thái
Quyền truy cập thông tin vị trí ba trạng thái trong Android 10 giúp người dùng kiểm soát nhiều hơn cách ứng dụng truy cập thông tin vị trí của thiết bị.
Thông báo nhắc cấp quyền truy cập thông tin vị trí ở chế độ nền
Android 10 có tính năng nhắc về quyền truy cập thông tin vị trí ở chế độ nền, giúp tăng tính minh bạch về mức độ truy cập của ứng dụng vào thông tin vị trí của thiết bị và giúp người dùng duy trì quyền kiểm soát đối với quyền truy cập đó.
Hạn chế vị trí cơ hội
Khi một ứng dụng yêu cầu thông tin vị trí của thiết bị, ứng dụng có thể đợi phản hồi yêu cầu hoặc nhận thông tin cập nhật vị trí khi có cơ hội bằng cách sử dụng trình nghe vị trí đang hoạt động. Kể từ Android 10, để nhận thông tin cập nhật vị trí cơ hội, nhà phát triển phải chỉ định rằng họ cần thông tin cập nhật vị trí thụ động từ lớp FusedLocationProviderClient
.
Chạy ứng dụng ở chế độ nền
Trong Android 10, các ứng dụng không đặc quyền không có cửa sổ hiển thị không thể tự động chạy ở nền trước. Thay đổi này sẽ ngăn chặn cửa sổ bật lên quảng cáo và các hành vi tiếp quản độc hại. Bạn không cần làm gì để bật tính năng này.
Hộp cát ứng dụng
Trong Android 10, các ứng dụng có chế độ xem thô bị giới hạn về hệ thống tệp, không có quyền truy cập trực tiếp vào các đường dẫn như /sdcard/DCIM
. Tuy nhiên, các ứng dụng vẫn giữ lại toàn quyền truy cập thô vào các đường dẫn dành riêng cho gói của chúng, như được trả về bởi mọi phương thức có thể áp dụng, chẳng hạn như Context.getExternalFilesDir()
.
Ứng dụng vẫn có toàn quyền truy cập thô vào các đường dẫn dành riêng cho gói.
Sử dụng nguyên tắc chia sẻ tệp trong hộp cát ứng dụng để cung cấp mức độ chi tiết phù hợp cho việc chia sẻ dữ liệu.
Hạn chế quyền truy cập vào bảng nhớ tạm của ứng dụng
Trong Android 10, quyền truy cập vào bảng nhớ tạm đã thay đổi nên bạn không thể xem nội dung bảng nhớ tạm bằng cách gọi ClipboardManager.getPrimaryClip
hoặc thêm trình nghe onPrimaryClipChangedListener
để nhận thông báo khi bảng nhớ tạm thay đổi. Điều này giúp tăng cường quyền riêng tư của người dùng và ngăn các ứng dụng quảng cáo độc hại sửa đổi bảng nhớ tạm.
Trong Android 10, quyền đọc chỉ được phép cho ứng dụng hiện tại có tiêu điểm nhập hoặc cho bàn phím hiện tại. Giờ đây, lệnh gọi trình nghe ClipboardManager.onPrimaryClipChanged()
chỉ kích hoạt cho các ứng dụng đáp ứng các quy định hạn chế đó.
ClipboardManager.getPrimaryClip
và ClipboardManager.getPrimaryClipDescription
trả về null
nếu ứng dụng yêu cầu không phải là trình chỉnh sửa phương thức nhập mặc định (IME) hoặc không có tiêu điểm nhập.
Quyền khi bắt đầu chạy bao gồm cả quyền nhận dạng hoạt động
Giờ đây, người dùng sẽ thấy hộp thoại nhận dạng hoạt động khi một ứng dụng truy cập thông tin vị trí của thiết bị ở chế độ nền. Các quyền thời gian chạy bị hạn chế nghiêm ngặt phải được đưa vào danh sách trắng đúng cách trong Android 10.
Quyền MANAGE_DEVICE_ADMINS
Android 10 thay đổi quyền MANAGE_DEVICE_ADMINS
từ chữ ký hoặc đặc quyền thành chỉ chữ ký. Điều này có nghĩa là chỉ các ứng dụng được ký bằng nền tảng mới có thể đặt các ứng dụng khác làm quản trị viên thiết bị.
Các điểm cải tiến về API chia sẻ
Android 10 cung cấp một số tính năng API Nền tảng Android mới liên quan đến việc chia sẻ. Nếu bạn đã sửa đổi mã Trang chia sẻ trong quá trình triển khai, hãy đảm bảo rằng cách triển khai của bạn hỗ trợ các tính năng mới này. Nếu chưa sửa đổi mã Trang chia sẻ trong quá trình triển khai, bạn không cần làm gì cả để hỗ trợ các tính năng mới này.
Android Runtime (ART)
Cấu hình đã ký
Tính năng Cấu hình đã ký cho phép nhúng cấu hình của các hạn chế đối với giao diện không phải SDK trong tệp APK. Thao tác này cho phép xoá các giao diện không phải SDK cụ thể khỏi danh sách đen để AndroidX có thể sử dụng các giao diện đó một cách an toàn. Với thay đổi này, AndroidX có thể thêm tính năng hỗ trợ cho các tính năng mới trên các phiên bản Android cũ.
Hiệu suất
Lớp trừu tượng Cgroup
Android 10 bao gồm một lớp trừu tượng cgroup và hồ sơ tác vụ mà nhà phát triển có thể sử dụng để mô tả một tập hợp các quy tắc hạn chế áp dụng cho một luồng hoặc một quy trình.
Trình nền đóng các tiến trình ít cần thiết khi còn ít dung lượng (lmkd)
Android 10 hỗ trợ một chế độ lmkd
mới sử dụng màn hình thông tin về tình trạng tắc nghẽn áp lực nhân hệ điều hành (PSI) để phát hiện áp lực bộ nhớ.
Sức mạnh
Quản lý nguồn của nền tảng
Trong Android 10, bạn có thể bật chế độ Ngủ trên các thiết bị luôn bật cũng như trên các thiết bị chạy bằng pin.
Trình tiết kiệm pin theo quy trình
Android 10 giới thiệu một tuỳ chọn lịch biểu mới cho trình tiết kiệm pin có tên là dựa trên quy trình. Trình tiết kiệm pin theo quy trình cho phép một ứng dụng do OEM chọn cung cấp tín hiệu cho hệ thống để lên lịch tiết kiệm pin thông minh hơn. Tuỳ chọn này yêu cầu cấu hình và không bắt buộc phải triển khai.
HAL số liệu thống kê về nguồn
Trong Android 10, IPowerStats.hal
sẽ thay thế các API thu thập số liệu thống kê về nguồn điện trong IPower.hal
.
Mặc dù HAL nguồn vẫn hỗ trợ các API, nhưng trong tương lai, các API này sẽ được di chuyển riêng sang HAL số liệu thống kê nguồn.
HAL thống kê năng lượng bao gồm các API mới để hỗ trợ việc thu thập dữ liệu từ quá trình đo lường năng lượng trên thiết bị, đối với các thiết bị được hỗ trợ. Các API thu thập số liệu thống kê về nguồn điện hiện có cũng được cập nhật để cải thiện tính linh hoạt. Các API gợi ý về nguồn điện vẫn nằm trong HAL nguồn và không thay đổi.
Giảm nhiệt
Khung nhiệt trong Android 10 tóm tắt các giao diện thiết bị cho cảm biến nhiệt của hệ thống con nhiệt, bao gồm CPU, GPU, pin, da và thiết bị làm mát. Khung này giới thiệu một giao diện thăm dò ý kiến để truy vấn trạng thái nhiệt nhằm bắt đầu điều tiết và một giao diện gọi lại để gửi thông báo cho người dùng khi vượt quá ngưỡng.
Android 10 cung cấp các loại dữ liệu mới thông qua giao diện IThermalService
bằng 3 phương thức mới sau:
getCurrentThermalStatus()
trả về trạng thái nhiệt hiện tại của thiết bị dưới dạng số nguyên, trừ phi thiết bị đang bị điều tiết.addThermalStatusListener()
thêm trình nghe.removeThermalStatusListener()
sẽ xoá trình nghe đã thêm trước đó.
Ứng dụng thêm và xoá trình nghe cũng như truy cập trạng thái nhiệt độ trong lớp PowerManager
. Chỉ một dịch vụ hệ thống đáng tin cậy như API Android hoặc API nhà sản xuất thiết bị mới có thể truy cập thông tin về các sự kiện nhân quả liên quan. Nhà sản xuất thiết bị hoặc nhà sản xuất SoC phải triển khai thermal HAL 2.0
để bật toàn bộ chức năng của khung nhiệt mới.
Để biết ví dụ về cách triển khai biện pháp giảm nhiệt, hãy xem phần Triển khai tham chiếu.
Nội dung cập nhật
Định dạng tệp APEX
Android Pony EXpress (APEX) là một định dạng vùng chứa mới được sử dụng trong quy trình cài đặt cho các thành phần hệ thống mô-đun.
Phân vùng động
Phân vùng động giới thiệu một hệ thống phân vùng không gian người dùng cho Android, cho phép tạo, đổi kích thước hoặc huỷ phân vùng trong quá trình cập nhật OTA. Nhà sản xuất thiết bị không phải lo lắng về kích thước riêng lẻ của các phân vùng, chẳng hạn như system
, vendor
và product
. Thay vào đó, một phân vùng super
lớn được phân bổ và các phân vùng con có thể được định kích thước động trong đó.
Bản cập nhật hệ thống động
Bản cập nhật hệ thống động (DSU) cho phép bạn tạo một hình ảnh hệ thống Android mà người dùng có thể tải xuống từ Internet và dùng thử mà không có nguy cơ làm hỏng hình ảnh hệ thống hiện tại.
Sao lưu và khôi phục nhiều người dùng
Android 10 hỗ trợ chức năng sao lưu và khôi phục cho tất cả người dùng trên một thiết bị. Trước đây, tính năng sao lưu và khôi phục chỉ dành cho người dùng hệ thống. Tính năng sao lưu và khôi phục cho người dùng không phải hệ thống sẽ tắt theo mặc định vì tính năng này chỉ áp dụng một phần cho các chế độ cài đặt, hình nền và thành phần hệ thống.
Overlayfs
Người dùng sử dụng bản dựng userdebug
hoặc eng
dự kiến sẽ có thể gắn lại phân vùng hệ thống một cách hiệu quả ở chế độ đọc-ghi, sau đó thêm hoặc sửa đổi số lượng tệp bất kỳ mà không cần cài đặt lại hình ảnh hệ thống. Bạn có thể sử dụng Overlayfs
. Phương thức này sẽ tự động thiết lập bộ nhớ sao lưu cho hệ thống tệp có thể ghi làm tham chiếu cấp trên và gắn trên cấp dưới. Các thao tác này xảy ra trong yêu cầu adb disable-verity
và adb remount
. Để biết thêm thông tin chi tiết, hãy xem README về Overlayfs trong AOSP.
Hỗ trợ thư viện chia sẻ ở chế độ khôi phục
Trong Android 10, các thư viện dùng chung có sẵn trong phân vùng khôi phục, nhờ đó, bạn không cần phải tạo tất cả tệp thực thi ở chế độ khôi phục ở dạng tĩnh. Thư viện dùng chung nằm trong thư mục /system/lib
(hoặc /system/lib64
đối với thiết bị 64 bit) trong phân vùng.
Để thêm một thư viện dùng chung mới vào phân vùng khôi phục, hãy thêm recovery_available: true
hoặc recovery: true
vào Android.bp
của thư viện dùng chung. Phương thức trước cài đặt thư viện vào cả phân vùng hệ thống và phân vùng khôi phục, trong khi phương thức sau chỉ cài đặt thư viện vào phân vùng khôi phục.
Bạn không thể tạo tính năng hỗ trợ thư viện dùng chung bằng hệ thống xây dựng dựa trên bản dựng của Android.
Để chuyển đổi một tệp thực thi tĩnh hiện có cho chế độ khôi phục thành một tệp thực thi động, hãy xoá LOCAL_FORCE_STATIC_EXECUTABLE := true
trong Android.mk
hoặc static_executable: true
(trong Android.bp
).
Chốt kiểm tra dữ liệu người dùng (UDC)
Android 10 ra mắt tính năng Điểm kiểm tra dữ liệu người dùng (UDC), cho phép Android quay lại trạng thái trước đó khi không cập nhật được qua mạng không dây (OTA).