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.
Nếu vẫn đang dùng trình bổ trợ Tính năng Android cho Gradle (com.android.feature
) đã ngừng hoạt động cho các mô-đun Ứng dụng Android tức thì, bạn cần di chuyển sang dùng trình bổ trợ ứng dụng cơ sở (com.android.application
) và trình bổ trợ Tính năng động (com.android.dynamic-feature
).
Trên trình bổ trợ Android cho Gradle phiên bản 3.3.0 trở lên, trình bổ trợ ứng dụng cơ sở có hỗ trợ cho trải nghiệm tức thì. Tức là nếu mô-đun ứng dụng cơ sở đáp ứng các yêu cầu để trở thành một trải nghiệm tức thì, thì bạn sẽ tự động nhận được lợi ích. Sau đó, bạn có thể thêm các tính năng khác mà người dùng có thể tải xuống theo yêu cầu dưới dạng trải nghiệm tức thì bằng cách sử dụng trình bổ trợ Dynamic Feature. Chế độ thiết lập này giúp bạn dễ dàng hỗ trợ cả trải nghiệm ứng dụng đã cài đặt và ứng dụng tức thì từ một dự án duy nhất, đồng thời cho phép bạn hưởng lợi từ việc xuất bản bằng Android App Bundle.
Bảng sau đây mô tả rõ hơn về những trình bổ trợ mà bạn sẽ di chuyển sang:
Mô tả về mô-đun | Trình bổ trợ cũ | Trình bổ trợ hiện tại |
---|---|---|
Mô-đun chứa mã, tài nguyên và chức năng cơ bản cho trải nghiệm ứng dụng đã cài đặt hoặc ứng dụng tức thì. | com.android.feature (với baseFeature = true )
|
com.android.application
Lưu ý: Mô-đun này chứa tất cả thông tin về tệp kê khai và thông tin đăng nhập cần thiết để tạo và đóng gói ứng dụng của bạn dưới dạng Android App Bundle hoặc APK. |
Các tính năng bổ sung, theo mô-đun mà người dùng có thể tải xuống theo yêu cầu | com.android.feature |
com.android.dynamic-feature (với dist:instant="true" và dist:onDemand="false" trong tệp kê khai của mô-đun) |
Mã và tài nguyên cho một tính năng chỉ có trong phiên bản đã cài đặt của ứng dụng. | com.android.application |
com.android.dynamic-feature (với dist:instant="false" và dist:onDemand="false" trong tệp kê khai của mô-đun) |
Trang này hướng dẫn cách di chuyển dự án ứng dụng tức thì hiện có để tạo một Android App Bundle có hỗ trợ ứng dụng tức thì. Tài liệu này cũng mô tả cách tạo, kiểm thử và xuất bản một Android App Bundle có hỗ trợ ứng dụng tức thì.
Nếu bạn đang tạo trải nghiệm tức thì mới cho ứng dụng, hãy đọc bài viết Tạo mô-đun tính năng hỗ trợ phiên bản tức thì.
Tìm hiểu về những thay đổi
Khi bạn di chuyển dự án để thay vào đó sử dụng trình bổ trợ Dynamic Feature, Android App Bundle sẽ cung cấp một cách thức mới để tạo và xuất bản ứng dụng, giúp đơn giản hoá đáng kể việc phân phối các tệp APK được tối ưu hoá cho người dùng.
Gói ứng dụng giúp đơn giản hoá quy trình phân phối bằng cách đóng gói tất cả tài nguyên và mã đã biên dịch của ứng dụng để tải lên, nhưng trì hoãn việc tạo tệp APK và ký vào Google Play. Sau đó, mô hình phân phát ứng dụng mới của Google Play sẽ sử dụng gói ứng dụng của bạn để tạo và phân phát các tệp APK được tối ưu hoá cho cấu hình thiết bị của mỗi người dùng, nhờ đó, họ chỉ tải xuống mã và tài nguyên cần thiết để chạy ứng dụng của bạn. Bạn không còn phải tạo, ký và quản lý nhiều tệp APK để hỗ trợ các thiết bị khác nhau, đồng thời người dùng sẽ tải xuống các tệp nhỏ hơn và được tối ưu hoá hơn.
Khi sử dụng trình bổ trợ tính năng hiện không được dùng nữa, việc tạo một ứng dụng tức thì đòi hỏi bạn phải tạo một mô-đun tính năng cơ sở chứa mã và tài nguyên dùng chung cho tất cả các mô-đun, kể cả mô-đun ứng dụng tức thì. Phần còn lại của mã được đưa vào nhiều mô-đun tính năng không phải cơ sở, trong đó có các điểm truy cập cho trải nghiệm tức thì. Đối với phiên bản đã cài đặt của ứng dụng, dự án của bạn có thể đã bao gồm một mô-đun ứng dụng riêng biệt, chỉ chứa mã và các hoạt động cần thiết cho ứng dụng đã cài đặt.
Khi bạn di chuyển ứng dụng để hỗ trợ Android App Bundle, mô-đun ứng dụng sẽ lấy lại vai trò của mô-đun cơ sở và bạn sẽ sắp xếp các trải nghiệm tức thì hoặc đã cài đặt khác dưới dạng mô-đun tính năng. Tức là dự án của bạn hiện giống với một dự án ứng dụng tiêu chuẩn hơn, có mô-đun cơ sở hỗ trợ phiên bản tức thì và khả năng thêm các trải nghiệm tức thì theo mô-đun khác.
Để di chuyển dự án ứng dụng tức thì hiện có và áp dụng mô hình phân phối được tối ưu hoá hơn của Android App Bundle, hãy làm theo các bước được mô tả trong các phần bên dưới.
Chuyển đổi mô-đun tính năng cơ bản thành mô-đun ứng dụng
Trước tiên, bạn cần chỉnh sửa tệp build.gradle
của mô-đun tính năng cơ sở trước khi chuyển đổi tệp này thành mô-đun ứng dụng chính, như sau:
- Xoá dòng
baseFeature true
. Xoá mọi phần phụ thuộc sử dụng cấu hình phần phụ thuộc
feature
hoặcapplication
.Groovy
dependencies { ... // delete any lines that look like // feature project(":foo") // feature project(":bar") // application project(":app") }
Kotlin
dependencies { ... // delete any lines that look like // feature(project(":foo")) // feature(project(":bar")) // application(project(":app")) }
Di chuyển
applicationId
cùng với mọi cấu hình tập lệnh bản dựng khác mà bạn muốn có trong mô-đun ứng dụng cơ sở, từ mô-đuncom.android.application
hiện tại sang mô-đuncom.android.feature
. Dưới đây là một số ví dụ. Đối với bước này, tuỳ thuộc vào chế độ thiết lậpbuild.gradle
cụ thể, bạn có thể sao chép và dán khốiandroid
củabuild.gradle
từ mô-đun ứng dụng trước vào tệpbuild.gradle
của mô-đun ứng dụng mới. Tuy nhiên, bạn nên thận trọng khi làm như vậy.Groovy
android { ... defaultConfig { // You need to move the application ID from the app module // to your feature module. applicationId "com.example.myapp" ... } // Some additional build configurations you might want to // copy from your current ‘app’ module may include ProGuard // rules and code shrinking settings. buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile( 'proguard-android-optimize.txt'), 'proguard-rules.pro' } } }
Kotlin
android { ... defaultConfig { // You need to move the application ID from the app module // to your feature module. applicationId = "com.example.myapp" ... } // Some additional build configurations you might want to // copy from your current ‘app’ module may include ProGuard // rules and code shrinking settings. buildTypes { getByName("release") { minifyEnabled = true proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } }
Đánh dấu mô-đun tính năng là có thể truy cập tức thì bằng cách thêm các thẻ phân phối gói thích hợp vào tệp kê khai, như minh hoạ bên dưới.
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" /> ... </manifest>
Chuyển đổi mô-đun tính năng thành mô-đun ứng dụng cơ sở bằng cách thay đổi loại trình bổ trợ thành
com.android.application
:Groovy
// Replace "plugins { id 'com.android.feature' }" // with the following plugins { id 'com.android.application' }
Kotlin
// Replace "plugins { id("com.android.feature") }" // with the following plugins { id("com.android.application") }
Chuyển đổi mô-đun ứng dụng cũ thành mô-đun tính năng tại thời điểm cài đặt
Nếu không có mã hoặc tài nguyên nào trong mô-đun ứng dụng cũ, bạn chỉ cần xoá mô-đun đó vì các bước bạn đã làm theo trong phần trước đã chuyển đổi mô-đun tính năng thành mô-đun ứng dụng cơ sở của ứng dụng.
Tuy nhiên, nếu bạn có mã và tài nguyên trong mô-đun ứng dụng cũ thể hiện chức năng mà bạn muốn người dùng sử dụng được khi họ cài đặt ứng dụng, hãy làm theo các bước trong phần này để chuyển đổi mô-đun ứng dụng thành mô-đun tính năng.
Việc tạo một mô-đun tính năng bao gồm thay đổi loại trình bổ trợ từ com.android.application
thành com.android.dynamic-feature
, cùng với một số thay đổi khác về build.gradle
, như sau:
Thay đổi loại trình bổ trợ từ
com.android.application
thànhcom.android.dynamic-feature
.Groovy
// Replace "plugins { id 'com.android.feature' }" // with the following: plugins { id 'com.android.dynamic-feature' }
Kotlin
// Replace "plugins { id("com.android.application") }" // with the following: plugins { id("com.android.dynamic-feature") }
Như mô tả trong phần trước, hãy đảm bảo bạn đã di chuyển các cấu hình bản dựng mà trình bổ trợ
com.android.application
yêu cầu sang mô-đun ứng dụng cơ sở, chẳng hạn như các quy tắcapplicationId
hoặcproguardFiles
.Đổi tên mô-đun thành "installed_feature" (hoặc tên tương tự) như sau:
- Mở ngă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 tính năng rồi chọn Refactor > Rename (Tái cấu trúc > Đổi tên).
- Trong hộp thoại xuất hiện, hãy chọn Rename module (Đổi tên mô-đun) rồi nhấp vào OK.
- Nhập tên mới cho mô-đun rồi nhấp vào OK.
Tương tự như bước 3, hãy đổi tên mô-đun ứng dụng mới mà bạn đã tạo trong phần trước thành "app" hoặc một tên tương tự.
Thêm một phần phụ thuộc triển khai vào mô-đun "app" trong tệp
build.gradle
của mô-đun tính năng, như minh hoạ bên dưới.Groovy
dependencies { ... // In the feature module, add an implementation dependency // on the base app module. implementation project(":app") }
Kotlin
dependencies { ... // In the feature module, add an implementation dependency // on the base app module. implementation(project(":app")) }
Thêm tính năng này vào tệp
build.gradle
của mô-đun ứng dụng mới.Groovy
android { ... // In the base app module, specify each feature module. dynamicFeatures = [":installed_feature"] }
Kotlin
android { ... // In the base app module, specify each feature module. dynamicFeatures.addAll(listOf(":installed_feature")) }
Trong tệp kê khai của mô-đun tính năng, hãy đánh dấu mô-đun tính năng là một mô-đun có thể cài đặt bằng cách thêm các thẻ phân phối gói thích hợp vào tệp kê khai.
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="false" dist:onDemand="false" dist:title="@string/title_dynamic_feature"> <dist:fusing dist:include="true" /> </dist:module> ... </manifest>
Chuyển đổi các mô-đun tính năng khác thành mô-đun tính năng hỗ trợ phiên bản tức thì
Nếu đã chia thêm chức năng của ứng dụng thành nhiều mô-đun Tính năng, bạn cần làm theo các bước trong phần này để chuyển đổi những mô-đun đó thành mô-đun tính năng hỗ trợ phiên bản tức thì.
Đối với từng mô-đun tính năng còn lại trong dự án, hãy tiến hành như sau để chuyển đổi chúng thành các tính năng có hỗ trợ phiên bản tức thì:
Thay đổi loại trình bổ trợ trong tệp
build.gradle
thànhcom.android.dynamic-feature
, như minh hoạ dưới đây:Groovy
// Replace 'com.android.feature' with 'com.android.dynamic-feature' plugins { id 'com.android.dynamic-feature' }
Kotlin
// Replace "com.android.feature" with "com.android.dynamic-feature" plugins { id("com.android.dynamic-feature") }
Đánh dấu từng mô-đun tính năng là có hỗ trợ phiên bản tức thì bằng cách thêm đoạn mã sau vào tệp kê khai.
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution"> <dist:module dist:instant="true" dist:onDemand="false" dist:title="@string/title_dynamic_feature"> <dist:fusing dist:include="true" /> </dist:module> ... </manifest>
Thêm mô-đun tính năng vào tệp
build.gradle
của mô-đun ứng dụng mới, nơi bạn đã thêminstalled_feature
vào danh sách mô-đun tính năng.Groovy
android { ... dynamicFeatures = [":installed_feature", ":feature_1", ":feature_2"] // or whichever name exists for the instant enabled feature module }
Kotlin
android { ... dynamicFeatures.addAll(listOf(":installed_feature", ":feature_1", ":feature_2")) // or whichever name exists for the instant enabled feature module }
Tạo, kiểm thử và phát hành gói ứng dụng mới có hỗ trợ phiên bản tức thì
Sau khi hoàn tất các bước trên trang này, dự án của bạn có thể tạo ra một cấu phần phần mềm duy nhất (Gói ứng dụng Android). Bạn có thể dùng cấu phần phần mềm này để xuất bản cả phiên bản đã cài đặt và phiên bản tức thì của ứng dụng lên Google Play Console, đồng thời triển khai riêng cho các kênh tức thì và đã cài đặt. Ngoài ra, với app bundle, bạn sẽ được hưởng lợi từ việc phân phát các tệp APK được tối ưu hoá cho từng cấu hình thiết bị của người dùng, nhờ đó, họ chỉ tải mã và tài nguyên mà họ cần để chạy ứng dụng của bạn. Tức là bạn không còn phải tạo, ký và quản lý nhiều tệp APK để hỗ trợ các thiết bị khác nhau, đồng thời người dùng sẽ tải xuống các tệp nhỏ hơn và được tối ưu hoá hơn.
Để bắt đầu tạo và kiểm thử gói ứng dụng có hỗ trợ ứng dụng tức thì, hãy chuyển đến phần Tạo gói ứng dụng.