Android应用程序捆绑包是否会自动从下载的APK加载课程?

时间:2018-09-07 09:15:59

标签: android android-app-bundle

我正在尝试使用Android App Bundle和动态功能模块。动态模块将内置在与基本模块不同的APK中。

我想知道如何使用基本模块中动态模块的源代码和类?从Play商店下载其他APK后,play.core库会自动加载类吗?我需要自己处理课程吗?

1 个答案:

答案 0 :(得分:1)

您可以看看dynamic features sample on GitHub

该示例使用BaseSplitActivity,它像这样覆盖onAttachBaseContext

override fun attachBaseContext(newBase: Context?) {
    super.attachBaseContext(newBase)
    SplitCompat.install(this)
}

这可以确保在活动启动时正确安装了新下载的拆分。

对于资产,您必须创建一个新的包上下文like this

private fun displayAssets() {
    // Get the asset manager with a refreshed context, to access content of newly installed apk.
    val assetManager = createPackageContext(packageName, 0).assets
    // Now treat it like any other asset file.
    val assets = assetManager.open("assets.txt")
    // ...
}