Tạo gói ứng dụng có hỗ trợ phiên bản tức thì

Bạn có thể tạo một trải nghiệm Google Play Instant bằng cách đưa trải nghiệm này vào Android App Bundle. Một gói như vậy được gọi là gói ứng dụng có hỗ trợ phiên bản tức thì. Tài liệu này hướng dẫn bạn cách thiết lập môi trường phát triển cho các gói ứng dụng có hỗ trợ phiên bản tức thì, cũng như cách định cấu hình, tạo, kiểm thử và phát hành gói ứng dụng có hỗ trợ phiên bản tức thì.

Nếu bạn hiện có một dự án ứng dụng tức thì sử dụng tính năng không dùng nữa trình bổ trợ (com.android.feature), hãy tìm hiểu cách di chuyển ứng dụng tức thì để hỗ trợ Android App Bundle.

Thiết lập môi trường phát triển

Để cung cấp trải nghiệm tức thì trong gói ứng dụng, bạn cần truy cập vào SDK Phát triển tức thì của Google Play. Bạn có thể cài đặt SDK này bằng một phương thức sau:

  • Cài đặt Android Studio 3.6 trở lên. Sau khi mở Android Studio, tải SDK Phát triển tức thì của Google Play xuống từ Bộ công cụ SDK trong Trình quản lý SDK.
  • Cài đặt từ dòng lệnh:

    cd path/to/android/sdk/tools/bin && \
      ./sdkmanager 'extras;google;instantapps'
    

Ngoài ra, nếu bạn muốn kiểm thử cục bộ phiên bản trải nghiệm tức thì, hãy truy cập vào một thiết bị thực hoặc thiết bị ảo.

Tìm hiểu về các điều kiện thực thi bắt buộc

Google Play Instant chạy các gói ứng dụng có hỗ trợ phiên bản tức thì theo một kiểu đặc biệt Hộp cát SELinux giúp tăng cường bảo mật. Hộp cát này cho phép một tập hợp con quyền truy cập cũng như các loại tương tác hạn chế với ứng dụng khác. Chiến lược phát hành đĩa đơn các phần sau đây sẽ giải thích chi tiết hơn về đặc điểm của hộp cát này.

Các quyền và thao tác được hỗ trợ

Gói ứng dụng có hỗ trợ phiên bản tức thì chỉ có thể sử dụng các quyền trong danh sách sau:

Xử lý các quyền thông thường không được hỗ trợ

Sau đây là danh sách những quyền phổ biến và không được hỗ trợ mà bạn phải xoá khỏi ứng dụng của bạn và đường dẫn di chuyển đề xuất cho từng nhóm:

  • ACCESS_WIFI_STATE: Sử dụng ACCESS_NETWORK_STATE để cung cấp tương tự như ACCESS_WIFI_STATE.
  • BILLING: Đây là quyền không dùng nữa. Sử dụng Thư viện Google Play Billing, không còn yêu cầu quyền com.android.vending.BILLING nữa.
  • READ/WRITE_EXTERNAL_STORAGE: Ứng dụng tức thì không có quyền truy cập vào ứng dụng bên ngoài bộ nhớ; hãy sử dụng bộ nhớ trong.
  • com.google.android.c2dm.permission.RECEIVEpermission.C2D_MESSAGE: C2DM không được dùng nữa. Chuyển sang Giải pháp gửi thông báo qua đám mây của Firebase (FCM). FCM thực hiện không cần bất kỳ quyền bổ sung nào để hoạt động.

Ngoài ra, các gói ứng dụng có hỗ trợ phiên bản tức thì không được làm những việc sau:

Quyền truy cập vào ứng dụng đã cài đặt

Khi phát triển trải nghiệm tức thì, hãy lưu ý rằng trải nghiệm đó không thể tương tác với ứng dụng đã cài đặt trên thiết bị trừ phi một trong các điều sau là đúng:

  • Một hoặc nhiều hoạt động trong một ứng dụng đã cài đặt đã đặt Phần tử android:visibleToInstantApps kết nối với truePhần tử này khả dụng cho các ứng dụng chạy Android 8.0 (API cấp 26) trở lên.
  • Một ứng dụng đã cài đặt chứa bộ lọc ý định bao gồm CATEGORY_BROWSABLE.
  • Phiên bản trải nghiệm tức thì đang gửi một ý định bằng ACTION_SEND! ACTION_SENDTO hoặc ACTION_SEND_MULTIPLE hành động.

Định cấu hình dự án của bạn cho trải nghiệm tức thì

Để tương thích với Google Play Instant, bạn phải định cấu hình một số của gói ứng dụng có hỗ trợ phiên bản tức thì. Các phần sau mô tả những điểm cần cân nhắc này.

Khai báo các phần phụ thuộc của dự án

Để sử dụng API Google Play Instant trong ứng dụng của bạn, hãy đưa vào nội dung khai báo trong tệp cấu hình build.gradle của mô-đun ứng dụng:

Groovy

implementation "com.google.android.gms:play-services-instantapps:17.0.0"

Kotlin

implementation("com.google.android.gms:play-services-instantapps:17.0.0")

Xác định đúng mã phiên bản

Mã phiên bản của trải nghiệm tức thì trong ứng dụng cần phải nhỏ hơn mã phiên bản của ứng dụng có thể cài đặt. Kỳ vọng là người dùng chuyển từ Trải nghiệm Google Play Instant khi tải xuống và cài đặt ứng dụng trên thiết bị của họ. Khung Android coi quá trình chuyển đổi này là một ứng dụng cập nhật.

Để đảm bảo bạn tuân thủ lược đồ tạo phiên bản mà người dùng mong đợi, hãy làm theo một của những chiến lược này:

  • Khởi động lại mã phiên bản đối với trải nghiệm Google Play Instant tại 1.
  • Tăng mã phiên bản của tệp APK có thể cài đặt lên một con số lớn, chẳng hạn như 1000, để đảm bảo có đủ khoảng giá trị để tăng mã phiên bản của ứng dụng tức thì .

Bạn có thể tách riêng ứng dụng tức thì và ứng dụng có thể cài đặt Dự án Android Studio. Tuy nhiên, nếu làm như vậy, bạn phải làm như sau để xuất bản ứng dụng trên Google Play:

  1. Sử dụng cùng một tên gói trong cả hai dự án Android Studio.
  2. Trong Google Play Console, hãy tải cả hai biến thể lên cùng một ứng dụng.

Để biết thêm thông tin chi tiết về cách thiết lập phiên bản ứng dụng, vui lòng xem phần Lập phiên bản ứng dụng.

Cập nhật phiên bản sandbox mục tiêu

Tệp AndroidManifest.xml của ứng dụng tức thì cần được cập nhật để nhắm mục tiêu đến môi trường hộp cát mà Google Play Instant hỗ trợ. Bạn có thể hoàn tất bản cập nhật này bằng cách thêm thuộc tính android:targetSandboxVersion vào Phần tử <manifest>, như minh hoạ trong đoạn mã sau:

<manifest
   xmlns:android="http://schemas.android.com/apk/res/android"
  ...
   android:targetSandboxVersion="2" ...>

Để biết thêm thông tin, hãy xem tài liệu về thuộc tính targetSandboxVersion.

Khai báo mô-đun ứng dụng có hỗ trợ phiên bản tức thì

Bạn có thể khai báo rằng gói ứng dụng của bạn hỗ trợ trải nghiệm tức thì bằng một trong các phương thức sau:

  • Nếu bạn hiện có một gói ứng dụng chỉ chứa một cơ sở , bạn có thể hỗ trợ phiên bản tức thì gói ứng dụng như sau:

    1. Mở bảng điều khiển Project (Dự án) bằng cách chọn View > Tool Windows > Project (Xem > Cửa sổ công cụ > Dự án) trên thanh trình đơn.
    2. Nhấp chuột phải vào mô-đun cơ sở, thường có tên là "app" (ứng dụng), rồi chọn Refactor > Enable Instant Apps Support (Tái cấu trúc > Bật chế độ hỗ trợ Ứng dụng tức thì).
    3. Trong hộp thoại xuất hiện, hãy chọn mô-đun cơ sở trên trình đơn thả xuống.
    4. Nhấp vào OK.

    Android Studio thêm nội dung khai báo sau vào tệp kê khai của mô-đun:

    <manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
        <dist:module dist:instant="true" />
        ...
    </manifest>
    
  • Nếu đã có một gói ứng dụng chứa nhiều mô-đun, bạn có thể Tạo tính năng hỗ trợ phiên bản tức thì mô-đun. Quy trình này cũng hỗ trợ phiên bản tức thì cho mô-đun cơ sở của ứng dụng, nhờ vậy, bạn có thể hỗ trợ nhiều mục nhập tức thì điểm trong .

Thêm tính năng hỗ trợ đăng nhập

Nếu phiên bản trải nghiệm tức thì cho phép người dùng đăng nhập, thì ứng dụng hỗ trợ phiên bản tức thì Gói phải hỗ trợ Smart Lock cho Mật khẩu trên Android. Nếu bạn đang xây dựng "Chơi tức thì" trò chơi, bạn nên dùng tính năng đăng nhập bằng Dịch vụ trò chơi của Google Play.

Hỗ trợ môi trường thực thi

Để tương thích với hộp cát SELinux nơi trải nghiệm tức thì chạy, hãy giữ nguyên hãy lưu ý những điều sau khi tạo gói ứng dụng có hỗ trợ phiên bản tức thì:

  • Không chia sẻ giá trị của myUid(), tức là nhân hệ điều hành do quy trình ứng dụng chỉ định Mã nhận dạng cho quảng cáo (UID).
  • Nếu ứng dụng của bạn nhắm đến Android 8.1 (API cấp 27) trở xuống, hãy tạo một Tệp Network Security Config và đặt tệp cleartextTrafficPermitted đến false. Trải nghiệm tức thì không hỗ trợ HTTP lưu lượng truy cập. Đối với những ứng dụng nhắm đến Android 9 trở lên, lưu lượng truy cập qua văn bản thô tắt theo mặc định.
  • Ứng dụng tức thì vẫn được tải xuống trên thiết bị của người dùng cho đến khi bộ nhớ đệm của ứng dụng tức thì bị xoá. Điều này xảy ra ở một trong các trường hợp sau:

    • Bộ nhớ đệm phiên bản trải nghiệm tức thì bị thu hồi trong quá trình dọn rác do thiết bị sắp hết bộ nhớ còn trống.
    • Người dùng khởi động lại thiết bị.

    Nếu một trong hai quá trình đó xảy ra, người dùng phải tải lại phiên bản tức thì xuống để có thể tương tác với trò chơi.

  • Nếu hệ thống sắp hết dung lượng lưu trữ, thì có thể dữ liệu người dùng của phiên bản trải nghiệm tức thì bị xoá khỏi bộ nhớ trong. Do đó, bạn nên đồng bộ hoá dữ liệu người dùng với máy chủ của ứng dụng theo định kỳ để tiến trình của người dùng vẫn được giữ nguyên.

Thêm logic cho quy trình trải nghiệm tức thì

Sau khi bạn định cấu hình gói ứng dụng để hỗ trợ trải nghiệm tức thì, hãy thêm được hiển thị trong các phần sau.

Kiểm tra xem ứng dụng có đang chạy phiên bản trải nghiệm tức thì hay không

Nếu một số logic của ứng dụng phụ thuộc vào việc người dùng có tương tác trong trải nghiệm tức thì, hãy gọi phương thức isInstantApp() . Phương thức này trả về true nếu quá trình hiện đang chạy là trải nghiệm tức thì.

Hiển thị lời nhắc cài đặt

Nếu bạn đang tạo phiên bản dùng thử của ứng dụng hoặc trò chơi, Google Play Instant sẽ cho phép bạn sẽ hiển thị một lời nhắc trong trải nghiệm tức thì, mời người dùng cài đặt trải nghiệm đầy đủ trên thiết bị. Để hiển thị lời nhắc này, hãy sử dụng InstantApps.showInstallPrompt() như minh hoạ trong đoạn mã sau đây:

Kotlin

class MyInstantExperienceActivity : AppCompatActivity {
    // ...
    private fun showInstallPrompt() {
        val postInstall = Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name)

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(this@MyInstantExperienceActivity,
                postInstall, request-code, /* referrer= */ null)
    }
}

Java

public class MyInstantExperienceActivity extends AppCompatActivity {
    // ...
    private void showInstallPrompt() {
        Intent postInstall = new Intent(Intent.ACTION_MAIN)
                .addCategory(Intent.CATEGORY_DEFAULT)
                .setPackage(your-installed-experience-package-name);

        // The request code is passed to startActivityForResult().
        InstantApps.showInstallPrompt(MyInstantExperienceActivity.this,
                postInstall, request-code, /* referrer= */ null);
    }
}

Chuyển dữ liệu sang trải nghiệm đã cài đặt

Nếu người dùng thích trải nghiệm tức thì của bạn, họ có thể quyết định cài đặt . Để mang lại trải nghiệm tốt cho người dùng, điều quan trọng là dữ liệu của người dùng được chuyển từ phiên bản trải nghiệm tức thì sang phiên bản ứng dụng của bạn.

Nếu người dùng đang sử dụng một thiết bị chạy Android 8.0 (API cấp 26) trở lên, và nếu ứng dụng của bạn chỉ định targetSandboxVersion 2, thì dữ liệu của người dùng sẽ được chuyển tự động sang phiên bản đầy đủ của ứng dụng. Nếu không, bạn phải chuyển dữ liệu theo cách thủ công. Để thực hiện điều này, hãy sử dụng một trong các API sau:

  • Đối với người dùng sử dụng thiết bị chạy Android 8.0 (API cấp 26) trở lên, sử dụng Cookie API – ứng dụng mẫu
  • Liệu người dùng có thể tương tác với trải nghiệm của bạn trên các thiết bị chạy Android 7.1 hay không (API cấp 25) trở xuống, thêm tính năng hỗ trợ cho Storage API – ứng dụng mẫu

Tạo gói ứng dụng

Bạn có thể sử dụng Android Studio hoặc giao diện dòng lệnh để tạo gói ứng dụng có hỗ trợ phiên bản tức thì.

Android Studio

Với Android Studio, bạn có thể tạo gói ứng dụng bằng cách chọn Bản dựng > Tạo gói / APK > Tạo(các) gói. Thông tin khác về cách tạo dự án, hãy xem phần Xây dựng dự án.

Giao diện dòng lệnh

Bạn cũng có thể tạo gói ứng dụng bằng lệnh bằng Gradle.

Hỗ trợ kiến trúc 64 bit

Các ứng dụng được phát hành trên Google Play cần hỗ trợ kiến trúc 64 bit. Việc thêm phiên bản 64 bit cho ứng dụng của bạn sẽ cải thiện hiệu suất và giúp bạn đáp ứng các thiết bị chỉ có phần cứng 64 bit. Tìm hiểu thêm về dịch vụ hỗ trợ kiến trúc 64 bit.

Kiểm thử trải nghiệm tức thì

Trước khi xuất bản gói ứng dụng có hỗ trợ phiên bản tức thì, bạn có thể thử nghiệm phiên bản tức thì kinh nghiệm từ một trong các địa điểm sau để xác minh chức năng:

Android Studio

Cách kiểm thử trải nghiệm tức thì của ứng dụng trên một máy cục bộ bằng Android Studio: hoàn thành các bước sau:

  1. Nếu thiết bị thử nghiệm của bạn đã cài đặt một phiên bản ứng dụng, hãy gỡ cài đặt nó.
  2. Trong Android Studio, từ các tuỳ chọn cài đặt xuất hiện trên Thẻ General (Chung) của Run/Debug Configurations (Cấu hình chạy/gỡ lỗi) , hãy bật tuỳ chọn Triển khai tức thì app.
  3. Chọn Run > (Chạy >) Chạy trong thanh trình đơn hoặc nhấp vào biểu tượng Chạy trong thanh công cụ, sau đó chọn thiết bị mà bạn muốn thử nghiệm tính năng của bạn. Trải nghiệm tức thì của ứng dụng sẽ tải trên thiết bị thử nghiệm mà bạn đã chọn.

Giao diện dòng lệnh

Để kiểm thử trải nghiệm tức thì của ứng dụng trên máy cục bộ bằng dòng lệnh, hoàn thành các bước sau:

  1. Nếu thiết bị thử nghiệm của bạn đã cài đặt một phiên bản ứng dụng, hãy gỡ cài đặt nó.
  2. Cài đặt không qua cửa hàng ứng dụng và chạy ứng dụng tức thì trên thiết bị thử nghiệm bằng cách nhập sau đây:
ia run output-from-build-command

Kênh kiểm thử nội bộ

Để kiểm tra trải nghiệm tức thì của ứng dụng từ Cửa hàng Play hoặc một biểu ngữ trên trang web, xuất bản ứng dụng lên quy trình thử nghiệm nội bộ theo dõi trên Play Console.

Để xuất bản ứng dụng lên kênh kiểm thử nội bộ, hãy hoàn tất các bước sau:

  1. Tải gói ứng dụng lên bằng cách làm theo các bước trong phần Tải gói ứng dụng lên hướng dẫn trên Play Console.
  2. Chuẩn bị gói đã tải lên để phát hành lên kênh kiểm thử nội bộ. Cho để biết thêm thông tin, hãy xem bài viết hỗ trợ về cách Chuẩn bị và ra mắt bản phát hành.
  3. Đăng nhập vào tài khoản người kiểm thử nội bộ trên một thiết bị, sau đó chạy ứng dụng tức thì qua một trong các nền tảng sau:

    • Nút Try now (Thử ngay) từ trang thông tin của ứng dụng trên Cửa hàng Play.
    • Đường liên kết trong một biểu ngữ trên trang web của ứng dụng.

Phát hành gói ứng dụng lên kênh phát hành công khai

Để phát hành gói ứng dụng có hỗ trợ phiên bản tức thì, hãy hoàn tất các bước sau:

  1. Ký gói ứng dụng bằng một bản phát hành nếu bạn chưa thực hiện việc này keytải gói ứng dụng lên Play Console.
  2. Trong Play Console, hãy mở phần Quản lý bản phát hành > Android tức thì, sau đó là hãy chuyển đến kênh phát hành ứng dụng tức thì.
  3. Chọn Cập nhật từ thư viện, sau đó chọn gói ứng dụng có hỗ trợ phiên bản tức thì mà bạn đã tải lên.

Chọn nơi xuất bản trải nghiệm tức thì

Bạn có thể phát hành phiên bản trải nghiệm tức thì của ứng dụng trong một số quốc gia và khu vực nơi mọi người có thể cài đặt ứng dụng của bạn. Chức năng này hữu ích trong trường hợp bạn muốn quảng bá trải nghiệm tức thì của ứng dụng cho người dùng cư trú tại một nhóm quốc gia và khu vực cụ thể.

Tài nguyên khác

Để tìm hiểu thêm về cách tạo trải nghiệm tức thì và Android App Bundle, hãy xem các tài nguyên sau:

Video: Tạo gói ứng dụng tức thì
Tìm hiểu cách thêm trải nghiệm tức thì vào Android App Bundle trong phiên họp tại Hội nghị Nhà phát triển Android 2018.
Video: Phát hành ứng dụng nhỏ hơn bằng Android App Bundle
Tìm hiểu cách các gói ứng dụng giúp bạn phát triển ứng dụng nhanh hơn cũng như tạo có kích thước nhỏ hơn cho người dùng.
Lớp học lập trình: Android App Bundle đầu tiên
Hướng dẫn từng bước để tạo Android App Bundle và thêm tính năng vào nó.
Định dạng Android App Bundle
Tìm hiểu thêm về cách chương trình dòng lệnh bundletool sắp xếp ứng dụng từ mã và tài nguyên của ứng dụng.