这个问题好像从来没有人回答过,所以如果其他人正在搜索它,你可以去:
生成 Instant App 的新推荐方法是通过 Instant Enabled App Bundles。 (详见Google Developer文档)
基本上,您需要先构建一个应用“捆绑包”。为此,有许多步骤,但基本上您需要使您的应用程序在建议的大小限制(10 MB)内,并确保您没有使用任何不受支持的权限。如果您正在使用更大的应用程序,最好的方法是将您的功能模块化,并且只包含您希望“即时”的功能。您的应用程序的此“即时”版本将是一个单独的 Flavor,您可以从那里将以下内容添加到与您的应用程序的即时应用程序版本相对应的清单中。
<manifest ... xmlns:dist="http://schemas.android.com/apk/distribution">
<dist:module dist:instant="true" />
...
</manifest>
完成此操作后,如果您想使用 CLI/Terminal 进行构建,则需要使用应用程序的新 bundle 版本进行构建。你可以运行./gradlew tasks 来查看你有哪些可用的选项,或者只运行./gradlew bundle 来运行它们。
接下来,要进行测试以确保您的 app bundle 正确完成,您将需要更多工具。 bundletool(由 Google here 提供)和 ia 工具,位于您的 $ANDROID_HOME/extras/google/instantapps/ 目录中。 (只需在你的路径上拍打它或有一个别名指向它)。
使用这两种工具后,您将需要访问免安装应用的签名密钥。我还没有尝试过,但您可能可以使用debug 签名密钥进行测试。只是为了快速演示如何使用CLI 构建密钥,这里是:
apksigner sign --ks my-instant-app-key.jks --out my-app-release.apk my-app-unsigned-aligned.apk
注意:请勿将其用于生产,这只是演示。
现在,我们可以为我们的 app bundle 构建 APK 并对其进行签名。
$ java -jar bundletool-all-*.jar build-apks \
//1
--bundle=app.aab \
//2
--output=app.apks \
//3
--connected-device \
//4
--ks=your-keystore-path \
//5
--ks-pass=pass:your-keystore-password \
//6
--ks-key-alias=your-key-alias \
//7
--key-pass=pass:your-key-password
注意:以上摘自以下tutorial。
接下来,通过运行以下命令检查您的免安装应用是否正确完成:
ia check instant-app.apks
apks 末尾的 s 不是拼写错误。如果全部签出,您可以使用以下命令运行应用程序:
ia run instant-app.apks
希望这会有所帮助!