Wednesday, March 17, 2021

How to Create an Android library

Thư viện Android có cấu trúc giống như một mô-đun ứng dụng Android. Nó có thể bao gồm mọi thứ cần thiết để tạo ứng dụng, bao gồm mã nguồn, tệp tài nguyên và Android manifest. Tuy nhiên, thay vì biên dịch thành APK chạy trên thiết bị, thư viện Android sẽ biên dịch thành tệp Lưu trữ Android (AAR) mà bạn có thể sử dụng làm phụ thuộc cho mô-đun ứng dụng Android. Không giống như tệp JAR, tệp AAR cung cấp chức năng sau cho các ứng dụng Android:

How to Create an Android library

  • Tệp AAR có thể chứa tài nguyên Android và Android manifest, cho phép bạn nhóm các tài nguyên được chia sẻ như bố cục và tệp có thể kéo ngoài các lớp và phương thức Java.
  • Tệp AAR có thể chứa thư viện C / C ++ để sử dụng bởi mã C / C ++ của mô-đun ứng dụng

Mô-đun thư viện hữu ích trong các trường hợp sau:

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

Trong cả hai trường hợp, chỉ cần 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 hướng dẫn bạn cách làm cả hai.

Create a library module

Để tạo một mô-đun thư viện mới trong dự án của bạn, hãy tiến hành như sau:

  • Click File > New > New Module.
  • In the Create New Module cửa sổ xuất hiện, click Android Library, then click Next

Ngoài ra còn có một tùy chọn để tạo Thư viện Java, tạo một tệp JAR truyền thống. Mặc dù tệp JAR hữu ích cho nhiều dự án - đặc biệt 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 tài nguyên Android hoặc tệp kê khai, điều này rất hữu ích để sử dụng lại mã trong các dự án Android. Vì vậy, hướng dẫn này tập trung vào việc tạo thư viện Android.

  • Đặ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 đó nhấp vào Hoàn tất.

Khi quá trình đồng bộ hóa dự án Gradle hoàn tất, mô-đun thư viện xuất hiện trong bảng điều khiển Dự án ở bên trái. Nếu bạn không thấy thư mục mô-đun mới, hãy đảm bảo rằng nó đang hiển thị chế độ xem Android.

Convert an app module to a library module

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

  • Mở tệp build.gradle cấp mô-đun.
  • Xóa dòng cho applicationId. Chỉ một mô-đun ứng dụng Android mới có thể xác định điều này.

Ở đầu tệp, bạn sẽ thấy phần sau

apply plugin: 'com.android.application'

Thay đổi nó thành như sau:

apply plugin: 'com.android.library'

Lưu tệp và nhấp vào Tệp> Đồng bộ hóa dự án với tệp Gradle.

Đó là nó. Toàn bộ cấu trúc của mô-đun vẫn giữ nguyên, nhưng giờ đây nó hoạt động như một thư viện Android và bản dựng giờ sẽ tạo tệp AAR thay vì 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ổ Dự án và sau đó nhấp vào  Build > Build APK.

Add your library as a dependency

Để sử dụng mã thư viện Android của bạn trong một mô-đun ứng dụng khác, hãy tiến hành như sau:
Thêm thư viện vào dự án của bạn theo một trong hai cách sau (nếu bạn đã tạo mô-đun thư viện trong cùng một dự án, thì nó đã ở đó và bạn có thể bỏ qua bước này):
Thêm tệp AAR (hoặc JAR) được tạo sẵn:
  • Nhấp vào Tệp> Mới> Mô-đun mới.
  • Nhấp vào Nhập gói .JAR / .AAR rồi nhấp vào Tiếp theo.
  • Nhập vị trí của tệp AAR hoặc JAR đã biên dịch, sau đó nhấp vào Kết thúc.
Android Studio tạo một thư mục mô-đun, sao chép AAR vào mô-đun và tạo tệp build.gradle cho AAR / JAR, với nội dung sau:
configurations.maybeCreate("default")
      artifacts.add("default", file('libraryName'))
Nhập mô-đun thư viện với mã nguồn vào dự án của bạn (nguồn thư viện trở thành một phần của dự án của bạn):
  • Chọn File -> import module
  • Nhập vị trí của thư mục mô-đun thư viện rồi nhấp vào Finsh
Mô-đun thư viện với mã nguồn được sao chép vào dự án của bạn, vì vậy bạn thực sự có thể chỉnh sửa mã thư viện. Nếu bạn muốn duy trì một phiên bản mã thư viện duy nhất, thì đây có thể không phải là điều bạn muốn và thay vào đó bạn nên thêm tệp AAR đã biên dịch như được mô tả ở trên.

Đảm bảo rằng thư viện được liệt kê ở đầu tệp settings.gradle của bạn, như được hiển thị ở đây cho thư viện có tên "my-library-module"
include ':app', ':my-library-module'

Mở tệp build.gradle của mô-đun ứng dụng và thêm một dòng mới vào khối phụ thuộc như được hiển thị trong đoạn mã sau: 

dependencies {
    implementation project(":my-library-module")
}

Click Sync Project with Gradle Files.

Trong ví dụ trên, cấu hình triển khai thêm thư viện có tên my-library-module làm phụ thuộc vào bản dựng cho toàn bộ mô-đun ứng dụng. Thay vào đó, nếu bạn muốn thư viện chỉ dành cho một biến thể xây dựng cụ thể, thì thay vì triển khai, hãy sử dụng buildVariantNameImplementation. Ví dụ: nếu bạn chỉ muốn bao gồm thư viện trong hương vị sản phẩm "chuyên nghiệp" của mình, nó sẽ giống như sau:

productFlavors {

    pro { ... }

}

dependencies {

    proImplementation project(":my-library-module")

}

Bất kỳ mã và tài nguyên nào trong thư viện Android hiện đều có thể truy cập được vào mô-đun ứng dụng của bạn và tệp AAR của thư viện được gói vào APK của bạn tại thời điểm xây dựng.

Tuy nhiên, nếu bạn muốn chia sẻ tệp AAR của mình một cách riêng biệt, bạn có thể tìm thấy tệp này trong tên dự án / mô-đun-tên / xây dựng / đầu ra / aar / và bạn có thể tạo lại tệp bằng cách nhấp vào Xây dựng> Tạo dự án.

Nguồn : Lập trình android cơ bản

No comments:

Post a Comment