Cảnh báo: Google Play Instant sẽ không còn hoạt động nữa. Kể từ tháng 12 năm 2025, bạn sẽ không thể xuất bản Ứng dụng tức thì thông qua Google Play và tất cả API Instant của Dịch vụ Google Play sẽ không còn hoạt động. Play sẽ không còn phân phối Ứng dụng tức thì cho người dùng bằng bất kỳ cơ chế nào.
Chúng tôi thực hiện thay đổi này dựa trên ý kiến phản hồi của nhà phát triển và những khoản đầu tư liên tục của chúng tôi để cải thiện hệ sinh thái kể từ khi ra mắt Google Play Instant.
Để tiếp tục tối ưu hoá cho việc thu hút thêm người dùng, nhà phát triển nên chuyển hướng người dùng đến ứng dụng hoặc trò chơi thông thường của mình bằng đường liên kết sâu để chuyển hướng họ đến những hành trình hoặc tính năng cụ thể khi thích hợp.
Bạn tạo một phiên bản Google Play Instant bằng cách đưa phiên bản đó vào Android App Bundle. 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ợ ứng dụng tức thì, cũng như cách định cấu hình, tạo, kiểm thử và xuất bản một gói ứng dụng có hỗ trợ ứng dụng tức thì.
Nếu bạn có một dự án ứng dụng tức thì hiện tại sử dụng trình bổ trợ tính năng không dùng nữa (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 một gói ứng dụng, bạn cần có quyền truy cập vào SDK Phát triển Google Play Instant. Bạn có thể cài đặt SDK bằng một trong các phương thức sau:
- Cài đặt Android Studio 3.6 trở lên. Sau khi mở Android Studio, hãy tải Google Play Instant Development SDK xuống từ thẻ SDK Tools (Bộ công cụ SDK) trong SDK Manager (Trình quản lý SDK).
Cài đặt qua 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ử trải nghiệm tức thì cục bộ, 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ì trong một loại sandbox SELinux đặc biệt để tăng cường bảo mật. Hộp cát này cho phép một nhóm nhỏ các quyền, cũng như các loại tương tác có giới hạn với các ứng dụng khác. Các phần sau đây sẽ giải thích chi tiết hơn về các đặ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 hỗ trợ phiên bản tức thì chỉ có thể sử dụng các quyền trong danh sách sau:
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BILLING
– Không dùng nữa kể từ Thư viện Thanh toán của Play 1.0.CAMERA
INSTANT_APP_FOREGROUND_SERVICE
– Chỉ có trong Android 8.0 (API cấp 26) trở lên.INTERNET
READ_PHONE_NUMBERS
– Chỉ có trong Android 8.0 (API cấp 26) trở lên.RECORD_AUDIO
VIBRATE
WAKE_LOCK
Xử lý các quyền phổ biến không được hỗ trợ
Sau đây là danh sách các quyền phổ biến không được hỗ trợ mà bạn phải xoá khỏi ứng dụng của mình và đường dẫn di chuyển được đề xuất cho từng quyền:
ACCESS_WIFI_STATE
: Sử dụngACCESS_NETWORK_STATE
, cung cấp thông tin tương tự nhưACCESS_WIFI_STATE
.BILLING
: Đây là một 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ềncom.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 bộ nhớ ngoài; thay vào đó, hãy sử dụng bộ nhớ trong.com.google.android.c2dm.permission.RECEIVE
vàpermission.C2D_MESSAGE
: C2DM không được dùng nữa. Di chuyển sang Giải pháp gửi thông báo qua đám mây của Firebase (FCM). FCM không cần có thêm quyền nào để hoạt động.
Ngoài ra, gói ứng dụng hỗ trợ phiên bản tức thì không thể làm những việc sau:
- Sử dụng dịch vụ nền.
- Gửi thông báo khi chạy ở chế độ nền.
Quyền truy cập vào các ứng dụng đã cài đặt
Khi phát triển một phiên bản trải nghiệm tức thì, hãy lưu ý rằng phiên bản này không thể tương tác với các ứng dụng đã cài đặt trên thiết bị, trừ phi một trong những điều kiện sau đây được đáp ứ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
thànhtrue
– Phần tử này có sẵn 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 một bộ lọc ý định bao gồm
CATEGORY_BROWSABLE
. - Trải nghiệm tức thì đang gửi một ý định bằng cách sử dụng thao tác
ACTION_SEND
,ACTION_SENDTO
hoặcACTION_SEND_MULTIPLE
.
Định cấu hình dự á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 cẩn thận một số khía cạnh của gói ứng dụng hỗ trợ ứng dụng tức thì. Các phần sau đây mô tả những điểm cần cân nhắc này.
Khai báo phần phụ thuộc của dự án
Để sử dụng Google Play Instant APIs trong ứng dụng, hãy đưa nội dung khai báo sau vào 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 phải nhỏ hơn mã phiên bản của ứng dụng có thể cài đặt. Điều này là do người dùng sẽ chuyển từ trải nghiệm Google Play Instant sang 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 bản cập nhật ứng dụng.
Để đảm bảo rằng bạn đã làm theo lược đồ tạo phiên bản mà người dùng mong đợi, hãy thực hiện theo một trong các chiến lược sau:
- 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ể phát triển ứng dụng tức thì và ứng dụng có thể cài đặt trong hai dự án Android Studio riêng biệt. Tuy nhiên, nếu làm như vậy, bạn phải thực hiện như sau để phát hành ứng dụng của mình trên Google Play:
- Sử dụng cùng một tên gói trong cả hai dự án Android Studio.
- 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 về cách thiết lập phiên bản ứng dụng, hãy xem phần Tạo phiên bản cho ứng dụng.
Cập nhật phiên bản sandbox mục tiêu
Bạn cần cập nhật tệp AndroidManifest.xml
của ứng dụng tức thì để nhắm đến môi trường sandbox mà Google Play Instant hỗ trợ. Bạn có thể hoàn tất nội dung cập nhật này bằng cách thêm thuộc tính android:targetSandboxVersion
vào phần tử <manifest>
của ứng dụng, 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 các mô-đun ứng dụng có hỗ trợ ứng dụng 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 những phương thức sau:
Nếu có một gói ứng dụng hiện tại chỉ chứa một mô-đun cơ sở, bạn có thể hỗ trợ phiên bản tức thì cho gói ứng dụng đó như sau:
- 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.
- 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ì).
- 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.
- Nhấp vào OK.
Android Studio sẽ thêm 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 hiện tại chứa nhiều mô-đun, bạn có thể Tạo một mô-đun tính năng hỗ trợ phiên bản tức thì. Quy trình này cũng sẽ ngay lập tức kích hoạt mô-đun cơ sở của ứng dụng, cho phép bạn hỗ trợ nhiều điểm truy cập tức thì trong ứng dụng.
Thêm tính năng hỗ trợ đăng nhập
Nếu trải nghiệm tức thì cho phép người dùng đăng nhập, thì gói ứng dụng có hỗ trợ phiên bản tức thì của bạn phải hỗ trợ Smart Lock cho Mật khẩu trên Android. Nếu đang tạo một trò chơi "Chơi tức thì", bạn nên sử 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 mà các trải nghiệm tức thì chạy, 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()
, đây là UID do nhân được chỉ định cho quy trình của ứng dụng. - 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 tệp Network Security Config và đặt
cleartextTrafficPermitted
thànhfalse
. Trải nghiệm tức thì không hỗ trợ lưu lượng truy cập HTTP. Đối với các ứng dụng nhắm đến Android 9 trở lên, lưu lượng truy cập qua văn bản thô sẽ bị 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ủ ứng dụng theo định kỳ để tiến trình của người dùng đượ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 logic đượ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 với trải nghiệm tức thì hay không, 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, thì Google Play Instant cho phép bạn hiển thị lời nhắc trong phiên bản trải nghiệm tức thì, mời người dùng cài đặt phiên bản đầy đủ trên thiết bị của họ. Để hiển thị lời nhắc này, hãy sử dụng phương thức 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 thích trải nghiệm tức thì của bạn, người dùng có thể quyết định cài đặt ứng dụng của bạn. Để 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 phải được chuyển từ phiên bản trải nghiệm tức thì sang phiên bản đầy đủ của ứng dụng.
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
là 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. Để làm như vậy, hãy sử dụng một trong các API sau:
- Đối với những người dùng sử dụng thiết bị chạy Android 8.0 (API cấp 26) trở lên, hãy sử dụng Cookie API – ứng dụng mẫu
- Nế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 (API cấp 25) trở xuống, hãy 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 hỗ trợ ứng dụng tức thì.
Android Studio
Bằng Android Studio, bạn có thể tạo gói ứng dụng bằng cách chọn Build > Build Bundle(s) / APK(s) > Build Bundle(s) (Tạo > Tạo gói/tệp APK > Tạo gói). Để biết thêm thông tin về cách tạo dự án, hãy xem bài viết Tạo dự án.
Giao diện dòng lệnh
Bạn cũng có thể tạo gói ứng dụng từ dò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ử phiên bản 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ể kiểm thử trải nghiệm tức thì từ một trong những vị trí sau để xác minh chức năng:
- Cài đặt trên thiết bị cục bộ bằng Android Studio.
- Cài đặt trên thiết bị cục bộ bằng giao diện dòng lệnh.
- Phát hành lên kênh kiểm thử nội bộ trên Google Play Console.
Android Studio
Để kiểm thử trải nghiệm tức thì của ứng dụng trên máy cục bộ bằng Android Studio, hãy hoàn tất các bước sau:
- Nếu bạn đã cài đặt một phiên bản ứng dụng trên thiết bị thử nghiệm, hãy gỡ cài đặt phiên bản đó.
- Trong Android Studio, trong các lựa chọn cài đặt xuất hiện trên thẻ General (Chung) của hộp thoại Run/Debug Configurations (Cấu hình chạy/gỡ lỗi), hãy bật hộp đánh dấu Deploy as instant app (Triển khai dưới dạng ứng dụng tức thì).
- Chọn Run > Run (Chạy > Chạy) trong thanh trình đơn hoặc nhấp vào Run (Chạy)
trong thanh công cụ, sau đó chọn thiết bị mà bạn muốn kiểm thử trải nghiệm tức thì của ứng dụng. Ứng dụng tức thì của bạn sẽ tải trên thiết bị kiểm thử 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ột máy cục bộ bằng dòng lệnh, hãy hoàn tất các bước sau:
- Nếu bạn đã cài đặt một phiên bản ứng dụng trên thiết bị thử nghiệm, hãy gỡ cài đặt phiên bản đó.
- Tải ứng dụng tức thì lên thiết bị kiểm thử và chạy ứng dụng đó bằng cách nhập lệnh sau:
ia run output-from-build-command
Kênh kiểm thử nội bộ
Để kiểm thử trải nghiệm tức thì của ứng dụng trên Cửa hàng Play hoặc một biểu ngữ trên trang web của bạn, hãy xuất bản ứng dụng lên kênh kiểm thử nội bộ 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:
- Tải gói ứng dụng lên bằng cách làm theo các bước trong hướng dẫn Tải gói ứng dụng lên Play Console.
- Chuẩn bị gói đã tải lên cho một bản phát hành lên kênh kiểm thử nội bộ. Để 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.
Đă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 trải nghiệm tức thì từ một trong các nền tảng sau:
- Nút Thử ngay trong trang thông tin của ứng dụng trên Cửa hàng Play.
- Đường liên kết 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
Để xuất bản gói ứng dụng có thể chạy tức thì, hãy hoàn tất các bước sau:
- Nếu chưa làm, hãy ký gói ứng dụng bằng khoá phát hành và tải gói ứng dụng lên Play Console.
- Trong Play Console, hãy mở Quản lý bản phát hành > Ứng dụng tức thì Android, sau đó chuyển đến kênh phát hành công khai ứng dụng tức thì.
- Chọn Cập nhật từ thư viện, sau đó chọn gói ứng dụng có hỗ trợ ứng dụng tức thì mà bạn đã tải lên.
Chọn nơi xuất bản phiên bản trải nghiệm tức thì
Bạn có thể ra mắt trải nghiệm tức thì của ứng dụng ở một số quốc gia và khu vực nơi người dùng có thể cài đặt ứng dụng của bạn. Tính 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 ở một số 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: Xây dựng ứng dụng tức thì bằng gói ứng dụng
- Tìm hiểu cách thêm trải nghiệm tức thì vào Android App Bundle trong phiên này của Hội nghị Nhà phát triển Android 2018.
- Video: Phát hành các ứng dụng nhỏ hơn nhờ Android App Bundle
- Tìm hiểu cách gói ứng dụng giúp bạn phát triển ứng dụng nhanh hơn và tạo tệp APK nhỏ hơn cho người dùng.
- Lớp học lập trình: Android App Bundle đầu tiên của bạn
- Hướng dẫn từng bước để tạo Android App Bundle và thêm các tính năng vào đó.
- Đị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 một gói ứng dụng từ mã và tài nguyên của ứng dụng.