Bài tập

Tạo một thư viện Android

Huy Erick

Một thư viện Android có cấu trúc giống như một mô-đun ứng dụng Android. Nó bao gồm mọi thứ cần thiết để xây dựng một ứng dụng, bao gồm mã nguồn, tệp tài nguyên và...

Một thư viện Android có cấu trúc giống như một mô-đun ứng dụng Android. Nó bao gồm mọi thứ cần thiết để xây dựng một ứng dụng, bao gồm mã nguồn, tệp tài nguyên và một Android manifest.

Tuy nhiên, thay vì biên dịch thành một tệp APK chạy trên thiết bị, một thư viện Android được biên dịch thành một tệp Android Archive (AAR) mà bạn có thể sử dụng như một phụ thuộc cho một mô-đun ứng dụng Android. Khác với tệp JAR, tệp AAR cung cấp các chức năng sau cho ứng dụng Android:

  • Tệp AAR có thể chứa các tài nguyên Android và một tệp manifest, cho phép bạn gói các tài nguyên chia sẻ như giao diện và hình vẽ cùng với các lớp và phương thức Kotlin hoặc Java.
  • Tệp AAR có thể chứa các thư viện C/C++ để sử dụng bởi mã C/C++ của mô-đun ứng dụng.

Một mô-đun thư viện hữu ích trong các tình huống sau:

  • Khi xây dựng nhiều ứng dụng sử dụng một số thành phần chung, chẳng hạn như hoạt động, dịch vụ hoặc giao diện người dùng.
  • Khi xây dựng một ứng dụng tồn tại dưới nhiều biến thể APK, chẳng hạn như phiên bản miễn phí và trả phí, chia sẻ các thành phần cốt lõi.

Trong cả hai trường hợp, di chuyển các tệp bạn muốn sử dụng lại vào một mô-đun thư viện, sau đó thêm thư viện làm phụ thuộc cho mỗi mô-đun ứng dụng.

Trang này sẽ giải thích cách tạo và sử dụng một mô-đun thư viện Android. Để biết hướng dẫn về cách xuất bản một thư viện, xem Chia sẻ thư viện của bạn.

Tạo một mô-đun thư viện

Để tạo một mô-đun thư viện mới trong dự án của bạn, làm theo các bước sau:

  1. Click vào File > New > New Module.
  2. Trong hộp thoại Create New Module hiển thị, chọn Android Library, sau đó click Next.
    • Có một tùy chọn để tạo một thư viện Kotlin hoặc Java, xây dựng một tệp JAR truyền thống. Trong khi một tệp JAR hữu ích cho nhiều dự án - đặc biệt là khi bạn muốn chia sẻ mã với các nền tảng khác - nó không cho phép bạn bao gồm các tài nguyên Android hoặc tệp manifest, rất hữu ích cho việc tái sử dụng mã trong các dự án Android. Hướng dẫn này tập trung vào việc tạo thư viện Android.
  3. Đặt tên cho thư viện của bạn và chọn phiên bản SDK tối thiểu cho mã trong thư viện, sau đó click Finish. Quan trọng: Tên gói mô-đun phải là duy nhất toàn cầu. Bạn không thể có hai mô-đun có cùng tên gói trong cùng một dự án.

Sau khi đồng bộ hóa dự án Gradle hoàn tất, mô-đun thư viện sẽ xuất hiện trong Project pane. Nếu bạn không nhìn thấy thư mục mô-đun mới, hãy chắc chắn rằng pane đang hiển thị Android view.

Chuyển đổi một mô-đun ứng dụng thành mô-đun thư viện

Nếu bạn đã có một mô-đun ứng dụng hiện có với mã bạn muốn tái sử dụng, bạn có thể chuyển đổi nó thành một mô-đun thư viện như sau:

  1. Mở tệp build.gradle cấp module, nếu bạn đang sử dụng Groovy hoặc tệp build.gradle.kts nếu bạn đang sử dụng Kotlin script.
  2. Xóa dòng cho applicationId. Chỉ một mô-đun ứng dụng Android mới có thể định nghĩa điều này.
  3. Tìm khối plugins ở đầu tệp có dạng sau:
    plugins {
     id 'com.android.application'
    }

    Chuyển nó thành như sau:

    plugins {
     id 'com.android.library'
    }
  4. Lưu tệp và click File > Sync Project with Gradle Files.

Cấu trúc của mô-đun vẫn không thay đổi, nhưng giờ đây nó hoạt động như một thư viện Android. Quá trình biên dịch tạo ra một tệp AAR thay vì một tệp APK.

Khi bạn muốn xây dựng tệp AAR, hãy chọn mô-đun thư viện trong cửa sổ Project và click Build > Build APK.

Thêm phụ thuộc với hộp thoại Project Structure

Bạn có thể sử dụng hộp thoại Project Structure để thêm các phụ thuộc vào dự án của bạn. Các phần tiếp theo miêu tả cách sử dụng hộp thoại này để thêm các phụ thuộc.

Sử dụng thư viện của bạn trong cùng một dự án

Để sử dụng mã của thư viện Android mới của bạn trong một ứng dụng hoặc mô-đun thư viện khác trong cùng một dự án, hãy thêm một phụ thuộc cấp dự án:

  1. Chuyển đến File > Project Structure > Dependencies.
  2. Chọn mô-đun mà bạn muốn thêm thư viện.
  3. Trong tab Declared Dependencies, click và chọn Module Dependency từ menu.

![]()

  1. Trong hộp thoại Add Module Dependency, chọn mô-đun thư viện của bạn.

![]()

  1. Chọn cấu hình yêu cầu phụ thuộc này hoặc chọn implementation nếu áp dụng cho tất cả các cấu hình, sau đó click OK.

Lưu ý: Hiện không hỗ trợ danh mục phiên bản Gradle. Nếu dự án của bạn sử dụng chúng, bạn phải thêm phụ thuộc thủ công.

Android Studio sẽ chỉnh sửa tệp build.gradle hoặc build.gradle.kts của mô-đun để thêm phụ thuộc, theo hình dạng sau:

dependencies {
    implementation project(":library_module_name")
}

Sử dụng thư viện của bạn trong các dự án khác

Cách khuyến nghị để chia sẻ các phụ thuộc (JAR và AAR) là sử dụng một kho lưu trữ Maven, được lưu trữ trên một dịch vụ như Maven Central hoặc với một cấu trúc thư mục trên ổ đĩa cục bộ của bạn. Để biết thêm thông tin về việc sử dụng kho lưu trữ Maven, xem Remote repositories.

Khi một thư viện Android được xuất bản vào một kho lưu trữ Maven, các siêu dữ liệu được bao gồm để các phụ thuộc của thư viện được bao gồm trong quá trình xây dựng tiêu thụ. Điều này cho phép thư viện được tự động sắp xếp nếu nó được sử dụng ở nhiều vị trí.

Lưu ý: Nếu bạn không thể xuất bản thư viện của mình vào một kho lưu trữ Maven, bạn có thể tiêu thụ tệp JAR hoặc AAR trực tiếp bằng quy trình trong phần Thêm tệp AAR hoặc JAR làm phụ thuộc. Trong trường hợp này, bạn phải quản lý thủ công bất kỳ phụ thuộc chuyển tiếp nào của AAR đó.

Để sử dụng mã từ thư viện Android của bạn trong một mô-đun ứng dụng khác trong một dự án khác, làm theo các bước sau:

  1. Chuyển đến File > Project Structure > Dependencies.
  2. Trong tab Declared Dependencies, click và chọn Library Dependency trong menu.

![]()

  1. Trong hộp thoại Add Library Dependency, sử dụng hộp tìm kiếm để tìm thư viện muốn thêm. Công cụ này tìm kiếm các kho đã được chỉ định trong khối dependencyResolutionManagement { repositories {...}} trong tệp settings.gradle hoặc settings.gradle.kts.

![]()

  1. Chọn cấu hình yêu cầu phụ thuộc này hoặc chọn implementation nếu áp dụng cho tất cả các cấu hình, sau đó click OK.

Kiểm tra tệp build.gradle hoặc build.gradle.kts của ứng dụng của bạn để xác nhận rằng một khai báo tương tự sau đây xuất hiện (tùy thuộc vào cấu hình xây dựng bạn đã chọn):

dependencies {
    implementation 'com.example.library_module_name'
}

Thêm tệp AAR hoặc JAR làm phụ thuộc

Để sử dụng mã thư viện Android của bạn trong một mô-đun ứng dụng khác, hãy làm theo các bước sau:

  1. Chuyển đến File > Project Structure > Dependencies.
  2. Trong tab Declared Dependencies, click và chọn Jar Dependency trong menu.

![]()

  1. Trong hộp thoại Add Jar/Aar Dependency, nhập đường dẫn đến tệp AAR hoặc JAR của bạn, sau đó chọn cấu hình mà phụ thuộc áp dụng. Nếu thư viện nên có sẵn cho tất cả các cấu hình, hãy chọn cấu hình implementation.

![]()

Kiểm tra tệp build.gradle hoặc build.gradle.kts của ứng dụng của bạn để xác nhận rằng một khai báo tương tự sau đây xuất hiện (tùy thuộc vào cấu hình xây dựng bạn đã chọn):

dependencies {
    implementation files('path/to/your/aar_or_jar_file')
}

Để nhận phụ thuộc vào build Gradle chạy bên ngoài Android Studio, hãy thêm một đường dẫn đến phụ thuộc trong tệp build.gradle hoặc build.gradle.kts của ứng dụng của bạn. Ví dụ:

dependencies {
    implementation files('libs/your-library.jar')
}

Để biết thêm thông tin về việc thêm phụ thuộc Gradle, xem Thêm phụ thuộc xây dựng.

Lưu ý: Trong ví dụ trước, cấu hình implementation thêm thư viện như một phụ thuộc xây dựng cho toàn bộ mô-đun ứng dụng. Để tìm hiểu cách cấu hình phụ thuộc chỉ cho các biến thể xây dựng cụ thể, xem Cấu hình các biến thể xây dựng.

1