Định cấu hình phân phối tại thời điểm cài đặt

Mô-đun tính năng cho phép bạn tách một số tính năng và tài nguyên cụ thể khỏi mô-đun cơ sở của ứng dụng rồi đưa chúng vào gói ứng dụng. Sau đó, bạn có thể tuỳ chỉnh các tuỳ chọn phân phối để kiểm soát thời điểm và cách thức thiết bị chạy Android 5.0 (API cấp 21) trở lên tải các tính năng của ứng dụng xuống.

Xin lưu ý rằng loại mô-đun hoá này đòi hỏi nhiều nỗ lực hơn và có thể phải tái cấu trúc mã hiện tại của ứng dụng. Vì vậy, hãy cân nhắc kỹ xem những tính năng nào trong ứng dụng sẽ hưởng lợi nhiều nhất khi có sẵn cho người dùng theo yêu cầu.

Nếu muốn từng bước mô-đun hoá các tính năng của ứng dụng theo thời gian mà không thay đổi hành vi của ứng dụng hay tuỳ chỉnh các tuỳ chọn phân phối nâng cao, thì bạn có thể làm như vậy bằng cách tạo mô-đun tính năng được định cấu hình để phân phối tại thời điểm cài đặt. Tức là bạn có thể mô-đun hoá một tính năng thành mô-đun tính năng nhưng không bật các tuỳ chọn nâng cao để tính năng này hoạt động khi người dùng cài đặt ứng dụng.

Ngoài ra, mô-đun tính năng được định cấu hình để phân phối tại thời điểm cài đặt sẽ có thể được gỡ cài đặt sau nếu chúng không còn cần thiết nữa. Do đó, bạn cần thiết lập mô-đun tính năng dưới dạng có thể xoá.

Phần này mô tả cách tạo mô-đun tính năng để phân phối tại thời điểm cài đặt. Trước khi bắt đầu, hãy đảm bảo bạn đang sử dụng Android Studio 3.5 trở lên và trình bổ trợ Android cho Gradle 3.5.0 trở lên.

Định cấu hình mô-đun mới để phân phối tại thời điểm cài đặt

Cách dễ nhất để tạo mô-đun tính năng mới là sử dụng Android Studio 3.5 trở lên. Vì mô-đun tính năng có phần phụ thuộc vốn có của mô-đun ứng dụng cơ sở, nên bạn chỉ có thể thêm chúng vào những dự án ứng dụng hiện có.

Để thêm mô-đun tính năng vào dự án ứng dụng bằng Android Studio, hãy làm như sau:

  1. Mở dự án ứng dụng trong IDE.
  2. Chọn File (Tệp) > New (Mới) > New Module (Mô-đun mới) trên thanh trình đơn.
  3. Trong hộp thoại Create New Module (Tạo mô-đun mới), hãy chọn Dynamic Feature Module (Mô-đun tính năng động) rồi nhấp vào Next (Tiếp theo).
  4. Trong phần Configure your new module (Định cấu hình mô-đun mới), hãy hoàn thành các bước sau:
    1. Chọn Base application module (Mô-đun ứng dụng cơ sở) cho dự án ứng dụng trên trình đơn thả xuống.
    2. Chỉ định Module name (Tên mô-đun). IDE sử dụng tên này để xác định mô-đun làm dự án phụ Gradle trong tệp cài đặt Gradle. Khi bạn tạo gói ứng dụng, Gradle sử dụng phần tử cuối của tên dự án phụ để chèn thuộc tính <manifest split> trong tệp kê khai của mô-đun tính năng.
    3. Chỉ định package name (tên gói) của mô-đun. Theo mặc định, Android Studio kết hợp tên gói gốc của mô-đun cơ sở và tên mô-đun mà bạn đã chỉ định ở bước trước để làm tên gói.
    4. Chọn Minimum API level (Cấp API tối thiểu) mà bạn muốn mô-đun hỗ trợ. Giá trị này phải khớp với giá trị của mô-đun cơ sở.
  5. Nhấp vào Next (Tiếp theo)
  6. Trong phần Module Download Options (Tuỳ chọn tải mô-đun xuống), hãy hoàn thành các bước sau:

    1. Chỉ định Module title (Tên mô-đun) sử dụng tối đa 50 ký tự. Mô-đun cơ sở của ứng dụng phải bao gồm cả tên mô-đun dưới dạng tài nguyên chuỗi mà bạn có thể dịch. Khi tạo mô-đun bằng Android Studio, IDE thêm tài nguyên chuỗi vào mô-đun cơ sở cho bạn và chèn nội dung sau vào tệp kê khai của mô-đun tính năng:

      <dist:module
          ...
          dist:title="@string/feature_title">
      </dist:module>
      
    2. Trong trình đơn thả xuống của phần Install-time inclusion (Phân phối tại thời điểm cài đặt), hãy chọn Include module at install-time (Phân phối mô-đun tại thời điểm cài đặt). Android Studio sẽ chèn nội dung sau đây vào tệp kê khai của mô-đun để phản ánh lựa chọn của bạn:

      <dist:module ... >
        <dist:delivery>
            <dist:install-time />
        </dist:delivery>
      </dist:module>
      

      Nếu bạn muốn tìm hiểu cách tạo mô-đun tính năng mà bạn có thể tải xuống sau khi cài đặt ứng dụng, hãy đọc nội dung định cấu hình phân phối theo yêu cầu.

    3. Đánh dấu ô bên cạnh Fusing (Hợp nhất) nếu bạn muốn mô-đun này có sẵn cho thiết bị chạy Android 4.4 (API cấp 20) trở xuống và đi kèm nhiều APK. Tức là bạn có thể bỏ qua tính năng này trên thiết bị không hỗ trợ quá trình tải xuống và cài đặt APK phân tách. Android Studio sẽ chèn nội dung sau đây vào tệp kê khai của mô-đun để phản ánh lựa chọn của bạn:

      <dist:module ...>
          <dist:fusing dist:include="true | false" />
      </dist:module>
      
  7. Nhấp vào Finish (Hoàn tất).

Sau khi Android Studio hoàn tất quá trình tạo mô-đun, bạn nên tự kiểm tra nội dung của mô-đun đó trên ngăn Project (Dự án) (chọn View (Thành phần hiển thị) > Tool Windows (Cửa sổ công cụ) > Project (Dự án) trên thanh trình đơn). Mã, tài nguyên và cách sắp xếp mặc định phải tương tự như mã, tài nguyên và cách sắp xếp của mô-đun ứng dụng chuẩn.

Tạo mô-đun có thể xoá tại thời điểm cài đặt

Bạn có thể thấy hữu ích khi tạo mô-đun tính năng để phân phối tại thời điểm cài đặt và có tuỳ chọn gỡ cài đặt sau nếu chúng không còn cần thiết nữa. Ví dụ: để giảm kích thước cài đặt của ứng dụng, bạn có thể mô-đun hoá nội dung cần thiết cho quá trình đào tạo hoặc làm quen, rồi gỡ cài đặt mô-đun tính năng bằng Play Core API sau khi người dùng đã nắm được cách sử dụng ứng dụng.

Theo mặc định, bạn không xoá được mô-đun phân phối tại thời điểm cài đặt. Để đánh dấu một mô-đun là có thể xoá và cho phép gỡ cài đặt mô-đun đó, hãy thêm thẻ removable và thiết lập giá trị của mô-đun đó thành true:

<dist:module ... >
  <dist:delivery>
      <dist:install-time>
          <dist:removable dist:value="true"/>
      </dist:install-time>
  </dist:delivery>
</dist:module>