- cú pháp:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowNativeHeapPointerTagging=["true" | "false"] android:appCategory=["accessibility" | "audio" | "game" | "image" | "maps" | "news" | "productivity" | "social" | "video"] android:backupAgent="string" android:backupInForeground=["true" | "false"] android:banner="drawable resource" android:dataExtractionRules="string resource" android:debuggable=["true" | "false"] android:description="string resource" android:enabled=["true" | "false"] android:extractNativeLibs=["true" | "false"] android:fullBackupContent="string" android:fullBackupOnly=["true" | "false"] android:gwpAsanMode=["always" | "never"] android:hasCode=["true" | "false"] android:hasFragileUserData=["true" | "false"] android:hardwareAccelerated=["true" | "false"] android:icon="drawable resource" android:isGame=["true" | "false"] android:isMonitoringTool=["parental_control" | "enterprise_management" | "other"] android:killAfterRestore=["true" | "false"] android:largeHeap=["true" | "false"] android:label="string resource" android:logo="drawable resource" android:manageSpaceActivity="string" android:name="string" android:networkSecurityConfig="xml resource" android:permission="string" android:persistent=["true" | "false"] android:process="string" android:restoreAnyVersion=["true" | "false"] android:requestLegacyExternalStorage=["true" | "false"] android:requiredAccountType="string" android:resizeableActivity=["true" | "false"] android:restrictedAccountType="string" android:supportsRtl=["true" | "false"] android:taskAffinity="string" android:testOnly=["true" | "false"] android:theme="resource or theme" android:uiOptions=["none" | "splitActionBarWhenNarrow"] android:usesCleartextTraffic=["true" | "false"] android:vmSafeMode=["true" | "false"] > . . . </application>
- có trong:
<manifest>
- có thể chứa:
<activity>
<activity-alias>
<meta-data>
<service>
<receiver>
<profileable>
<provider>
<uses-library>
<uses-native-library>
- mô tả:
- Nội dung khai báo của ứng dụng. Phần tử này chứa các phần tử phụ khai báo từng thành phần của ứng dụng và có các thuộc tính có thể ảnh hưởng đến tất cả thành phần. Nhiều thuộc tính trong số này (chẳng hạn như
icon
,label
,permission
,process
,taskAffinity
vàallowTaskReparenting
) đặt giá trị mặc định cho các thuộc tính tương ứng trong các phần tử thành phần. Các thuộc tính khác (chẳng hạn nhưdebuggable
,enabled
,description
vàallowClearUserData
) đặt giá trị cho toàn bộ ứng dụng và không bị thành phần ghi đè. - thuộc tính
android:allowTaskReparenting
- Liệu hoạt động mà ứng dụng xác định có thể di chuyển từ nhiệm vụ bắt đầu sang nhiệm vụ tương đồng hay không khi nhiệm vụ đó được đưa lên trước –
"true"
nếu chúng có thể di chuyển,"false"
nếu chúng phải ở lại nhiệm vụ bắt đầu. Giá trị mặc định là"false"
.Phần tử
<activity>
có thuộc tínhallowTaskReparenting
riêng có thể ghi đè giá trị đặt tại đây. Hãy xem thuộc tính đó để biết thêm thông tin. android:allowBackup
Có cho phép ứng dụng tham gia vào hạ tầng sao lưu và khôi phục hay không. Nếu thuộc tính này được đặt thành
false
, mọi quá trình sao lưu hoặc khôi phục ứng dụng sẽ không bao giờ được thực hiện, ngay cả khi chế độ sao lưu toàn bộ hệ thống có thể lưu tất cả dữ liệu của ứng dụng qua adb. Giá trị mặc định của thuộc tính này làtrue
.Lưu ý: Nếu ứng dụng của bạn đang chạy trên thiết bị Android 12 trở lên và ứng dụng đó nhắm mục tiêu Android 12 (API cấp 31) trở lên, thì bạn không thể tắt tính năng di chuyển thiết bị sang các tệp của ứng dụng đó. Trong trường hợp đó, hệ thống tự động bật các chức năng này.
Bạn vẫn có thể tắt tính năng sao lưu và khôi phục tệp của ứng dụng trên đám mây bằng cách đặt thuộc tính này thành
false
, ngay cả khi ứng dụng của bạn nhắm đến Android 12 (API cấp 31) trở lên.Để biết thêm thông tin, vui lòng xem nội dung phần sao lưu và khôi phục ở trang mô tả thay đổi về hành vi của ứng dụng nhắm mục tiêu Android 12 (API cấp 31) trở lên.
android:allowClearUserData
Có cho phép ứng dụng đặt lại dữ liệu người dùng hay không. Dữ liệu này bao gồm cả cờ (chẳng hạn như người dùng đã xem chú giải công cụ giới thiệu hay chưa) cũng như các lựa chọn ưu tiên và chế độ cài đặt mà người dùng có thể tuỳ chỉnh. Giá trị mặc định của thuộc tính này là
true
.Lưu ý: Chỉ những ứng dụng thuộc ảnh hệ thống mới có thể khai báo thuộc tính này một cách rõ ràng. Ứng dụng bên thứ ba không được đưa thuộc tính này vào tệp kê khai.
Để biết thêm thông tin, hãy xem nội dung Khôi phục dữ liệu người dùng trên thiết bị mới.
android:allowNativeHeapPointerTagging
Chọn có bật tính năng Gắn thẻ con trỏ trên vùng nhớ khối xếp (Heap pointer tagging) cho ứng dụng hay không. Giá trị mặc định của thuộc tính này là
true
.Lưu ý: Việc tắt tính năng này không giải quyết được vấn đề cơ bản về trạng thái của mã. Có thể sau này các thiết bị phần cứng không hỗ trợ thẻ tệp kê khai này.
Để biết thêm thông tin, hãy xem nội dung Con trỏ được gắn thẻ.
android:appCategory
- Khai báo danh mục của ứng dụng này. Danh mục được dùng để nhóm nhiều ứng dụng với nhau thành các nhóm có ý nghĩa, chẳng hạn như khi tóm tắt mức sử dụng pin, mạng hoặc ổ đĩa. Ứng dụng chỉ nên xác định giá trị này khi nó phù hợp với một trong các danh mục cụ thể.
Phải là một trong các giá trị không đổi sau đây.
Giá trị Mô tả hỗ trợ tiếp cận Các ứng dụng chủ yếu là ứng dụng hỗ trợ tiếp cận, chẳng hạn như trình đọc màn hình. âm thanh Các ứng dụng chủ yếu hoạt động với âm thanh hoặc âm nhạc, chẳng hạn như trình phát nhạc. trò chơi Ứng dụng chủ yếu là trò chơi. hình ảnh Các ứng dụng chủ yếu hoạt động với hình ảnh hoặc ảnh, chẳng hạn như ứng dụng máy ảnh hoặc thư viện. bản đồ Các ứng dụng chủ yếu là ứng dụng bản đồ, chẳng hạn như ứng dụng điều hướng. tin tức Các ứng dụng chủ yếu là ứng dụng tin tức, chẳng hạn như báo, tạp chí hoặc ứng dụng thể thao. năng suất Các ứng dụng chủ yếu là ứng dụng cải thiện hiệu suất, chẳng hạn như bộ nhớ trên đám mây hoặc ứng dụng tại nơi làm việc. xã hội Các ứng dụng chủ yếu là ứng dụng giao tiếp, chẳng hạn như ứng dụng nhắn tin, liên lạc, email hoặc mạng xã hội. video Các ứng dụng chủ yếu hoạt động với video hoặc phim ảnh, chẳng hạn như ứng dụng phát trực tuyến video. android:backupAgent
- Tên của lớp triển khai tác nhân sao lưu của ứng dụng, một lớp con của
BackupAgent
. Giá trị thuộc tính phải là tên lớp đủ điều kiện (chẳng hạn như"com.example.project.MyBackupAgent"
). Tuy nhiên, ở dạng viết tắt, nếu ký tự đầu tiên của tên là một dấu chấm (ví dụ:".MyBackupAgent"
), thì hệ thống sẽ nối thêm tên gói được chỉ định trong phần tử<manifest>
.Không có giá trị mặc định. Bạn phải chỉ định tên.
android:backupInForeground
- Cho biết rằng quá trình Tự động sao lưu (Auto Backup) có thể được thực hiện trên ứng dụng này ngay cả khi ứng dụng đang ở trạng thái tương đương chế độ nền trước. Hệ thống sẽ tắt một ứng dụng trong quá trình tự động sao lưu, vì vậy, hãy dùng thuộc tính này một cách thận trọng. Việc đặt cờ này thành đúng (true) có thể ảnh hưởng đến hành vi của ứng dụng khi ứng dụng này đang hoạt động.
Giá trị mặc định là
false
, tức là hệ điều hành sẽ tránh sao lưu khi ứng dụng đang chạy ở chế độ nền trước (chẳng hạn như một ứng dụng âm nhạc đang phát nhạc qua một dịch vụ ở trạng tháistartForeground()
). android:banner
- Một tài nguyên có thể vẽ cung cấp biểu ngữ đồ hoạ mở rộng cho mục được liên kết. Hãy dùng cùng thẻ
<application>
để cung cấp biểu ngữ mặc định cho tất cả hoạt động của ứng dụng hoặc cùng thẻ<activity>
để cung cấp biểu ngữ cho một hoạt động cụ thể.Hệ thống dùng biểu ngữ để đại diện cho một ứng dụng trên màn hình chính của Android TV. Vì chỉ hiển thị biểu ngữ trên màn hình chính, nên biểu ngữ chỉ nên được chỉ định bởi các ứng dụng có hoạt động xử lý ý định
CATEGORY_LEANBACK_LAUNCHER
.Bạn phải đặt thuộc tính này làm tệp đối chiếu đến một tài nguyên có thể vẽ chứa hình ảnh (ví dụ:
"@drawable/banner"
). Không có biểu ngữ mặc định.Xem mục Cung cấp biểu ngữ trên màn hình chính trong phần Bắt đầu với ứng dụng TV để biết thêm thông tin.
android:dataExtractionRules
Các ứng dụng có thể đặt thuộc tính này thành một tài nguyên XML, trong đó ứng dụng chỉ định các quy tắc xác định tệp và thư mục nào bạn có thể sao chép qua thiết bị trong phạm vi của hoạt động sao lưu hoặc di chuyển.
Xem tài liệu về Một số thay đổi đối với tính năng sao lưu và khôi phục cho định dạng này của tệp XML.
android:debuggable
- Chọn có thể gỡ lỗi ứng dụng hay không, ngay cả khi chạy trên một thiết bị ở chế độ người dùng –
"true"
nếu có thể và"false"
nếu không thể. Giá trị mặc định là"false"
. android:description
- Văn bản mà người dùng có thể đọc về ứng dụng, dài hơn và mô tả rõ hơn nhãn ứng dụng. Giá trị phải được đặt làm mã tham chiếu đến tài nguyên chuỗi. Không giống như nhãn, văn bản này không được là chuỗi thô. Không có giá trị mặc định.
android:enabled
- Hệ thống Android có thể tạo bản sao các thành phần của ứng dụng hay không –
"true"
nếu có và"false"
nếu không. Nếu giá trị là"true"
, thì thuộc tínhenabled
của từng thành phần sẽ xác định có bật thành phần đó hay không. Nếu giá trị là"false"
, thì hệ thống sẽ ghi đè các giá trị theo từng thành phần; tất cả thành phần đều bị tắt.Giá trị mặc định là
"true"
. android:extractNativeLibs
- Thuộc tính này cho biết trình cài đặt gói có trích xuất thư viện gốc trong tệp APK vào hệ thống tệp hay không. Nếu bạn đặt thành
"false"
, thì các thư viện gốc của bạn sẽ được giải nén trong tệp APK. Mặc dù tệp APK của bạn có thể lớn hơn, nhưng ứng dụng của bạn sẽ tải nhanh hơn vì thư viện được tải trực tiếp qua tệp APK trong thời gian chạy.Giá trị mặc định của
extractNativeLibs
phụ thuộc vàominSdkVersion
và phiên bản AGP bạn đang dùng. Trong đa số trường hợp, hành vi mặc định có thể là tuỳ ý và bạn không cần đặt giá trị cho thuộc tính này một cách rõ ràng. android:fullBackupContent
- Thuộc tính này trỏ đến một tệp XML chứa đầy đủ quy tắc sao lưu cho tính năng Tự động sao lưu.
Những quy tắc này xác định tệp nào được sao lưu. Để biết thêm thông tin, hãy xem nội dung Cú pháp cấu hình XML cho tính năng Tự động sao lưu.
Thuộc tính này là không bắt buộc. Nếu bạn không chỉ định thì theo mặc định, tính năng Tự động sao lưu sẽ áp dụng cho hầu hết tệp của ứng dụng. Để biết thêm thông tin, hãy xem nội dung Các tệp đã sao lưu.
android:fullBackupOnly
- Thuộc tính này cho biết có dùng tính năng Tự động sao lưu trên các thiết bị không (nếu có). Nếu bạn đặt là
true
, thì ứng dụng của bạn sẽ tự động sao lưu khi được cài đặt trên thiết bị chạy Android 6.0 (API cấp 23) trở lên. Trên các thiết bị cũ hơn, ứng dụng của bạn sẽ bỏ qua thuộc tính này và thực hiện Sao lưu khoá/giá trị (Key/Value Backup).Giá trị mặc định là
"false"
. android:gwpAsanMode
- Thuộc tính này cho biết có dùng GWP-ASan hay không. Đây là một tính năng phân bổ bộ nhớ gốc giúp tìm các lỗi use-after-free (tấn công bộ nhớ từ xa) và heap-buffer-overflow (tràn bộ đệm trên vùng nhớ khối xếp).
Giá trị mặc định là
"never"
. android:hasCode
- Ứng dụng có chứa mã hay không –
"true"
nếu có và"false"
nếu không. Khi giá trị là"false"
, hệ thống sẽ không cố gắng tải mã xử lý ứng dụng khi chạy thành phần. Giá trị mặc định là"true"
.Ví dụ: nếu ứng dụng của bạn hỗ trợ Play Feature Delivery và bao gồm cả các mô-đun tính năng không tạo tệp DEX (mã byte được tối ưu hoá cho nền tảng Android), thì bạn cần đặt thuộc tính này thành
false
trong tệp kê khai của mô-đun. Ngược lại, bạn có thể gặp lỗi thời gian chạy. android:hasFragileUserData
- Khi người dùng gỡ cài đặt một ứng dụng, ứng dụng có cho người dùng thấy lời nhắc giữ lại dữ liệu của ứng dụng hay không. Giá trị mặc định là
"false"
. android:hardwareAccelerated
- Có cần bật tính năng kết xuất tăng tốc phần cứng cho tất cả hoạt động và thành phần hiển thị trong ứng dụng hay không –
"true"
nếu nên bật tính năng này và"false"
nếu không nên. Giá trị mặc định là"true"
nếu bạn đặtminSdkVersion
hoặctargetSdkVersion
đến"14"
trở lên; nếu không, giá trị mặc định là"false"
.Kể từ Android 3.0 (API cấp 11), ứng dụng có thể dùng trình kết xuất OpenGL tăng tốc phần cứng để cải thiện hiệu suất cho nhiều thao tác đồ hoạ 2D phổ biến. Khi bật trình kết xuất tăng tốc phần cứng, đa số thao tác trong Canvas, Paint, Xfermode, ColorFilter, Chương trình đổ bóng và Máy ảnh đều được tăng tốc. Điều này giúp ảnh động mượt mà hơn, khả năng cuộn mượt mà hơn và mức độ phản hồi tổng thể tốt hơn, ngay cả đối với những ứng dụng không sử dụng thư viện OpenGL của khung một cách rõ ràng.
Lưu ý không phải tất cả các hoạt động OpenGL 2D đều được tăng tốc. Nếu bạn bật trình kết xuất tăng tốc phần cứng, hãy kiểm thử ứng dụng để đảm bảo ứng dụng có thể sử dụng trình kết xuất mà không gặp lỗi.
Để biết thêm thông tin, hãy đọc hướng dẫn Tăng tốc phần cứng.
android:icon
- Một biểu tượng cho toàn bộ ứng dụng và biểu tượng mặc định cho các thành phần của ứng dụng. Xem từng thuộc tính
icon
riêng của các phần tử<activity>
,<activity-alias>
,<service>
,<receiver>
và<provider>
.Bạn phải đặt thuộc tính này làm mã tham chiếu đến một tài nguyên có thể vẽ chứa ảnh đó (ví dụ:
"@drawable/icon"
). Không có biểu tượng mặc định. android:isGame
- Ứng dụng có phải là trò chơi hay không. Hệ thống có thể nhóm các ứng dụng được phân loại là trò chơi hoặc thể hiện các ứng dụng theo cách riêng biệt với nhau.
Mặc định là
false
. android:isMonitoringTool
Cho biết rằng ứng dụng này được thiết kế để theo dõi các cá nhân khác.
Lưu ý: Nếu một ứng dụng khai báo thuộc tính này trong tệp kê khai, thì nhà phát triển phải tuân thủ chính sách về Phần mềm theo dõi để phát hành ứng dụng lên Google Play.
Không có giá trị mặc định. Nhà phát triển phải chỉ định một trong những giá trị sau:
Giá trị Nội dung mô tả "parental_control"
Ứng dụng phục vụ nhu cầu kiểm soát của cha mẹ và dành riêng cho những cha mẹ muốn giữ an toàn cho con cái. "enterprise_management"
Ứng dụng phục vụ cho các doanh nghiệp muốn quản lý và theo dõi các thiết bị được cung cấp cho nhân viên. "other"
Ứng dụng phục vụ cho một trường hợp sử dụng không được chỉ định khác trong bảng này. android:killAfterRestore
- Ứng dụng được đề cập có bị chấm dứt sau khi chế độ cài đặt của ứng dụng đó được khôi phục trong quá trình khôi phục toàn bộ hệ thống hay không.
Quá trình khôi phục một gói đơn lẻ không bao giờ khiến ứng dụng ngừng hoạt động. Thường thì quá trình khôi phục toàn bộ hệ thống chỉ diễn ra một lần, khi thiết lập điện thoại lần đầu. Ứng dụng bên thứ ba thường không cần dùng thuộc tính này.
Giá trị mặc định là
true
, tức là sau khi ứng dụng xử lý xong dữ liệu của mình trong quá trình khôi phục toàn bộ hệ thống, ứng dụng đó sẽ bị chấm dứt. android:largeHeap
- Quy trình của ứng dụng có được tạo bằng một vùng nhớ khối xếp Dalvik lớn hay không. Thuộc tính này áp dụng cho mọi quy trình được tạo cho ứng dụng. Chỉ áp dụng đối với ứng dụng đầu tiên được tải trong một quy trình; nếu bạn đang dùng mã nhận dạng người dùng chung để cho phép nhiều ứng dụng sử dụng một quy trình, thì tất cả ứng dụng đó phải sử dụng tuỳ chọn này một cách nhất quán. Nếu không, những ứng dụng đó sẽ gặp các kết quả ngoài dự đoán.
Hầu hết các ứng dụng không cần thuộc tính này và nên tập trung vào việc giảm mức sử dụng bộ nhớ tổng thể để cải thiện hiệu suất. Việc cho phép thuộc tính này cũng không đảm bảo một mức tăng cố định trong bộ nhớ còn trống, vì một số thiết bị bị hạn chế bởi tổng bộ nhớ còn trống.
Để truy vấn dung lượng bộ nhớ còn trống trong thời gian chạy, hãy dùng các phương thức
getMemoryClass()
hoặcgetLargeMemoryClass()
. android:label
- Một nhãn mà người dùng có thể đọc được cho toàn bộ ứng dụng và một nhãn mặc định cho từng thành phần của ứng dụng. Xem từng thuộc tính
label
riêng của các phần tử<activity>
,<activity-alias>
,<service>
,<receiver>
và<provider>
.Bạn nên đặt nhãn này làm mã tham chiếu đến một tài nguyên chuỗi để nhãn có thể được bản địa hoá như các chuỗi khác trong giao diện người dùng. Tuy nhiên, để thuận tiện trong quá trình phát triển ứng dụng, bạn cũng có thể đặt nhãn này làm chuỗi thô.
android:logo
- Một biểu tượng cho toàn bộ ứng dụng và biểu tượng mặc định cho các hoạt động.
Bạn phải đặt thuộc tính này làm mã tham chiếu đến một tài nguyên có thể vẽ chứa ảnh đó (ví dụ:
"@drawable/logo"
). Không có biểu tượng mặc định. android:manageSpaceActivity
- Tên đủ điều kiện của một lớp con Hoạt động (Activity) mà hệ thống có thể chạy để cho phép người dùng quản lý phần bộ nhớ mà ứng dụng chiếm lấy trên thiết bị. Bạn cũng phải khai báo hoạt động này bằng một phần tử
<activity>
. android:name
- Tên đủ điều kiện của một lớp con
Application
được triển khai cho ứng dụng. Khi quy trình đăng ký bắt đầu, hệ thống sẽ tạo bản sao lớp này cho mọi thành phần của ứng dụng.Lớp con là không bắt buộc; hầu hết ứng dụng sẽ không cần lớp con. Khi không có lớp con, Android sẽ dùng một phiên bản của lớp ứng dụng cơ sở.
android:networkSecurityConfig
Chỉ định tên của tệp XML chứa Cấu hình bảo mật mạng của ứng dụng. Giá trị phải là mã tham chiếu đến tệp tài nguyên XML chứa cấu hình đó.
Thuộc tính này đã được thêm vào API cấp 24.
android:permission
- Tên của một quyền mà ứng dụng phải có để tương tác với ứng dụng. Thuộc tính này là một cách thuận tiện để đặt một quyền áp dụng cho tất cả thành phần của ứng dụng. Bạn có thể ghi đè thuộc tính này bằng cách đặt thuộc tính
permission
của từng thành phần.Để biết thêm thông tin về các quyền, hãy xem nội dung Quyền trong phần giới thiệu cũng như tài liệu Bảo mật và quyền.
android:persistent
- Ứng dụng có luôn chạy hay không –
"true"
nếu có và"false"
nếu không. Giá trị mặc định là"false"
. Thường thì ứng dụng không đặt cờ này; chế độ ổn định chỉ dành cho một số ứng dụng hệ thống cụ thể. android:process
- Tên của một quy trình nơi tất cả thành phần của ứng dụng sẽ chạy trong đó.
Từng thành phần có thể ghi đè giá trị mặc định này khi bạn đặt thuộc tính
process
của chính thành phần đó.Theo mặc định, Android sẽ tạo một quy trình cho ứng dụng khi ứng dụng cần chạy các thành phần đầu tiên. Sau đó, tất cả thành phần đều chạy trong quy trình đó. Tên của quy trình mặc định giống với tên gói do phần tử
<manifest>
đặt.Bằng cách đặt thuộc tính này thành tên quy trình được chia sẻ với một ứng dụng khác, bạn có thể sắp xếp sao cho các thành phần của cả hai ứng dụng chạy trong cùng một quy trình – nhưng chỉ khi hai ứng dụng đều chia sẻ mã nhận dạng người dùng và được ký bằng cùng một chứng chỉ.
Nếu tên gán cho thuộc tính này bắt đầu bằng dấu hai chấm (":"), thì một quy trình mới và dành riêng cho ứng dụng sẽ được tạo khi cần. Nếu tên quy trình bắt đầu bằng một ký tự viết thường, thì hệ thống sẽ tạo một quy trình chung của tên đó. Bạn có thể chia sẻ một quy trình chung với các ứng dụng khác, nhờ đó giảm mức sử dụng tài nguyên.
android:restoreAnyVersion
- Cho biết ứng dụng đã sẵn sàng để cố gắng khôi phục mọi tập dữ liệu đã sao lưu, ngay cả khi bản sao lưu của ứng dụng được lưu trữ bằng một phiên bản mới hơn ứng dụng hiện được cài đặt trên thiết bị. Việc đặt thuộc tính này thành
true
sẽ cho phép Trình quản lý sao lưu (Backup Manager) cố gắng khôi phục ngay cả khi phiên bản không khớp cho thấy dữ liệu không tương thích. Hãy thận trọng khi sử dụng!Giá trị mặc định của thuộc tính này là
false
. android:requestLegacyExternalStorage
-
Ứng dụng có muốn chọn không sử dụng bộ nhớ có giới hạn hay không.
Lưu ý: Tuỳ thuộc vào thay đổi liên quan đến khả năng tương thích với chính sách hoặc ứng dụng, hệ thống có thể không xử lý yêu cầu chọn không sử dụng này.
android:requiredAccountType
- Chỉ định loại tài khoản mà ứng dụng cần đến để hoạt động.
Nếu ứng dụng của bạn cần đến một
Account
, thì giá trị của thuộc tính này phải tương ứng với loại trình xác thực tài khoản mà ứng dụng của bạn sử dụng (doAuthenticatorDescription
xác định), chẳng hạn như "com.google".Giá trị mặc định là rỗng (null) và cho biết ứng dụng có thể hoạt động mà không cần tài khoản nào.
Vì hồ sơ bị hạn chế hiện không thể thêm tài khoản, nên việc chỉ định thuộc tính này khiến ứng dụng của bạn không xuất hiện trong hồ sơ bị hạn chế, trừ trường hợp bạn cũng khai báo
android:restrictedAccountType
với cùng giá trị.Chú ý: Nếu dữ liệu tài khoản có thể tiết lộ thông tin nhận dạng cá nhân, thì bạn phải khai báo thuộc tính này và gán
android:restrictedAccountType
rỗng (null) để các hồ sơ bị hạn chế không thể sử dụng ứng dụng của bạn để truy cập thông tin cá nhân của người dùng là chủ sở hữu.Thuộc tính này đã được thêm vào từ API cấp 18.
android:resizeableActivity
-
Chỉ định việc ứng dụng có hỗ trợ chế độ nhiều cửa sổ hay không. Bạn có thể đặt thuộc tính này trong phần tử
<activity>
hoặc<application>
.Nếu bạn đặt thuộc tính này thành đúng (true), thì người dùng có thể chạy hoạt động ở chế độ chia đôi màn hình và biểu mẫu tuỳ ý. Nếu bạn đặt thuộc tính thành sai (false), ứng dụng không thể được kiểm thử hoặc tối ưu hoá cho môi trường nhiều cửa sổ. Hệ thống vẫn có thể đưa hoạt động vào chế độ nhiều cửa sổ khi đã áp dụng chế độ tương thích. Việc đặt thuộc tính này thành đúng (true) cũng không đảm bảo sẽ không có ứng dụng nào khác ở chế độ nhiều cửa sổ xuất hiện trên màn hình (chẳng hạn như hình trong hình) hoặc trên các màn hình khác. Do đó, việc đặt cờ này không đảm bảo ứng dụng của bạn có quyền truy cập độc quyền vào tài nguyên.
Nếu ứng dụng của bạn nhắm đến API cấp độ 24 trở lên, nhưng bạn không chỉ định giá trị cho thuộc tính này, giá trị của thuộc tính này sẽ mặc định là đúng (true).
Nếu ứng dụng của bạn nhắm đến API cấp độ 31 trở lên, thuộc tính này sẽ hoạt động khác nhau trên màn hình nhỏ và lớn:
- Màn hình lớn (sw >= 600dp): Tất cả ứng dụng đều hỗ trợ chế độ nhiều cửa sổ. Thuộc tính này cho biết ứng dụng có thể đổi kích thước hay không (chứ không phải ứng dụng có hỗ trợ chế độ nhiều cửa sổ hay không). Nếu
resizeableActivity="false"
, ứng dụng sẽ được đưa vào chế độ tương thích khi cần thiết để phù hợp với kích thước màn hình. - Màn hình nhỏ (sw < 600dp): Nếu
resizeableActivity="true"
và chiều rộng cũng như chiều cao tối thiểu của hoạt động chính nằm trong yêu cầu nhiều cửa sổ, thì ứng dụng sẽ hỗ trợ chế độ nhiều cửa sổ. NếuresizeableActivity="false"
, thì ứng dụng sẽ không hỗ trợ chế độ nhiều cửa sổ bất kể chiều rộng và chiều cao tối thiểu hoạt động là bao nhiêu.
Lưu ý: Nhà sản xuất thiết bị có thể ghi đè hành vi của API cấp độ 31.
Thuộc tính này đã được thêm vào API cấp độ 24.
Lưu ý: Giá trị hoạt động gốc của một tác vụ được áp dụng cho mọi hoạt động bổ sung được khởi chạy trong tác vụ đó. Tức là nếu có thể đổi kích thước hoạt động gốc của một nhiệm vụ, hệ thống sẽ coi tất cả hoạt động khác trong nhiệm vụ đó là có thể đổi kích thước. Nếu hoạt động gốc không thể đổi kích thước, các hoạt động khác trong nhiệm vụ đó cũng không thể đổi kích thước.
- Màn hình lớn (sw >= 600dp): Tất cả ứng dụng đều hỗ trợ chế độ nhiều cửa sổ. Thuộc tính này cho biết ứng dụng có thể đổi kích thước hay không (chứ không phải ứng dụng có hỗ trợ chế độ nhiều cửa sổ hay không). Nếu
android:restrictedAccountType
- Chỉ định loại tài khoản mà ứng dụng này cần đến và cho biết hồ sơ bị hạn chế sẽ được phép truy cập vào các tài khoản như vậy thuộc về người dùng là chủ sở hữu. Nếu ứng dụng của bạn yêu cầu một
Account
và các hồ sơ bị hạn chế được phép truy cập vào tài khoản của người dùng chính, thì giá trị của thuộc tính này phải tương ứng với loại trình xác thực tài khoản mà ứng dụng của bạn sử dụng (doAuthenticatorDescription
xác định), chẳng hạn như "com.google".Giá trị mặc định là rỗng (null) và cho biết ứng dụng có thể hoạt động mà không cần tài khoản nào.
Chú ý: Việc chỉ định thuộc tính này cho phép các hồ sơ bị hạn chế sử dụng ứng dụng của bạn bằng những tài khoản thuộc về người dùng là chủ sở hữu. Điều này có thể làm lộ thông tin nhận dạng cá nhân. Nếu tài khoản có thể tiết lộ thông tin cá nhân, thì bạn không nên dùng thuộc tính này. Thay vào đó, bạn nên khai báo thuộc tính
android:requiredAccountType
để ngừng cung cấp ứng dụng cho các hồ sơ bị hạn chế.Thuộc tính này đã được thêm vào từ API cấp 18.
android:supportsRtl
- Khai báo việc ứng dụng của bạn có sẵn sàng hỗ trợ bố cục từ phải sang trái (RTL) hay không.
Nếu đặt thành
true
vàtargetSdkVersion
đặt thành 17 trở lên, thì hệ thống sẽ kích hoạt và sử dụng nhiều API RTL để ứng dụng của bạn có thể cho thấy các bố cục RTL. Nếu đặt thànhfalse
hoặctargetSdkVersion
đặt thành 16 trở xuống, thì các API RTL sẽ bị bỏ qua hoặc không có hiệu lực, đồng thời ứng dụng của bạn sẽ hoạt động như nhau bất kể hướng bố cục có liên kết với lựa chọn Ngôn ngữ của người dùng hay không (bố cục của bạn sẽ luôn là từ trái sang phải).Giá trị mặc định của thuộc tính này là
false
.Thuộc tính này đã được thêm vào từ API cấp 17.
android:taskAffinity
- Tên tương đồng (affinity name) áp dụng cho tất cả hoạt động trong ứng dụng, trừ những tên đặt giá trị cho một hoạt động tương đồng khác với các thuộc tính
taskAffinity
riêng. Hãy xem thuộc tính đó để biết thêm thông tin.Theo mặc định, tất cả hoạt động trong một ứng dụng đều có chung hoạt động tương đồng. Tên của hoạt động tương đồng đó giống với tên gói do phần tử
<manifest>
đặt. android:testOnly
- Cho biết ứng dụng này có phải chỉ nhằm mục đích kiểm thử hay không. Ví dụ: ứng dụng này có thể tiết lộ chức năng hoặc dữ liệu ra bên ngoài, từ đó có thể dẫn đến lỗ hổng bảo mật, nhưng hữu ích cho hoạt động kiểm thử. Bạn chỉ có thể cài đặt loại tệp APK này qua
adb
– bạn không thể phát hành tệp APK này trên Google Play.Android Studio tự động thêm thuộc tính này khi bạn nhấp vào biểu tượng Chạy
.
android:theme
- Mã tham chiếu đến một tài nguyên kiểu xác định giao diện mặc định cho tất cả hoạt động trong ứng dụng. Hoạt động riêng lẻ có thể ghi đè hoạt động mặc định bằng cách đặt thuộc tính
theme
của riêng chúng. Để biết thêm thông tin, hãy xem hướng dẫn dành cho nhà phát triển về Kiểu và giao diện. android:uiOptions
- Các tuỳ chọn bổ sung cho giao diện người dùng của một hoạt động.
Phải là một trong các giá trị sau đây.
Giá trị Mô tả "none"
Không có tuỳ chọn bổ sung cho giao diện người dùng. Đây là tuỳ chọn mặc định. "splitActionBarWhenNarrow"
Thêm một thanh ở cuối màn hình để thể hiện các mục hành động trong thanh ứng dụng (còn gọi là thanh hành động), khi bị hạn chế về không gian ngang (chẳng hạn như khi ở chế độ dọc trên điện thoại). Thay vì một số ít mục hành động xuất hiện trong thanh ứng dụng ở đầu màn hình, thanh ứng dụng sẽ được chia thành phần điều hướng ở trên cùng và mục hành động ở thanh dưới cùng. Việc này giúp đảm bảo một không gian lưu trữ hợp lý được cung cấp không chỉ cho các mục hành động mà còn cho các phần tử điều hướng và tiêu đề ở trên cùng. Các mục trong trình đơn không được chia thành hai thanh; chúng luôn xuất hiện cùng nhau. Để biết thêm thông tin về thanh ứng dụng, hãy xem lớp học về chủ đề Thêm thanh ứng dụng.
Thuộc tính này đã được thêm vào từ API cấp 14.
android:usesCleartextTraffic
- Cho biết ứng dụng có ý định sử dụng lưu lượng truy cập mạng qua văn bản thô hay không, chẳng hạn như HTTP qua văn bản thô.
Giá trị mặc định cho ứng dụng nhắm đến API cấp 27 trở xuống là
"true"
. Ứng dụng nhắm đến API cấp 28 trở lên được đặt giá trị mặc định là"false"
.Khi bạn đặt thuộc tính này là
"false"
, các thành phần nền tảng (ví dụ: ngăn xếp HTTP và FTP,DownloadManager
vàMediaPlayer
) sẽ từ chối yêu cầu sử dụng lưu lượng truy cập qua văn bản thô của ứng dụng. Thư viện của bên thứ ba cũng nên tuân thủ chế độ cài đặt này. Lý do chính khiến bạn nên tránh lưu lượng truy cập qua văn bản thô là phương thức này thiếu tính bảo mật, tính xác thực và biện pháp bảo vệ chống can thiệp; kẻ tấn công mạng có thể xem trộm cũng như sửa đổi dữ liệu được truyền mà không bị phát hiện.Cờ này được tuân thủ trên cơ sở nỗ lực tối đa vì không thể ngăn tất cả lưu lượng truy cập văn bản thô qua ứng dụng Android khi xét đến mức truy cập được cung cấp cho chúng. Ví dụ: không nên kỳ vọng rằng
Socket
API sẽ tuân thủ cờ này vì không thể xác định xem lưu lượng truy cập của API này có ở dạng văn bản thô hay không. Tuy nhiên, hầu hết lưu lượng truy cập mạng qua ứng dụng đều được các ngăn xếp/thành phần mạng cấp cao hơn xử lý. Nhờ vậy, bạn có thể phân biệt cờ này bằng cách đọc trênApplicationInfo.flags
hoặcNetworkSecurityPolicy.isCleartextTrafficPermitted()
.Lưu ý:
WebView
tuân thủ thuộc tính này đối với ứng dụng nhắm đến API cấp 26 trở lên.Trong quá trình phát triển ứng dụng, bạn có thể dùng StrictMode để xác định lưu lượng truy cập bất kỳ qua văn bản thô trên ứng dụng. Hãy xem
StrictMode.VmPolicy.Builder.detectCleartextNetwork()
để biết thêm thông tin.Thuộc tính này đã được thêm vào API cấp độ 23.
Cờ này bị bỏ qua trên Android 7.0 (API cấp 24) trở lên nếu có Cấu hình bảo mật mạng Android.
android:vmSafeMode
- Cho biết ứng dụng có muốn máy ảo (VM) hoạt động ở chế độ an toàn hay không. Giá trị mặc định là
"false"
.Thuộc tính này đã được thêm vào từ API cấp 8, trong đó giá trị "đúng" ("true") vô hiệu hoá trình biên dịch trong khi chạy (JIT) Dalvik.
Thuộc tính này đã được áp dụng từ API cấp 22, trong đó giá trị "đúng" ("true") vô hiệu hoá trình biên dịch trước khi chạy (AOT) ART.
Kể từ AGP 4.2.0, thuộc tính tệp kê khai
extractNativeLibs
đã được thay thế bằng lựa chọn DSLuseLegacyPackaging
. Bạn nên dùnguseLegacyPackaging
trong tệpbuild.gradle
của ứng dụng thay vìextractNativeLibs
trong tệp kê khai để định cấu hình hành vi nén thư viện gốc. Để biết thêm thông tin, hãy xem ghi chú phát hành Dùng DSL để đóng gói thư viện gốc được nén.- ra mắt từ:
- API cấp 1
- xem thêm:
<activity>
<service>
<receiver>
<provider>
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2022-11-10 UTC.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Thiếu thông tin tôi cần"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Quá phức tạp/quá nhiều bước"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Đã lỗi thời"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"Vấn đề về bản dịch"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Vấn đề về mẫu/mã"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Khác"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Dễ hiểu"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Giúp tôi giải quyết được vấn đề"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Khác"
}]