cú pháp:
<uses-native-library
  android:name="string"
  android:required=["true" | "false"] />
có trong:
<application>
mô tả:

Chỉ định thư viện gốc chia sẻ từ nhà cung cấpphải được liên kết với ứng dụng. Phần tử này yêu cầu hệ thống tạo quyền truy cập vào thư viện gốc cho gói dịch vụ.

Theo mặc định, thư viện NDK có thể truy cập được và do đó không cần có thẻ <uses-native-library>.

Không thể truy cập theo mặc định các thư viện gốc dùng chung không phải NDK do nhà cung cấp silicon hoặc nhà sản xuất thiết bị cung cấp nếu ứng dụng đang nhắm mục tiêu Android 12 (API cấp 31) trở lên. Bạn chỉ có quyền truy cập vào thư viện khi chúng được yêu cầu rõ ràng sử dụng thẻ <uses-native-library>.

Nếu ứng dụng nhắm mục tiêu Android 11 (API cấp 30) trở xuống, thì bạn không bắt buộc phải sử dụng thẻ <uses-native-library>. Trong trường hợp đó, mọi thư viện gốc dùng chung đều có thể truy cập được, bất kể đó là thư viện NDK.

Phần tử này cũng ảnh hưởng đến việc cài đặt ứng dụng trên một thiết bị cụ thể:

Cài đặt
Nếu phần tử này có mặt và thuộc tính android:required của phần tử này được đặt thành true, thì khung PackageManagersẽ không cho phép người dùng cài đặt ứng dụng trừ khi thư viện hiện diện trên thiết bị của người dùng.

Thuộc tính android:required được mô tả chi tiết trong phần sau.

thuộc tính:
android:name
Tên của tệp thư viện.
android:required
Giá trị Boolean cho biết ứng dụng có cần thư viện do android:name chỉ định hay không:
  • "true": Ứng dụng không hoạt động nếu không có thư viện này. Hệ thống sẽ không cho phép ứng dụng trên thiết bị không có thư viện.
  • "false": Ứng dụng có thể sử dụng thư viện (nếu có), nhưng được thiết kế để hoạt động khi không có thư viện nếu cần. Hệ thống sẽ cho phép cài đặt ứng dụng, ngay cả khi bạn không có thư viện. Nếu sử dụng "false", bạn có trách nhiệm xử lý linh hoạt việc không có thư viện.

Mặc định là "true".

ra mắt từ:
API cấp 31
xem thêm: