Giới thiệu về phát triển ứng dụng Android. Chỉnh sửa tệp kê khai android
Tệp kê khai AndroidManifest.xml cung cấp các thông tin cơ bản về chương trình cho hệ thống. Mỗi ứng dụng phải có tập tin riêng AndroidManifest.xml. Bạn có thể chỉnh sửa tệp kê khai theo cách thủ công bằng cách thay đổi mã XML hoặc thông qua biên tập trực quan Manifest Editor, cho phép bạn trực quan và chỉnh sửa văn bản tập tin kê khai ứng dụng.
Mục đích tập tin
- khai báo tên gói Java của ứng dụng, đóng vai trò là mã định danh duy nhất;
- mô tả các thành phần ứng dụng—các hoạt động, dịch vụ, người nhận mục đích quảng bá và nhà cung cấp nội dung—cho phép các lớp triển khai từng thành phần được gọi và khai báo ý định của chúng;
- chứa danh sách các quyền cần thiết để truy cập các phần được bảo vệ của API và tương tác với các ứng dụng khác;
- tuyên bố quyền rằng ứng dụng bên thứ bađược yêu cầu tương tác với các thành phần của ứng dụng này;
- thông báo cấp độ thấp nhất Cần có API Android để ứng dụng hoạt động;
- liệt kê các thư viện liên quan;
Cấu trúc kê khai chung
Tệp kê khai đóng gói toàn bộ kiến trúc của ứng dụng Android, nó chức năng và cấu hình. Trong quá trình phát triển ứng dụng, bạn sẽ phải liên tục chỉnh sửa tập tin này, thay đổi cấu trúc của nó và thêm các phần tử và thuộc tính mới.
Phần tử gốc của bảng kê khai là
Sự miêu tả
Yếu tố
Thuộc tính
xmlns:android xác định không gian tên Android. Nó luôn luôn là cùng một gói xác định tên duy nhất của gói ứng dụng mà bạn đã chỉ định khi tạo dự án. Android Marketplace kiểm tra tính duy nhất khi chấp nhận ứng dụng, vì vậy bạn nên sử dụng tên riêng của mình để tránh xung đột với các nhà phát triển khác. Ví dụ: tôi sử dụng tên trang web của mình theo thứ tự ngược lại: ru.alexanderklimov.appname android:versionCode cho biết số phiên bản nội bộ được sử dụng để so sánh các phiên bản chương trình. "Mã phiên bản" phải là số nguyên và Android Market sử dụng giá trị này để xác định xem bạn đã cung cấp phiên bản mới hay chưa bằng cách chuyển trình kích hoạt cập nhật trên thiết bị mà ứng dụng của bạn được cài đặt trên đó. Thường xuyên. bắt đầu từ 1 và tăng lên một nếu bạn phát hành phiên bản mới của ứng dụng. android:versionName chỉ định số phiên bản của người dùng. Bạn có thể sử dụng một chuỗi hoặc tài nguyên chuỗi. Số này được hiển thị cho người dùng.Yếu tố
Android:name tên của quyền android:label tên của quyền được hiển thị cho người dùng android:description mô tả của quyền android:icon biểu tượng quyền android:permissionGroup xác định tư cách thành viên trong nhóm quyền android:protectionLevel cấp độ bảo vệ
Yếu tố
Android:tên
Quyền phổ biến nhất
- INTERNET- Truy cập Internet
- READ_CONTACTS- đọc (nhưng không ghi) dữ liệu từ sổ địa chỉ của người dùng
- VIẾT_CONTACTS— ghi (nhưng không đọc) dữ liệu từ sổ địa chỉ của người dùng
- RECEIVE_SMS- xử lý tin nhắn SMS đến
- ACCESS_COARSE_LOCATION- sử dụng vị trí gần đúng bằng tháp di động hoặc điểm truy cập Wi-Fi
- ACCESS_FINE_LOCATION- xác định vị trí chính xác bằng GPS
Yếu tố
Yếu tố Yếu tố Yếu tố Yếu tố Ứng dụng sẽ không cài đặt trên thiết bị không phù hợp với cấu hình bạn đặt. Tốt nhất, bạn nên phát triển một ứng dụng có thể hoạt động với mọi tổ hợp thiết bị đầu vào. Trong trường hợp này Yếu tố Android.hardware.máy ảnh yêu cầu máy ảnh phần cứng android.hardware.máy ảnh.autofocus yêu cầu máy ảnh tự động lấy nét Bạn có thể ghi đè yêu cầu mặc định bằng cách thêm thuộc tính yêu cầu có ý nghĩa SAI. Ví dụ: nếu chương trình của bạn không yêu cầu máy ảnh hỗ trợ lấy nét tự động thì hãy sử dụng tùy chọn:
Yếu tố Những giá trị khả thi Màn hình nhỏ thường là Màn hình QVGA bình thườngMàn hình HVGA và WQVGA tiêu chuẩnMàn hình lớnMàn hình lớn xlargeMàn hình màn hình rất lớn vượt quá kích thước của máy tính bảngbất kỳMật độ đặt giá trị ĐÚNG VẬY, nếu ứng dụng của bạn có khả năng mở rộng để hiển thị trên bất kỳ độ phân giải màn hình nào. Theo mặc định, mỗi thuộc tính được đặt thành ĐÚNG VẬY. Bạn có thể chỉ định kích thước màn hình nào mà ứng dụng của bạn không hỗ trợ.
Bắt đầu với API 13 (Android 3), thẻ có các thuộc tính mới: Yếu tố Yếu tố Lớp này có bộ lọc cuộc gọi được đăng ký để xác định rằng hành động này đang chạy trong ứng dụng (hành động android:name="android.intent.action.MAIN"). Định nghĩa danh mục (danh mục android:name="android.intent.category.LAUNCHER") chỉ định rằng ứng dụng này được thêm vào thư mục ứng dụng trên thiết bị Android. @ giá trị các tệp tài nguyên trực tiếp chứa các giá trị thực tế. Điều này giúp làm việc dễ dàng hơn với các tài nguyên khác nhau như chuỗi, màu sắc, biểu tượng.
Yếu tố Khi ngôn ngữ, khu vực hoặc cấu hình phần cứng thay đổi, Android sẽ dừng tất cả các ứng dụng rồi khởi động lại chúng, tải lại các giá trị từ tài nguyên. Hành vi như vậy không phải lúc nào cũng phù hợp hoặc mong muốn. Ví dụ: một số thay đổi về cấu hình (hướng màn hình trong không gian, khả năng truy cập bàn phím) có thể xảy ra chỉ vì người dùng xoay thiết bị hoặc trượt bàn phím ra. Bạn có thể tùy chỉnh cách ứng dụng của mình phản ứng với những thay đổi này bằng cách phát hiện chúng và tự mình thực hiện hành động. Để buộc một Hoạt động theo dõi các thay đổi cấu hình khi chương trình chạy, hãy thêm thuộc tính vào nút của nó trong tệp kê khai android:configThay đổi, cho biết sự kiện nào bạn muốn xử lý. Dưới đây là một số giá trị có thể được sử dụng để mô tả các thay đổi về cấu hình: Trong một số trường hợp, nhiều sự kiện sẽ xảy ra cùng lúc. Ví dụ: khi người dùng rút bàn phím ra, hầu hết các thiết bị đều tạo ra sự kiện bàn phímẨn Và định hướng. Bạn có thể chọn nhiều sự kiện mà bạn muốn tự xử lý bằng cách tách chúng bằng ký hiệu |
. Sự hiện diện của thuộc tính android:configChanges sẽ ngăn ứng dụng khởi động lại khi cấu hình được thay đổi. Thay vào đó, phương thức bên trong hoạt động sẽ kích hoạt onConfigurationChanged(). Ghi đè nó để có thể xử lý các thay đổi cấu hình. Sử dụng đối tượng đã qua Cấu hìnhđể có được những giá trị mới. Đừng quên gọi phương thức cùng tên từ lớp cha và tải lại các giá trị đã thay đổi từ tất cả các tài nguyên được sử dụng bên trong hoạt động.
Tại thời điểm phương thức được gọi, tất cả dữ liệu từ các tài nguyên sẽ được cập nhật, vì vậy bạn có thể sử dụng phương thức mà không cần lo lắng. Bất kỳ thay đổi cấu hình nào chưa được đánh dấu rõ ràng để xử lý trong ứng dụng của bạn sẽ khiến hoạt động được khởi động lại, bỏ qua lệnh gọi phương thức onConfigurationChanged(). Mỗi thẻ Yếu tố
Yếu tố
Yếu tố
thêm đặc tả dữ liệu vào bộ lọc ý định. Đặc tả có thể chỉ là một kiểu dữ liệu (thuộc tính mimeType), một URI hoặc một LOẠI dữ liệu cộng với một URI. Ý nghĩa của URI được xác định bởi các thuộc tính riêng biệt cho từng phần của nó, tức là URI được chia thành các phần: android:scheme, android:host, android:port, android:path hoặc android:pathPrefix, android:pathPattern. Yếu tố Yếu tố Yếu tố Yếu tố Yếu tố Phần tử này có nhiều thuộc tính xác định tên, tính khả dụng, quyền, quy trình, v.v. Yếu tố Yếu tố Yếu tố Bài viết mượn từ http://developer.alexanderklimov.ru/ Tệp kê khai AndroidManifest.xml cung cấp thông tin cơ bản về chương trình cho hệ thống. Mỗi ứng dụng phải có tệp AndroidManifest.xml riêng. Bạn có thể chỉnh sửa tệp kê khai theo cách thủ công bằng cách thay đổi mã XML hoặc thông qua Trình soạn thảo tệp kê khai trực quan, cho phép chỉnh sửa trực quan và văn bản của tệp kê khai ứng dụng. Đích tệp khai báo tên gói Java của ứng dụng, đóng vai trò là mã định danh duy nhất; mô tả các thành phần ứng dụng—các hoạt động, dịch vụ, người nhận mục đích quảng bá và nhà cung cấp nội dung—cho phép các lớp triển khai từng thành phần được gọi và khai báo ý định của chúng; chứa danh sách các quyền cần thiết để truy cập các phần được bảo vệ của API và tương tác với các ứng dụng khác; tuyên bố các quyền mà ứng dụng của bên thứ ba phải có để tương tác với các thành phần của ứng dụng này; tuyên bố mức API Android tối thiểu cần thiết để ứng dụng hoạt động; liệt kê các thư viện liên quan; Cấu trúc kê khai chung Tệp kê khai gói gọn toàn bộ kiến trúc, chức năng và cấu hình ứng dụng Android. Trong quá trình phát triển ứng dụng, bạn sẽ phải liên tục chỉnh sửa tệp này, thay đổi cấu trúc của nó và thêm các thành phần và thuộc tính mới. Phần tử gốc của bảng kê khai là Sự miêu tả
Thuộc tính
android:minSdkVersion xác định cấp API tối thiểu cần thiết để ứng dụng chạy. Hệ thống Android sẽ ngăn người dùng cài đặt ứng dụng nếu cấp API của hệ thống thấp hơn giá trị được xác định trong thuộc tính này. Bạn phải luôn khai báo thuộc tính này, ví dụ: android:minSdkVersion=”11″. Để giải trí, bạn có thể đặt giá trị thành 7 rồi 11 và so sánh giao diện của ứng dụng. Ví dụ: phiên bản trẻ hơn sẽ không hiển thị ActionBar. android:maxSDKVersion cho phép bạn xác định phiên bản mới nhất mà chương trình của bạn sẵn sàng hỗ trợ. Ứng dụng của bạn sẽ ẩn trên Google Play đối với các thiết bị có phiên bản mới hơn. Bạn nên cài đặt nó khi bạn hoàn toàn chắc chắn rằng ứng dụng sẽ không hoạt động chính xác trên nền tảng mới. targetSDKVersion cho phép bạn chỉ định nền tảng mà bạn đã phát triển và thử nghiệm ứng dụng. Bằng cách đặt giá trị cho thuộc tính này, bạn đang thông báo cho hệ thống rằng không cần thay đổi nào để hỗ trợ phiên bản cụ thể này.
Thuộc tính
android:name tên lớp. Tên phải bao gồm tên gói đầy đủ, nhưng vì tên gói đã được xác định trong phần tử gốc Thay đổi cấu hình khi chương trình đang chạy
@Override public void onConfigurationChanged(Configuration _newConfig) ( super.onConfigurationChanged(_newConfig); [ ... Cập nhật giao diện người dùng bằng cách sử dụng dữ liệu từ các tài nguyên... ] if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) ( [ ... Reaction sang hướng màn hình đã thay đổi... ] ) if (_newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO) ( [ ... Phản ứng với việc đẩy/rút bàn phím ra... ] ) )
Yếu tố
Thuộc tính
- xmins:android
xác định không gian tên Android. Nó luôn giống nhau
- bưu kiện
xác định tên gói ứng dụng duy nhất mà bạn đã chỉ định khi tạo dự án. Android Marketplace kiểm tra tính duy nhất khi chấp nhận ứng dụng, vì vậy bạn nên sử dụng tên riêng của mình để tránh xung đột với các nhà phát triển khác. Ví dụ: tôi sử dụng tên trang web của mình theo thứ tự ngược lại: ru.alexanderklimov.appname
- android:Mã phiên bản
cho biết số phiên bản nội bộ được sử dụng để so sánh các phiên bản chương trình. "Mã phiên bản" phải là số nguyên và Android Market sử dụng giá trị này để xác định xem bạn đã cung cấp phiên bản mới hay chưa bằng cách chuyển trình kích hoạt cập nhật trên thiết bị mà ứng dụng của bạn được cài đặt trên đó. Thường xuyên. bắt đầu từ 1 và tăng lên một nếu bạn phát hành phiên bản mới của ứng dụng.
- android:tên phiên bản
cho biết số phiên bản người dùng. Bạn có thể sử dụng một chuỗi hoặc tài nguyên chuỗi. Số này được hiển thị cho người dùng. Đọc mẹo Lấy số phiên bản chương trình
Yếu tố
- android:tên
tên quyền
- android:nhãn
tên của quyền được hiển thị cho người dùng
- android:mô tả
mô tả quyền
- android:biểu tượng
biểu tượng quyền
- android:nhóm quyền
xác định thành viên trong một nhóm quyền
- android:cấp độ bảo vệ
mức độ bảo vệ
Yếu tố
- android:tên
Các quyền phổ biến nhất
- INTERNET - Truy cập Internet
- READ_CONTACTS - đọc (nhưng không ghi) dữ liệu từ sổ địa chỉ của người dùng
- WRITE_CONTACTS - ghi (nhưng không đọc) dữ liệu từ sổ địa chỉ của người dùng
- RECEIVE_SMS - xử lý tin nhắn SMS đến
- ACCESS_COARSE_LOCATION - Sử dụng vị trí thô bằng cách sử dụng tháp di động hoặc điểm phát sóng Wi-Fi
- ACCESS_FINE_LOCATION - xác định vị trí chính xác bằng GPS
Yếu tố
Yếu tố Yếu tố Yếu tố Thuộc tính xác định mức API tối thiểu cần thiết để ứng dụng hoạt động. Hệ thống Android sẽ ngăn người dùng cài đặt ứng dụng nếu cấp API của hệ thống thấp hơn giá trị được xác định trong thuộc tính này. Bạn phải luôn khai báo thuộc tính này, ví dụ: android:minSdkVersion="3" cho phép bạn xác định phiên bản mới nhất mà chương trình của bạn sẵn sàng hỗ trợ. Ứng dụng của bạn sẽ ẩn trong Android Market đối với các thiết bị có phiên bản mới hơn. Bạn nên cài đặt nó khi bạn hoàn toàn chắc chắn rằng ứng dụng sẽ không hoạt động chính xác trên nền tảng mới. cho phép bạn chỉ định nền tảng mà bạn đã phát triển và thử nghiệm ứng dụng. Bằng cách đặt giá trị cho thuộc tính này, bạn đang thông báo cho hệ thống rằng không cần thay đổi nào để hỗ trợ phiên bản cụ thể này. Yếu tố Ứng dụng sẽ không cài đặt trên thiết bị không phù hợp với cấu hình bạn đặt. Tốt nhất, bạn nên phát triển một ứng dụng có thể hoạt động với mọi tổ hợp thiết bị đầu vào. Trong trường hợp này Yếu tố Thuộc tính có thể yêu cầu phần cứng máy ảnh Cần có máy ảnh lấy nét tự động Danh sách có thể được nhìn thấy ở đây. Yếu tố Những giá trị khả thi thường là màn hình QVGA Màn hình HVGA và WQVGA tiêu chuẩn màn hình lớn được đặt thành true nếu ứng dụng của bạn có khả năng mở rộng để hiển thị trên bất kỳ độ phân giải màn hình nào. Theo mặc định, mỗi thuộc tính được đặt thành true. Bạn có thể chỉ định kích thước màn hình nào mà ứng dụng của bạn không hỗ trợ.
Yếu tố Yếu tố Lớp này có bộ lọc cuộc gọi được đăng ký để xác định rằng hành động này đang chạy trong ứng dụng (hành động android:name="android.intent.action.MAIN"). Định nghĩa danh mục (danh mục android:name="android.intent.category.LAUNCHER") chỉ định rằng ứng dụng này được thêm vào thư mục ứng dụng trên thiết bị Android. @ giá trị các tệp tài nguyên trực tiếp chứa các giá trị thực tế. Điều này giúp làm việc dễ dàng hơn với các tài nguyên khác nhau như chuỗi, màu sắc, biểu tượng.
Thuộc tính tên lớp. Tên phải bao gồm tên gói đầy đủ, nhưng vì tên gói đã được xác định trong phần tử gốc nhãn văn bản hiển thị cho người dùng Yếu tố Khi ngôn ngữ, khu vực hoặc cấu hình phần cứng thay đổi, Android sẽ dừng tất cả các ứng dụng rồi khởi động lại chúng, tải lại các giá trị từ tài nguyên. Hành vi như vậy không phải lúc nào cũng phù hợp hoặc mong muốn. Ví dụ: một số thay đổi về cấu hình (hướng màn hình trong không gian, khả năng truy cập bàn phím) có thể xảy ra chỉ vì người dùng xoay thiết bị hoặc trượt bàn phím ra. Bạn có thể tùy chỉnh cách ứng dụng của mình phản ứng với những thay đổi này bằng cách phát hiện chúng và tự mình thực hiện hành động. Để buộc một Hoạt động giám sát các thay đổi về cấu hình khi chương trình chạy, hãy thêm thuộc tính android:configChanges vào nút của Hoạt động đó trong tệp kê khai, chỉ định những sự kiện bạn muốn xử lý. Dưới đây là một số giá trị có thể được sử dụng để mô tả các thay đổi về cấu hình: Trong một số trường hợp, nhiều sự kiện sẽ xảy ra cùng lúc. Ví dụ: khi người dùng trượt bàn phím ra, hầu hết các thiết bị đều tạo ra các sự kiện định hướng và ẩn bàn phím. Bạn có thể chọn nhiều sự kiện mà bạn muốn tự xử lý bằng cách phân tách chúng bằng ký hiệu |. Sự hiện diện của thuộc tính android:configChanges sẽ ngăn ứng dụng khởi động lại khi cấu hình được thay đổi. Thay vào đó, phương thức onConfigurationChanged() được kích hoạt bên trong Hoạt động. Ghi đè nó để có thể xử lý các thay đổi cấu hình. Sử dụng đối tượng Cấu hình đã truyền để nhận các giá trị mới. Đừng quên gọi phương thức cùng tên từ lớp cha và tải lại các giá trị đã thay đổi từ tất cả các tài nguyên được sử dụng bên trong Hoạt động. @Override public void onConfigurationChanged(Configuration _newConfig) ( super.onConfigurationChanged(_newConfig); [ ... Cập nhật giao diện người dùng bằng cách sử dụng dữ liệu từ các tài nguyên... ] if (_newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) ( [ ... Reaction sang hướng màn hình đã thay đổi... ] ) if (_newConfig.keyboardHidden == Configuration.KEYBOARDHIDDEN_NO) ( [ ... Phản ứng với việc đẩy/rút bàn phím ra... ] ) ) Bất kỳ thay đổi cấu hình nào chưa được đánh dấu rõ ràng để xử lý trong ứng dụng của bạn sẽ khiến Hoạt động được khởi động lại, bỏ qua lệnh gọi phương thức onConfigurationChanged. Mỗi thẻ Yếu tố
Yếu tố
Yếu tố thêm đặc tả dữ liệu vào bộ lọc ý định. Đặc tả có thể chỉ là một kiểu dữ liệu (thuộc tính mimeType), một URI hoặc một LOẠI dữ liệu cộng với một URI. Ý nghĩa của URI được xác định bởi các thuộc tính riêng biệt cho từng phần của nó, tức là URI được chia thành các phần: android:scheme, android:host, android:port, android:path hoặc android:pathPrefix, android:pathPattern. Yếu tố Yếu tố Yếu tố Yếu tố Yếu tố Phần tử này có nhiều thuộc tính xác định tên, tính khả dụng, quyền, quy trình, v.v. Yếu tố Yếu tố Yếu tố AndroidManifest.xml – cung cấp thông tin chi tiết về ứng dụng. Trong mọi ứng dụng Android, bạn sẽ thấy tệp này vì nó được yêu cầu để tạo một ứng dụng trên hệ điều hành Android. Bạn có thể định cấu hình các tính năng sau trong AndroidManifest.xml: 1. Chỉ định tên gói Java của ứng dụng, gói này đóng vai trò là mã định danh duy nhất; 2. Mô tả các thành phần của ứng dụng, dịch vụ; 3. Chỉ định danh sách các quyền cần thiết để truy cập các phần được bảo vệ của API và tương tác với các ứng dụng khác; 4. Cho phép truy cập vào các tài nguyên mà ứng dụng của bên thứ ba phải có để tương tác với các thành phần của ứng dụng này; 5. Chỉ định cấp độ API Android tối thiểu và tối đa cần thiết để ứng dụng hoạt động; Khi chuyển sang viết một dự án phức tạp hơn, bạn sẽ nhận thấy rằng bạn thường cần tham khảo tệp này để định cấu hình một số thành phần bạn cần. Nhưng để định cấu hình thứ gì đó ở đó, tôi nghĩ sẽ không phải là một ý tưởng tồi nếu bạn biết những gì cần thiết và tại sao, đây chính xác là những gì sẽ được thảo luận bên dưới. Dưới đây là tất cả các tính năng chính của AndroidManifest.xml, chúng được trình bày dưới dạng thẻ xml.
Tệp kê khai trông như thế này, trong đó mỗi thẻ có thể lưu trữ một số loại cấu hình. Và bây giờ, từng cái một, cái gì và tại sao. Đây là thẻ quan trọng nhất trong đó toàn bộ cấu hình dự án được lồng vào nhau. Theo mặc định, nó được tạo cùng với tệp AndroidManifest và ban đầu có một bộ tham số ban đầu:
Những thông số này có ý nghĩa gì? xmins:android– xác định không gian tên Android; bưu kiện– Xác định tên duy nhất của gói ứng dụng mà bạn đã chỉ định khi tạo dự án. Tại sao bạn cần chỉ định gói? Nếu bạn muốn tải ứng dụng của mình lên Chợ ứng dụng Google Play, sau đó nó sẽ kiểm tra tính duy nhất khi chấp nhận ứng dụng, vì vậy bạn nên sử dụng tên của mình để tránh xung đột với các nhà phát triển khác. android:Mã phiên bản– về cơ bản đây là phiên bản ứng dụng của bạn. Khi phát hành phiên bản mới, bạn chỉ ra trong trường này, nó phải là số nguyên. Ở trên chúng tôi nói về tính độc đáo của gói, vì vậy nếu trước đây bạn đã tải xuống Google Playứng dụng của bạn, thì khi bạn quyết định tải xuống phiên bản cập nhật của ứng dụng, bạn cần phải tuân thủ một số quy tắc. Tên gói phải khớp với tên đã được Google Play tải xuống và cho biết phiên bản android:versionCode cao hơn. Nhưng điều này với điều kiện là bạn đang phát hành phiên bản mới của ứng dụng; nếu bạn muốn thêm một phiên bản đã sửa một chút, hãy đọc phần bên dưới. Bằng cách thay đổi tham số này và tải ứng dụng lên Google Play, tất cả người dùng ứng dụng của bạn sẽ được đề nghị cập nhật lên phiên bản mới của ứng dụng. android:tên phiên bản – cho biết số phiên bản người dùng. Nếu bạn tìm thấy một số sai sót trong ứng dụng của mình và sửa chúng, thì trong trường hợp này, bạn có thể chỉ định phiên bản mới cho trường này, điều này sẽ cho Google Play biết rằng đây không phải là phiên bản mới của ứng dụng mà là phiên bản cải tiến. Bạn có thể sử dụng một chuỗi hoặc tài nguyên chuỗi để đặt tên cho một phiên bản. Bằng cách thay đổi tham số này và tải ứng dụng lên Google Play, tất cả người dùng ứng dụng của bạn sẽ được đề nghị cập nhật lên phiên bản đã sửa đổi của ứng dụng. Nhãn Quyền được cấp trong quá trình cài đặt ứng dụng chứ không phải khi ứng dụng đang chạy. android:tên– cho phép bạn cấp quyền sử dụng tài nguyên hệ thống. Ví dụ: android:name=' android.permission. MÁY ẢNH' Quyền phổ biến nhất –
INTERNET – truy cập Internet; –
READ_CONTACTS – đọc dữ liệu từ sổ địa chỉ của người dùng; – WRITE_CONTACTS – ghi dữ liệu từ sổ địa chỉ của người dùng; – RECEIVE_SMS – xử lý tin nhắn SMS đến; – ACCESS_COARSE_LOCATION – sử dụng xác định vị trí gần đúng bằng cách sử dụng tháp di động hoặc điểm truy cập Wi-Fi; – ACCESS_FINE_LOCATION – xác định vị trí chính xác bằng GPS. android:tên tên quyền android:nhãn - tên của quyền được hiển thị cho người dùng android:mô tả – mô tả quyền android:biểu tượng biểu tượng quyền android:permissionGroup – xác định thành viên trong một nhóm quyền android: mức độ bảo vệ – mức độ bảo vệ Phần tử này không tự khai báo quyền mà chỉ khai báo một không gian tên để có thể đặt thêm các quyền vào đó. Phần tử này không khai báo quyền một cách trực tiếp mà chỉ khai báo một danh mục mà các quyền có thể được đặt vào đó. Một quyền có thể được đặt trong một nhóm bằng cách gán tên nhóm trong thuộc tính nhóm quyền yếu tố Thường được sử dụng khi gỡ lỗi và kiểm tra một ứng dụng và bị xóa khỏi phiên bản phát hành của ứng dụng. Cấp độ API do ứng dụng khai báo được so sánh với cấp độ API của hệ thống thiết bị di động nơi ứng dụng được cài đặt. Thẻ này có các thuộc tính sau: android:minSdkVersion – xác định mức API tối thiểu cần thiết để ứng dụng hoạt động. Hệ thống Android sẽ ngăn người dùng cài đặt ứng dụng nếu cấp API của hệ thống thấp hơn giá trị được xác định trong thuộc tính này. Bạn phải luôn khai báo thuộc tính này, ví dụ: android:minSdkPhiên bản=”17” android:maxSDKVersion – cho phép bạn xác định phiên bản mới nhất mà ứng dụng của bạn sẵn sàng hỗ trợ. Ứng dụng của bạn sẽ ẩn trên Google Play đối với các thiết bị có phiên bản mới hơn. targetSDKVersion – cho phép bạn chỉ định nền tảng mà bạn đã phát triển và thử nghiệm ứng dụng. Bằng cách đặt giá trị cho thuộc tính này, bạn đang thông báo cho hệ thống rằng không cần thay đổi nào để hỗ trợ phiên bản cụ thể này. Ví dụ: một ứng dụng yêu cầu camera trước hoặc cổng USB để hoạt động. Thông số kỹ thuật được sử dụng để tránh cài đặt ứng dụng trên các thiết bị không hỗ trợ cấu hình được yêu cầu. Nếu ứng dụng của bạn có thể hoạt động với các cấu hình thiết bị khác nhau, bạn cần đưa các thành phần cụ thể vào tệp kê khai – reqHardKeyboard- Giá trị sử dụng ĐÚNG VẬY
, nếu ứng dụng yêu cầu bàn phím phần cứng; – reqKeyboardType– cho phép bạn đặt loại bàn phím: không có phím, qwerty, phím mười hai, không xác định; – reqNavigation– chỉ định một trong các giá trị: nonav, dpad, bi xoay, bánh xe hoặc không xác định, nếu cần có thiết bị dẫn đường; Ứng dụng sẽ không cài đặt trên thiết bị không phù hợp với cấu hình bạn đặt. Tốt nhất, bạn nên phát triển một ứng dụng có thể hoạt động với mọi tổ hợp thiết bị đầu vào. Trong trường hợp này Bằng cách này, ứng dụng sẽ không được cài đặt trên các thiết bị không có chức năng cần thiết. Ví dụ: một ứng dụng có thể phát hiện ra rằng ứng dụng đó yêu cầu máy ảnh mặt trước có tính năng tự động lấy nét. Nếu thiết bị không tích hợp camera trước tự động lấy nét thì ứng dụng sẽ không được cài đặt. android.hardware.máy ảnh.front- yêu cầu phần cứng camera android.hardware.máy ảnh.autofocus– Yêu cầu máy ảnh có khả năng lấy nét tự động Tắt. Bạn có thể xem tất cả các thông số trong tài liệu Android, đây là liên kết. Bạn có thể ghi đè yêu cầu mặc định bằng cách thêm thuộc tính yêu cầu có ý nghĩa SAI. Ví dụ: nếu chương trình của bạn không cần máy ảnh hỗ trợ lấy nét tự động:
Thẻ này cho phép bạn chỉ định kích thước của màn hình mà ứng dụng được tạo. Hệ thống sẽ chia tỷ lệ ứng dụng của bạn dựa trên bố cục của bạn trên các thiết bị hỗ trợ độ phân giải màn hình mà bạn chỉ định. Đối với các trường hợp khác, hệ thống sẽ kéo giãn bố cục nhiều nhất có thể. Giá trị: màn hình nhỏ - Màn hình QVGA màn hình bình thường – màn hình tiêu chuẩn HVGA và WQVGA màn hình lớn – màn hình lớn xlargeScreen– màn hình rất lớn vượt quá kích thước của máy tính bảng bất kỳMật độ nào– thiết lập giá trị ĐÚNG VẬY, nếu ứng dụng của bạn có khả năng mở rộng để hiển thị trên bất kỳ độ phân giải màn hình nào. Theo mặc định, mỗi thuộc tính được đặt thành ĐÚNG VẬY. Bạn có thể chỉ định kích thước màn hình nào mà ứng dụng của bạn không hỗ trợ. Kể từ API 13 – Android 3, thẻ có thuộc tính mới: yêu cầu Chiều rộng nhỏ nhấtDp– cho biết chiều rộng màn hình được hỗ trợ tối thiểu tính bằng pixel độc lập với thiết bị. Nó có thể được sử dụng để lọc các thiết bị khi đặt ứng dụng vào Google Play tương thíchWidthLimitDp– đặt giới hạn tỷ lệ trên cho ứng dụng của bạn. Nếu màn hình thiết bị mở rộng ra ngoài ranh giới được chỉ định, hệ thống sẽ kích hoạt chế độ tương thích. chiều rộng lớn nhấtGiới hạnDp– chỉ định giới hạn trên tuyệt đối mà ứng dụng của bạn chắc chắn không thể mở rộng. Trong trường hợp này, ứng dụng chạy ở chế độ tương thích, không thể tắt chế độ này. Ví dụ sử dụng:
Nên tránh tình huống tương tự và phát triển bố cục cho bất kỳ màn hình nào. Mỗi phần tử Phần tử này mang tính thông tin và có thể được các dịch vụ bên ngoài (chẳng hạn như Google Play) sử dụng để hiểu rõ hơn về khả năng tương thích của ứng dụng với các cấu hình màn hình cụ thể và bật tính năng lọc cho người dùng. Công nghệ này có hai thuộc tính: android:kích thước màn hình– cho biết kích thước màn hình. Giá trị: nhỏ nhỏ; bình thường - trung bình; lớn – lớn; xlarge – rất lớn; android:màn hình– chỉ định dpi Giá trị: ldpi– ~120dpi mdpi–~160dpi hdpi – ~240dpi xhdpi – ~320dpi Ví dụ sử dụng:
Ví dụ sử dụng:
Giá trị: GL_OES_nén_ETC1_RGB8_kết cấu– được chỉ định trong OpenGL ES 2.0 và có sẵn trên tất cả các thiết bị Android hỗ trợ OpenGL ES 2.0. GL_OES_compression_paletted_texture – bảng nén kết cấu chung. GL_AMD_compression_3DC_texture– Nén kết cấu ATI 3DC. Tất cả các giá trị có thể được xem tại liên kết này. Chứa các phần tử con khai báo từng thành phần tạo nên ứng dụng. Chỉ có thể có một phần tử trong bảng kê khai Dưới đây là mô tả về các thẻ được lồng trong thẻ Nếu một ứng dụng chứa nhiều hoạt động, chúng phải được khai báo trong tệp kê khai, tạo thành phần riêng cho từng hoạt động Ví dụ sử dụng:
android:tên- tên lớp. Tên phải bao gồm tên gói đầy đủ, nhưng nếu tên gói đã được bao gồm trong android:nhãn - nhãn văn bản được hiển thị cho người dùng. Mỗi thẻ Yếu tố
– thêm đặc tả dữ liệu vào bộ lọc ý định. Đặc tả có thể chỉ là một kiểu dữ liệu (thuộc tính mimeType), một URI hoặc một kiểu dữ liệu cộng với một URI. Giá trị của URI được xác định bởi các thuộc tính riêng biệt cho từng phần của nó, tức là URI được chia thành các phần: android:path hoặc android:pathPrefix; android:pathPattern. Một phần tử cấu thành có thể chứa bất kỳ số phần tử nào Hoạt động đích phải ở trong cùng một ứng dụng với bí danh và phải được khai báo trước bí danh hoạt động trong tệp kê khai. Bí danh thể hiện hoạt động mục tiêu như một thực thể độc lập. Bí danh có thể có bộ bộ lọc ý định riêng để xác định ý định nào có thể kích hoạt hoạt động mục tiêu và cách hệ thống sẽ xử lý hoạt động đó. Ví dụ: bộ lọc ý định trên bí danh hoạt động có thể xác định cờ: android:name='android.intent.action.MAIN' android:name='android.intent.category.LAUNCHER' khiến hoạt động mục tiêu tải khi ứng dụng khởi động ngay cả khi các bộ lọc ý định trên hoạt động mục tiêu không được đặt các cờ này. Bộ thu ý định phát sóng cho phép ứng dụng nhận các ý định được hệ thống hoặc ứng dụng khác phát đi, ngay cả khi các thành phần ứng dụng khác không hoạt động. Yếu tố Yếu tố
Yếu tố Nó xác định ai có thể được cấp quyền đối với các tập hợp con dữ liệu của nhà cung cấp nội dung. Cấp quyền là một cách cho phép khách hàng không có quyền truy cập vào toàn bộ dữ liệu có thể truy cập vào một tập hợp con dữ liệu do nhà cung cấp nội dung cung cấp. Thuộc tính nếu GranturiQuyền vấn đề của nhà cung cấp nội dung ĐÚNG VẬY
, thì quyền sẽ được cấp cho mọi dữ liệu do nhà cung cấp nội dung cung cấp. Tuy nhiên, nếu thuộc tính được đưa vào SAI
, quyền chỉ có thể được cấp cho các tập hợp con dữ liệu được xác định bởi phần tử đó. Nhà cung cấp nội dung có thể chứa bất kỳ số lượng phần tử nào Phần tử này có thể được xác định nhiều lần để cung cấp nhiều đường dẫn. Phần tử này hướng dẫn hệ thống đưa mã thư viện vào trình nạp lớp cho gói ứng dụng. Theo mặc định, mỗi dự án được đóng gói cùng với các thư viện Android, bao gồm các gói cốt lõi để xây dựng ứng dụng. Tuy nhiên, một số gói nằm trong các thư viện riêng biệt không được liên kết tự động với ứng dụng. Nếu ứng dụng sử dụng các gói từ các thư viện này hoặc các gói khác từ nhà phát triển bên thứ ba thì cần phải tạo liên kết rõ ràng với các thư viện này và tệp kê khai phải chứa một phần tử riêng biệt Các tài nguyên sau đây đã được sử dụng để viết bài viết này: Trong thư mục gốc của mỗi ứng dụng phải có một tệp có tên AndroidManifest.xml (chính xác là tên của nó). Tệp kê khai chứa thông tin quan trọng về ứng dụng được hệ thống Android yêu cầu. Chỉ sau khi nhận được thông tin này, hệ thống mới có thể thực thi bất kỳ mã ứng dụng nào. Trong số những thứ khác, tệp kê khai thực hiện những việc sau: Sơ đồ sau đây cho phép bạn làm quen với cấu trúc chung của tệp kê khai và tất cả các thành phần có thể chứa trong đó. Mỗi phần tử cùng với tất cả các thuộc tính của nó được mô tả đầy đủ trong một tệp riêng biệt. Để xem thông tin chi tiết về bất kỳ phần tử nào, hãy nhấp vào tên phần tử trên sơ đồ, trong danh sách các phần tử theo thứ tự bảng chữ cái xuất hiện sau sơ đồ hoặc bất kỳ nơi nào khác mà phần tử đó được đề cập.
. . .
. . .
. . .
Sau đây là danh sách, theo thứ tự bảng chữ cái, của tất cả các thành phần có thể có trong tệp kê khai. Chỉ những phần tử này mới có thể ở đó và không thể thêm phần tử hoặc thuộc tính nào khác. Một số quy ước và quy tắc áp dụng cho tất cả các thành phần và thuộc tính từ tệp kê khai: Nếu một phần tử có bất kỳ nội dung nào thì đó là các phần tử khác. Tất cả các giá trị được chỉ định bằng cách sử dụng các thuộc tính chứ không phải dưới dạng dữ liệu ký tự trong phần tử. Các phần tử ở cùng cấp độ thường không được sắp xếp theo thứ tự. Ví dụ: các phần tử và có thể được chỉ định theo bất kỳ thứ tự nào. (Phần tử này là một ngoại lệ đối với quy tắc này. Nó phải tuân theo phần tử mà nó là bí danh.) Ngoại trừ một số thuộc tính phần tử gốc, tất cả tên thuộc tính phải bắt đầu bằng tiền tố android:—ví dụ: android:alwaysRetainTaskState . Vì tiền tố này mang tính phổ quát nên nó thường bị bỏ qua trong tài liệu khi chỉ định thuộc tính theo tên. Nếu bạn định nghĩa một lớp con, như bạn hầu như luôn làm với các lớp thành phần ( , , và ), bạn thực hiện việc này bằng cách sử dụng thuộc tính name. Tên phải bao gồm tên gói đầy đủ. Ví dụ: một lớp con có thể được khai báo như sau:
Tuy nhiên, nó có thể được rút ngắn. Nếu bạn chỉ định dấu chấm làm ký tự đầu tiên trên một dòng, dòng đó sẽ được thêm vào tên gói ứng dụng (được chỉ định bởi thuộc tính phần tử). Nhiệm vụ sau đây tương tự như nhiệm vụ trên:
Khi thành phần Android chạy, nó sẽ tạo một phiên bản của lớp con được chỉ định theo tên. Nếu lớp con không được chỉ định, hệ thống sẽ tạo một thể hiện của lớp cơ sở. @[túi nhựa:]kiểu:Tên Ở đâu tên gói hàng có thể được bỏ qua nếu tài nguyên nằm trong cùng gói với ứng dụng, kiểu - là loại tài nguyên, chẳng hạn như "chuỗi" hoặc "có thể vẽ" và Tên -đây là tên xác định tài nguyên. Ví dụ:
Các giá trị chủ đề được thể hiện theo cách tương tự, chỉ khác là chúng bắt đầu bằng dấu "?" thay vì "@": ?[túi nhựa:]kiểu:Tên Các phần sau đây mô tả cách một số tính năng của Android xuất hiện trong tệp kê khai. Các thành phần cốt lõi của ứng dụng (hoạt động, dịch vụ và bộ thu phát sóng) được kích hoạt Đối tượng ý định. Ý định là một tập hợp thông tin (một đối tượng) mô tả một hành động bắt buộc—bao gồm dữ liệu mà hành động đó sẽ được thực hiện, danh mục các thành phần sẽ thực hiện hành động đó và các hướng dẫn liên quan khác. Hệ thống Android tìm một thành phần sẽ phản hồi với một đối tượng Intent, khởi chạy một phiên bản mới của thành phần đó nếu cần và chuyển cho nó một đối tượng Intent. Các thành phần khai báo khả năng của chúng—các loại Ý định mà chúng có thể phản hồi—bằng cách sử dụng Bộ lọc ý định. Vì Android phải biết một thành phần có thể xử lý Ý định nào trước khi chạy nó nên các bộ lọc Ý định được chỉ định là . Một thành phần có thể có số lượng bộ lọc bất kỳ, mỗi bộ lọc mô tả một tính năng khác nhau của thành phần đó. Một Ý định chỉ định rõ ràng thành phần mục tiêu theo tên sẽ kích hoạt thành phần đó và bộ lọc sẽ không được tính đến. Nhưng một Intent không chỉ định tên Bean đích chỉ có thể kích hoạt Bean nếu nó có thể vượt qua một trong các bộ lọc của Bean. Để biết thông tin về cách xác thực các đối tượng Intent dựa trên các bộ lọc Intent, hãy xem tài liệu riêng. Một số phần tử có thuộc tính biểu tượng và nhãn cho một biểu tượng nhỏ và nhãn văn bản có thể hiển thị trên màn hình. Một số trong số chúng còn có thuộc tính mô tả cho văn bản mô tả dài hơn cũng có thể được hiển thị trên màn hình. Ví dụ: một phần tử có cả ba thuộc tính này, để khi người dùng được hỏi có cấp quyền cho ứng dụng đã yêu cầu hay không, biểu tượng thể hiện quyền, tên của quyền và mô tả về quyền đó. đòi hỏi có thể được hiển thị trên màn hình. Trong cả hai trường hợp, biểu tượng và nhãn được chỉ định trên phần tử vùng chứa sẽ trở thành cài đặt nhãn và biểu tượng mặc định cho tất cả các phần tử con được lồng trong vùng chứa đó. Do đó, biểu tượng và nhãn được chỉ định trong phần tử là biểu tượng và nhãn mặc định được sử dụng cho từng thành phần ứng dụng. Tương tự, biểu tượng và nhãn được chỉ định cho một thành phần—chẳng hạn như thành phần—là cài đặt mặc định cho từng thành phần thành phần. Nếu một phần tử có nhãn nhưng hoạt động và bộ lọc Ý định của nó không có nhãn thì nhãn của ứng dụng sẽ được coi là nhãn cho cả hoạt động và bộ lọc Ý định của nó. Biểu tượng và nhãn được chỉ định cho bộ lọc Ý định được sử dụng để xác định thành phần khi nó được hiển thị cho người dùng, để biểu thị chức năng mà bộ lọc quảng cáo. Ví dụ: một bộ lọc có tham số "android.intent.action.MAIN" và "android.intent.category.LAUNCHER" cho biết rằng thao tác này khởi tạo ứng dụng—nghĩa là, nó chỉ định nó là một thao tác sẽ được hiển thị trong trình khởi chạy ứng dụng. Điều này có nghĩa là biểu tượng và nhãn được chỉ định trong bộ lọc sẽ được hiển thị trong trình khởi chạy. Sự cho phép là thể hiện sự hạn chế về quyền truy cập vào một phần mã hoặc dữ liệu có sẵn trên thiết bị. Hạn chế này được áp dụng để bảo vệ dữ liệu và mã nhạy cảm, việc sử dụng không đúng cách có thể ảnh hưởng xấu đến hoạt động của ứng dụng. Mỗi độ phân giải được xác định bằng một nhãn duy nhất. Thông thường, nhãn chỉ ra một hành động đang bị hạn chế. Ví dụ: đây là một số quyền được xác định bởi hệ thống Android: android.permission.CALL_EMERGENCY_NUMBERS Một chức năng có thể được bảo vệ bởi nhiều nhất một quyền. Nếu một ứng dụng yêu cầu quyền truy cập vào một chức năng được bảo vệ bởi một quyền thì nó phải khai báo rằng nó cần quyền đó bằng cách sử dụng một phần tử trong tệp kê khai. Sau đó, khi ứng dụng được cài đặt trên thiết bị, trình cài đặt sẽ xác định xem có cấp quyền được yêu cầu hay không bằng cách kiểm tra thẩm quyền của người ký chứng chỉ ứng dụng và trong một số trường hợp, hỏi người dùng về quyền đó. Nếu được cấp quyền, ứng dụng sẽ có thể sử dụng các tính năng được bảo vệ. Nếu không, nỗ lực truy cập các chức năng này của anh ta sẽ không thành công và người dùng sẽ không nhận được bất kỳ thông báo nào về việc này. Một ứng dụng cũng có thể bảo vệ các thành phần của chính nó (hoạt động, dịch vụ, bộ thu phát sóng và nhà cung cấp nội dung) bằng các quyền. Nó có thể sử dụng bất kỳ quyền nào được xác định bởi đối tượng Android (được tìm thấy trong ) hoặc được các ứng dụng khác khai báo. Hoặc nó có thể tự xác định các quyền. Quyền mới được khai báo bằng phần tử. Ví dụ: một hoạt động có thể được bảo vệ như sau:
Lưu ý rằng trong ví dụ này, quyền DEBIT_ACCT không chỉ được khai báo bằng phần tử mà việc sử dụng nó còn được yêu cầu bằng phần tử đó. Để các thành phần ứng dụng khác có thể chạy một hoạt động được bảo vệ, việc sử dụng nó phải được yêu cầu, ngay cả khi chính ứng dụng đó áp đặt biện pháp bảo vệ đó. Trong cùng một ví dụ: nếu thuộc tính quyền được đặt thành quyền được khai báo ở nơi khác (ví dụ: android.permission.CALL_EMERGENCY_NUMBERS), thì không cần phải khai báo lại bằng cách sử dụng . Tuy nhiên, bạn vẫn cần yêu cầu sử dụng nó bằng . Phần tử khai báo một không gian tên cho một nhóm quyền sẽ được xác định trong mã. Và phần tử xác định nhãn cho một tập hợp quyền (cả cho các quyền được khai báo trong tệp kê khai bằng cách sử dụng các phần tử và cho các quyền được khai báo ở nơi khác). Điều này chỉ ảnh hưởng đến cách nhóm các quyền khi hiển thị cho người dùng. Phần tử không cho biết quyền nào áp dụng cho nhóm. Anh ấy chỉ đơn giản đặt tên cho nhóm. Để bao gồm một quyền trong một nhóm, thuộc tính phần tử của nó phải được đặt thành tên nhóm. Mỗi ứng dụng được đóng gói cùng với thư viện Android mặc định, thư viện này cung cấp các gói cơ sở để xây dựng ứng dụng (với các lớp tiêu chuẩn như Hoạt động, Dịch vụ, Ý định, Chế độ xem, Nút, Ứng dụng, ContentProvider, v.v.). Tuy nhiên, một số gói có trong thư viện riêng của chúng. Nếu ứng dụng của bạn sử dụng mã từ một trong các gói này thì ứng dụng đó phải yêu cầu rõ ràng để được liên kết với gói đó. Tệp kê khai phải chứa một phần tử riêng biệt để chỉ định tên của từng thư viện. (Tên thư viện có thể được tìm thấy trong tài liệu gói.) Cập nhật lần cuối: 11/02/2017 Mỗi ứng dụng chứa một tệp kê khai, AndroidManifest.xml. Tệp này xác định thông tin quan trọng về ứng dụng - tên, phiên bản, biểu tượng, quyền mà ứng dụng sử dụng, đăng ký tất cả các lớp hoạt động, dịch vụ đã sử dụng, v.v. Tệp kê khai có thể trông như thế này:
Phần tử cấp gốc là nút kê khai. Trong trường hợp này, chỉ gói ứng dụng được xác định - package="com.example.eugene.viewsapplication" Hầu hết các cài đặt cấp ứng dụng đều được xác định bởi thành phần ứng dụng. Ví dụ: thuộc tính android:icon="@mipmap/ic_launcher" chỉ định biểu tượng ứng dụng, nằm trong thư mục res/mipmap-xxxx Cũng tại đây, bạn đặt tên của ứng dụng, tên này sẽ được hiển thị trên thiết bị di động trong danh sách ứng dụng và trong tiêu đề: android:label="@string/app_name" . Trong trường hợp này, nó được lưu trữ trong tài nguyên chuỗi. Các phần tử hoạt động lồng nhau xác định tất cả các hoạt động được sử dụng trong ứng dụng. Trong trường hợp này, bạn có thể thấy ứng dụng chỉ có một hoạt động - MainActivity. Phần tử bộ lọc ý định trong MainActivity chỉ định cách sử dụng hoạt động. Cụ thể, bằng cách sử dụng nút hành động android:name="android.intent.action.MAIN" , hoạt động này sẽ là điểm truy cập vào ứng dụng và không được nhận bất kỳ dữ liệu nào từ bên ngoài. Phần tử danh mục android:name="android.intent.category.LAUNCHER" chỉ định rằng MainActivity sẽ đại diện cho màn hình khởi chạy được hiển thị khi ứng dụng được khởi chạy. Bằng cách sử dụng các thuộc tính của phần tử bảng kê khai, bạn có thể xác định phiên bản của ứng dụng và mã của nó:
Nếu muốn, chúng ta cũng có thể xác định phiên bản trong tài nguyên và tham chiếu tài nguyên tại đây. Để kiểm soát phiên bản sdk android, một phần tử được xác định trong tệp kê khai minSdkVersion: Phiên bản SDK được hỗ trợ tối thiểu targetSdkVersion: phiên bản tối ưu maxSdkVersion: phiên bản tối đa Phiên bản được xác định bởi số API, ví dụ Jelly Beans 4.1 là phiên bản 16:
Đôi khi một ứng dụng yêu cầu quyền truy cập vào một số tài nguyên nhất định, chẳng hạn như danh sách liên hệ, máy ảnh, v.v. Để ứng dụng hoạt động với cùng một danh sách liên hệ, các quyền thích hợp phải được đặt trong tệp kê khai. Để đặt quyền, hãy sử dụng phần tử
Thuộc tính android:name đặt tên của quyền: trong trường hợp này là đọc danh sách liên hệ và sử dụng máy ảnh. Theo tùy chọn, bạn có thể đặt phiên bản sdk tối đa bằng cách sử dụng thuộc tính android:maxSdkVersion, thuộc tính này lấy số API. Thế giới thiết bị Android rất phân mảnh, từ các thiết bị màn hình nhỏ đến TV màn hình rộng lớn. Và đôi khi bạn cần hạn chế sử dụng một ứng dụng ở độ phân giải màn hình nhất định. Để làm điều này, tệp kê khai xác định phần tử
Phần tử này có bốn thuộc tính: android:largeScreens - màn hình có đường chéo từ 4,5 đến 10" android:normalScreens - màn hình có đường chéo từ 3 đến 4,5" android:smallScreens - màn hình có đường chéo nhỏ hơn 3" android:xlargeScreens - màn hình có đường chéo lớn hơn 10" Nếu thuộc tính này đúng thì ứng dụng sẽ được hỗ trợ bởi kích thước màn hình phù hợp Tùy thuộc vào vị trí của tiện ích, ứng dụng có thể ở hướng ngang hoặc hướng dọc. Điều này không phải lúc nào cũng thuận tiện. Chúng tôi có thể làm cho ứng dụng chỉ sử dụng một hướng, bất kể góc quay của tiện ích. Để thực hiện việc này, bạn cần đặt thuộc tính android:screenOrientation trong tệp kê khai của hoạt động được yêu cầu. Ví dụ: hãy tắt hướng ngang:
Giá trị android:screenOrientation="portrait" chỉ ra rằng hoạt động này sẽ chỉ ở hướng dọc. Nếu bạn chỉ cần đặt hướng ngang thì bạn cần sử dụng giá trị android:screenOrientation="landscape"
Mục đích
Cấu trúc 'AndroidManifest.xml'
Nhãn
Nhãn
hoặc
android:name='
android.permission. READ_CONTACTS'
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Nhãn
Cấu trúc tệp kê khai
Quy ước thành phần tệp
Hiển thị các chức năng trong một tập tin
Bộ lọc đối tượng ý định
Biểu tượng và nhãn
Quyền
android.permission.READ_OWNER_DATA
android.permission.SET_WALLPAPER
android.permission.DEVICE_POWERThư viện
Xác định phiên bản
Cài đặt phiên bản SDK
Đặt quyền
Hỗ trợ cho các độ phân giải khác nhau
Cấm thay đổi hướng