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:
ACCESS_COARSE_LOCATION
ACCESS_FINE_LOCATION
ACCESS_NETWORK_STATE
BILLING
– Không dùng nữa kể từ Play Thư viện Billing 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 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ụngACCESS_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ề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 ứng dụng bên ngoài bộ nhớ; 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. 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:
- Sử dụng dịch vụ nền.
- Gửi thông báo khi đang chạy trong nền.
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ớitrue
– Phầ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ặcACTION_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:
- 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 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:
- 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 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
đếnfalse
. 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:
- Cài đặt trên một thiết bị cục bộ bằng Android Studio.
- Cài đặt trên một thiết bị cục bộ bằng cách sử dụng dòng lệnh giao diện.
- Xuất bản lên kênh kiểm thử nội bộ trên Google Play Console.
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:
- 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ó.
- 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.
- 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:
- 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ó.
- 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:
- 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.
- 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.
Đă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:
- 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 key và tải gói ứng dụng lên Play Console.
- 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ì.
- 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.