- cú pháp:
<application android:allowTaskReparenting=["true" | "false"] android:allowBackup=["true" | "false"] android:allowClearUserData=["true" | "false"] android:allowCrossUidActivitySwitchFromBelow=["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 các 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 phía trước. Đó là
"true"
nếu chúng có thể di chuyển và là"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ị được đặt tại đây. android:allowBackup
Liệu có cho phép ứng dụng tham gia vào cơ sở 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"
, thì mọi quá trình sao lưu hoặc khôi phục ứng dụng sẽ không đượ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 quaadb
. Giá trị mặc định của thuộc tính này là"true"
.Lưu ý: Đối với những ứng dụng nhắm đến Android 12 (API cấp 31) trở lên, hành vi này khác nhau. Trên các thiết bị của một số nhà sản xuất thiết bị, bạn không thể tắt tính năng di chuyển từ thiết bị này sang thiết bị khác của các tệp trong ứng dụng của bạn.
Tuy nhiên, bạn có thể tắt tính năng sao lưu và khôi phục trên đám mây đối với tệp của ứng dụng 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, hãy xem phần sao lưu và khôi phục ở trang mô tả sự thay đổi về hoạt động của ứng dụng nhắm đến Android 12 (API cấp 31) trở lên.
android:allowClearUserData
Liệu 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 phần chú thích giới thiệu 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 hay chưa. 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 hình ảnh hệ thống mới có thể khai báo thuộc tính này một cách rõ ràng. Các ứng dụng bên thứ ba không thể đưa thuộc tính này vào tệp kê khai.
Để biết thêm thông tin, hãy xem bài viết Tổng quan về tính năng sao lưu dữ liệu.
android:allowCrossUidActivitySwitchFromBelow
Chỉ định xem các hoạt động bên dưới hoạt động này trong tác vụ có thể bắt đầu các hoạt động khác hay không hoặc hoàn thành việc cần làm.
Bắt đầu từ SDK mục tiêu cấp
Build.VERSION_CODES.VANILLA_ICE_CREAM
, ứng dụng có thể bị chặn bắt đầu hoạt động mới hoặc hoàn thành nhiệm vụ của chúng trừ phi hoạt động hàng đầu của tác vụ đó thuộc về cùng một UID vì lý do bảo mật.Việc đặt cờ này thành
true
sẽ cho phép ứng dụng đang chạy bỏ qua quy định hạn chế nếu hoạt động này ở trên cùng. Các ứng dụng khớp với UID của hoạt động này luôn được miễn trừ.Để biết thêm thông tin, hãy xem phần Khởi chạy hoạt động an toàn ở chế độ nền.
android:allowNativeHeapPointerTagging
Liệu ứng dụng có bật tính năng gắn thẻ con trỏ trên Vùng nhớ khối xếp 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ã. Sau này, các thiết bị phần cứng có thể không hỗ trợ thẻ tệp kê khai này.
Để biết thêm thông tin, hãy xem bài viết 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. Chỉ xác định giá trị này cho các ứng dụng 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ị Nội dung mô tả accessibility
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. audio
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. game
Các ứng dụng chủ yếu là trò chơi. image
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 thư viện hoặc máy ảnh. maps
Các ứng dụng chủ yếu là ứng dụng bản đồ, chẳng hạn như ứng dụng chỉ đường. news
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. productivity
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. social
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, giao tiếp, 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 thường là một 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, chẳng hạn như".MyBackupAgent"
, thì hệ thống sẽ nối thêm tên gói được chỉ định trong phần tử<manifest>
vào.Không có giá trị mặc định. Tên phải là tên cụ thể.
android:backupInForeground
- Cho biết rằng quá trình Tự động sao lưu 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 với 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 thận trọng khi dùng thuộc tính này. Việc đặt cờ này thành
"true"
có thể ảnh hưởng đến hoạt động 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 bằng 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 với thẻ
<application>
để cung cấp biểu ngữ mặc định cho mọi hoạt động của ứng dụng hoặc cùng với thẻ<activity>
để cung cấp biểu ngữ cho một hoạt động cụ thể.Hệ thống này dùng biểu ngữ để biểu thị một ứng dụng trên màn hình chính của Android TV. Do đó, hãy chỉ chỉ định biểu ngữ này cho các ứng dụng có hoạt động xử lý ý định
CATEGORY_LEANBACK_LAUNCHER
.Thuộc tính này được đặt làm tham chiếu đến một tài nguyên có thể vẽ có chứa hình ảnh, chẳng hạn như
"@drawable/banner"
. Không có biểu ngữ mặc định nào.Để biết thêm thông tin, hãy xem phần Cung cấp biểu ngữ trên màn hình chính.
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 có thể được sao chép qua thiết bị trong phạm vi của hoạt động sao lưu hoặc di chuyển.
Để biết thông tin về định dạng của tệp XML, hãy xem bài viết Sao lưu và khôi phục.
android:debuggable
- Liệu ứng dụng có thể được gỡ lỗi hay không, ngay cả khi chạy trên một thiết bị ở chế độ người dùng. Giá trị này sẽ là
"true"
nếu có thể và là"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 sẽ dài hơn và mô tả rõ hơn nhãn ứng dụng. Giá trị này được đặt ở dạng tham chiếu đến tài nguyên chuỗi. Không giống như nhãn, giá trị này không được là một chuỗi thô. Không có giá trị mặc định.
android:enabled
- Liệu hệ thống Android có thể tạo thực thể cho các thành phần của ứng dụng hay không. Giá trị này sẽ là
"true"
nếu có thể và là"false"
nếu không thể. Nếu giá trị là"true"
, thì thuộc tínhenabled
của từng thành phần sẽ xác định xem có bật thành phần đó 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 và tất cả cá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 từ 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 lưu ở dạng 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 sẽ tải nhanh hơn vì thư viện tải trực tiếp từ 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 phần Cú pháp cấu hình XML của 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 phần 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ị hay 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 hoạt động Sao lưu khoá/giá trị.Giá trị mặc định là
"false"
. android:gwpAsanMode
- Thuộc tính này cho biết liệu có sử dụng GWP-ASan, một tính năng phân bổ bộ nhớ gốc giúp tìm các lỗi use-after-free và heap-buffer-overflow được hay không.
Giá trị mặc định là
"never"
. android:hasCode
- Liệu ứng dụng có chứa mã DEX nào hay không, tức là mã sử dụng
Ngôn ngữ lập trình Kotlin hoặc Java.
Giá trị này sẽ là
"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 bất kỳ ứng dụng nào khi khởi chạy các thành phần. Giá trị mặc định là"true"
.Nếu ứng dụng có chứa mã gốc (C/C++) nhưng không có mã DEX, thì mã này phải được đặt thành
"false"
. Nếu bạn đặt thành"true"
khi APK không chứa mã DEX, nên ứng dụng có thể không tải được.Thuộc tính này phải tính đến mã có trong ứng dụng bằng cách phần phụ thuộc. Nếu ứng dụng phụ thuộc vào một AAR sử dụng Mã Java/Kotlin hoặc trực tiếp trên tệp JAR,
app:hasCode
phải là"true"
hoặc bỏ qua vì đó là giá trị mặc định.Ví dụ: ứng dụng của bạn có thể hỗ trợ Play Feature Delivery và bao gồm các mô-đun tính năng không tạo tệp DEX nào. Đây là mã byte được tối ưu hoá cho nền tảng Android. Nếu có, bạn cần đặt thuộc tính này thành
"false"
trong tệp kê khai của mô-đun để tránh lỗi thời gian chạy. android:hasFragileUserData
- Liệu có hiển thị cho người dùng lời nhắc giữ lại dữ liệu của ứng dụng khi người dùng gỡ cài đặt ứng dụng hay không. Giá trị mặc định là
"false"
. android:hardwareAccelerated
- Liệu tính năng kết xuất tăng tốc phần cứng có được bật cho mọi hoạt động và khung hiển thị trong ứng dụng này hay không. Giá trị này là
"true"
nếu được bật và là"false"
nếu không được bật. Giá trị mặc định là"true"
nếu bạn đặtminSdkVersion
hoặctargetSdkVersion
thành"14"
trở lên. Nếu không, giá trị sẽ 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, hầu hết các 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 và khả năng cuộn mượt mà hơn, đồng thời 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.
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ể 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 Tăng tốc phần cứng của chúng tôi.
android:icon
- Một biểu tượng cho toàn bộ ứng dụng và biểu tượng mặc định cho từng 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>
.Thuộc tính này được đặt dưới dạng tham chiếu đến một tài nguyên có thể vẽ chứa hình ảnh, chẳng hạn như
"@drawable/icon"
. Không có biểu tượng mặc định. android:isGame
- Liệu ứ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 lại với nhau hoặc hiển thị chúng một cách riêng biệt với các ứng dụng khác. Giá trị 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
Liệu ứng dụng có chấm dứt sau đã được khôi phục trong quá trình khôi phục toàn bộ hệ thống. Các hoạt động khôi phục một gói 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. Các ứng dụng bên thứ ba thường không cần sử dụng thuộc tính này.
Giá trị mặc định là
"true"
, nghĩa là ứng dụng sẽ chấm dứt sau khi xử lý xong dữ liệu trong quá trình khôi phục toàn bộ hệ thống.android:largeHeap
Liệu các 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 để tránh các kết quả ngoài dự đoán.
Hầu hết các ứng dụng đều không cần thuộc tính này và thay vào đó, chúng 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
- Là một nhãn mà người dùng có thể đọc được cho toàn bộ ứng dụng và là 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>
.Nhãn được đặt ở dạng tham chiếu đến tài nguyên chuỗi để 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 cho 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
- Là 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.
Thuộc tính này được đặt ở dạng tham chiếu đến một tài nguyên có thể vẽ chứa hình ảnh, chẳng hạn như
"@drawable/logo"
. Không có biểu trưng mặc định. android:manageSpaceActivity
- Là tên đủ điều kiện của một lớp con
Activity
mà hệ thống chạy để cho phép người dùng quản lý bộ nhớ mà ứng dụng đang sử dụng trên thiết bị. Hoạt động cũng được khai báo bằng phần tử<activity>
. android:name
- Là 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 thực thể cho lớp này trước bất kỳ thành phần nào của ứng dụng.Lớp con là không bắt buộc. Hầu hết các ứng dụng đều không cần đến. Khi không có lớp con, Android sẽ dùng một thực thể của lớp
Application
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ị này ở dạng 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
- Là tên của một quyền mà ứng dụng cần để tương tác với ứng dụng. Thuộc tính này giúp bạn dễ dàng đặt một quyền áp dụng cho tất cả cá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 phần Quyền trên trang tổng quan về tệp kê khai ứng dụng và bài viết Mẹo bảo mật.
android:persistent
- Liệu ứng dụng có luôn chạy hay không. Giá trị là
"true"
nếu có và"false"
nếu không. Giá trị mặc định là"false"
. Các ứng dụng thường không đặt cờ này. Chế độ liên tục chỉ dành cho một số ứng dụng hệ thống. android:process
- Là 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"
cho phép Dịch vụ quản lý bản sao lưu 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
-
Liệu ứ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 có
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, như đượcAuthenticatorDescription
xác định, chẳng hạn như"com.google"
.Giá trị mặc định là rỗng 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ế không thể thêm tài khoản, nên việc chỉ định thuộc tính này sẽ 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 để 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
"true"
, thì người dùng có thể chạy hoạt động ở chế độ chia đôi màn hình và chế độ biểu mẫu tuỳ ý. Nếu bạn đặt thuộc tính thành"false"
, thì hệ thống sẽ không thể kiểm thử hoặc tối ưu hoá ứng dụng 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
"true"
không đảm bảo rằng sẽ không có ứng dụng nào khác ở chế độ nhiều cửa sổ hiển thị trên màn hình (chẳng hạn như ở tính năng hình trong hình) hoặc trên màn hình khác. Do đó, việc đặt cờ này không có nghĩa là ứng dụng của bạn có quyền truy cập độc quyền vào tài nguyên.Đối với ứng dụng nhắm đến API cấp 24 trở lên, giá trị mặc định là
"true"
.Nếu ứng dụng của bạn nhắm đến API cấp 31 trở lên, thì thuộc tính này sẽ hoạt động theo cách khác nhau trên màn hình nhỏ và lớn:
- Màn hình lớn (sw >= 600 dp): tất cả các ứng dụng đều hỗ trợ chế độ nhiều cửa sổ. Thuộc tính này cho biết liệu ứ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 là
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 < 600 dp): Nếu là
resizeableActivity="true"
và chiều rộng cũng như chiều cao tối thiểu của hoạt động nằm trong phạm vi yêu cầu nhiều cửa sổ, thì ứng dụng sẽ hỗ trợ chế độ nhiều cửa sổ. Nếu làresizeableActivity="false"
, ứ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 của hoạt động là như thế nào.
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 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 tác vụ, thì hệ thống sẽ coi tất cả các hoạt động khác trong tác 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 >= 600 dp): tất cả các ứng dụng đều hỗ trợ chế độ nhiều cửa sổ. Thuộc tính này cho biết liệu ứ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 là
android:restrictedAccountType
- Chỉ định loại tài khoản mà ứng dụng này yêu cầu và cho biết rằng hồ sơ bị hạn chế có thể truy cập vào những 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ó thể 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 và cho biết ứng dụng có thể hoạt động mà không cần tài khoản nào.
Thận trọng: Việc chỉ định thuộc tính này cho phép các hồ sơ bị hạn chế dùng ứng dụng của bạn bằ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, đừng sử dụng thuộc tính này. Thay vào đó, hãy 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 bạn đặt thuộc tính này thành
"true"
vàtargetSdkVersion
được thiết lập thành 17 trở lên, nhiều API RTL khác nhau được kích hoạt và sử dụng bởi hệ thống để ứng dụng của bạn có thể hiển thị bố cục RTL. Nếu bạn đặt thuộc tính này thành"false"
hoặc đặttargetSdkVersion
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. Nghĩa là 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 liệu ứng dụng này có phải chỉ dành cho mục đích kiểm thử hay không. Ví dụ: ứng dụng này có thể để lộ chức năng hoặc dữ liệu bên ngoài, điều này có thể gây ra lỗ hổng bảo mật, nhưng hữu ích cho việc kiểm thử. Loại APK này chỉ cài đặt thông qua
adb
. Bạn không thể xuất bản ứng dụng đó lê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 một 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 phần Kiểu và giao diện. android:uiOptions
- Các lựa chọn khác 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ị Nội dung mô tả "none"
Không có tuỳ chọn bổ sung cho giao diện người dùng. Đây là lựa chọn mặc định. "splitActionBarWhenNarrow"
Thêm một thanh ở cuối màn hình để hiển thị các mục hành động trong thanh ứng dụng (còn gọi là thanh thao tác) 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 di động). 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 lượng không gian hợp lý được cung cấp cho các mục hành động và 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 2 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 phần Thêm thanh ứng dụng.
Thuộc tính này đã được thêm vào 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 API
Socket
tuân thủ cờ này vì không thể xác định liệu 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 và 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ên
ApplicationInfo.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 mọi lưu lượng truy cập qua văn bản thô trên ứng dụng. Để biết thêm thông tin, hãy xem
StrictMode.VmPolicy.Builder.detectCleartextNetwork()
.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ị của
"true"
đã tắt trình biên dịch trong khi thực thi (JIT) Dalvik.Thuộc tính này đã được điều chỉnh trong API cấp 22, trong đó giá trị của
"true"
vô hiệu hoá trình biên dịch trước khi chạy (AOT) ART.
Kể từ AGP 4.2.0, tuỳ chọn DSL
useLegacyPackaging
sẽ thay thế thuộc tính tệp kê khaiextractNativeLibs
. Hãy sử dụnguseLegacyPackaging
trong tệpbuild.gradle
của ứng dụng thay vìextractNativeLibs
trong tệp kê khai để định cấu hình hoạt động 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: 2024-08-22 UTC.
[]
[]
{
"lastModified": "Cập nhật lần gần đây nhất: 2024-08-22 UTC.",
"confidential": False
}