Bản kê khai Ứng dụng - Mọi ứng dụng đều phải có một tệp AndroidManifest.xml trong thư mục gốc của mình. AndroidManifest.xml để trình bày những thông tin thiết yếu về ứng dụng của bạn với hệ thống Android.

AndroidMainifest.xml trong Android

2020-10-11 3933 lượt xem

AndroidManifest là gì?

Là file để bản kê khai trình bày những thông tin thiết yếu về ứng dụng của bạn với hệ thống Android, thông tin mà hệ thống phải có trước khi có thể chạy bất kỳ mã nào của ứng dụng.Hay nói cách khác đây là file dùng để config  những thuộc tính cho ứng dụng của bạn mà khi ứng dụng khởi chạy hệ điều hành có thể hiểu được và xử lí.

AndroidManifest để làm gì?

  • Nó đặt tên gói Java cho ứng dụng. Tên gói đóng vai trò như một mã nhận diện duy nhất cho ứng dụng.
  • Nó mô tả các thành phần của ứng dụng — hoạt động, dịch vụ, hàm nhận quảng bá, và trình cung cấp nội dung mà ứng dụng được soạn bởi. Nó đặt tên các lớp triển khai từng thành phần và công bố các khả năng của chúng (ví dụ, những tin nhắn Intent mà chúng có thể xử lý). Những khai báo này cho phép hệ thống Android biết các thành phần là gì và chúng có thể được khởi chạy trong những điều kiện nào.
  • Nó xác định những tiến trình nào sẽ lưu trữ các thành phần ứng dụng.
  • Nó khai báo các quyền mà ứng dụng phải có để 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.
  • Nó cũng khai báo các quyền mà ứng dụng khác phải có để tương tác với các thành phần của ứng dụng.
  • Nó liệt kê các lớp Instrumentation cung cấp tính năng tạo hồ sơ và các thông tin khác khi ứng dụng đang chạy. Những khai báo này chỉ xuất hiện trong bản kê khai khi ứng dụng đang được phát triển và thử nghiệm; chúng bị loại bỏ trước khi ứng dụng được công bố.
  • Nó khai báo mức tối thiểu của API Android mà ứng dụng yêu cầu.
  • Nó liệt kê các thư viện mà ứng dụng phải được liên kết với.

Thực ra lý thuyết trên mình lấy ở trang official của google ra bạn có thể tham khảo tại đây nhé : https://developer.android.com/guide/topics/manifest/manifest-intro?hl=vi.

Ví dụ như bạn đặt tên cho ứng dụng, icon ứng dụng thì bạn sẽ vào file này để thiết lập.Nó có rất nhiều thứ để bạn thiết lập ở đây ví dụ như: ứng dụng bạn muốn đọc danh bạ của điện thoại (Zalo) thì android bắt bạn phải xin quyền của người dùng có cho hay không và bạn sẽ thiết lập yều cầu xin quyền ở trong file AndroidManifest này.

Rất nhiều thứ bạn phải config trong thằng này mà mình sẽ nói rõ hơn ở các bài sau khi đụng đến ha.

Cấu trúc tệpAndroidManifest

ấu trúc tệpAndroidManifest


<?xml version="1.0" encoding="utf-8"?>

<manifest>

    <uses-permission />
    <permission />
    <permission-tree />
    <permission-group />
    <instrumentation />
    <uses-sdk />
    <uses-configuration />  
    <uses-feature />  
    <supports-screens />  
    <compatible-screens />  
    <supports-gl-texture />  

    <application>

        <activity>
            <intent-filter>
                <action />
                <category />
                <data />
            </intent-filter>
            <meta-data />
        </activity>

        <activity-alias>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </activity-alias>

        <service>
            <intent-filter> . . . </intent-filter>
            <meta-data/>
        </service>

        <receiver>
            <intent-filter> . . . </intent-filter>
            <meta-data />
        </receiver>

        <provider>
            <grant-uri-permission />
            <meta-data />
            <path-permission />
        </provider>

        <uses-library />

    </application>

</manifest>

Bao bọc cả file là thẻ <manifest><application>… …</application></manifest>, đây là 2 thẻ root của file và chỉ xuất hiện một làn duy nhất và phải có chứ không sẽ lỗi ngay và các thẻ đóng mở khác sẽ có hoặc không tùy vào bạn có sử dụng đến hay không thôi.

Mình sẽ giải thích một số thứ ở đây:

<uses-permission />Xin cấp quyền<permission />: đây là cú pháp lệnh để bạn xin cấp một quyền gì đó khi ứng dụng bạn tương tác với dữ liệu nào đó mà google không cho phép bạn dùng tùy ý.Ví dụ như mình đã nói ở trên khi ứng dụng bạn muốn đọc danh bạ của một điện thoại nào đó thì bạn sẽ phải xin quyền để đọc chứ không thể tự ý đọc được, cú pháp xin quyền như sau:

<uses-permission android:name="android.permission.READ_CONTACTS" />

Sau khi khai báo xong bạn có thể tùy ý xem danh bạ của thiết bị đó rồi, có rất nhiều quyền bạn muốn dùng thì phải khai báo giống như trên như: quyền kết nối internet, quyền đọc tin nhắn, quyền kiểm tra kết nối mạng..rất rất nhiều và thời gian bạn sẽ đụng đến thôi.

<activity>…</activity>: đây là thẻ để bạn khai báo các activity trong ứng dụng của bạn và các thuộc tính của activity đó, nếu như bạn không khai bao thì khi khởi chạy ứng dụng sẽ lỗi ngay.Bài trước mà đã giới thiệu về Activity và vòng đời của nó rồi chắc các bạn còn nhớ chứ.

<service>…</service>: sau này bạn sẽ học về service ở phần hướng dẫn android nâng cao, thì đây là một dịch vụ chạy ngầm trên ứng dụng của bạn kể cả khi ứng dụng đã tắt đi và khi sử dụng bạn phải khai  báo chúng trong AndroidMainifest.

<receiver>…</receiver>: đây là khi báo khi bạn sử dụng Broadcast Reciver, cái này là để bạn lắng nghe các sự kiện thay đổi của hệ thống như khi bất wifi, khi sạc pin… và bạn cũng sẽ được học ở phần Android nâng cao sau này.

Còn rất nhiều các thuộc tính khác mà mình không nói tới do mình cũng chưa dùng tới luôn nhưng cụ thể thì cứ làm nhiều thì bạn sẽ đụng tới và khi đụng tới bạn sẽ biết nó để làm gì, mỗi ngày tích lũy một tí vậy.Chứ mình cũng chưa biết hết được, các bạn thông cảm nhé :P.

bài viết trong chủ đề