Android-приложение автоматически загружает классы из загруженных APK-файлов? - PullRequest
0 голосов
/ 07 сентября 2018

Я пробую комплект приложений Android и модуль динамических функций. Динамический модуль будет встроен в отдельный APK из базового модуля.

Интересно, как мне использовать исходный код и классы из динамического модуля в базовом модуле? Будут ли классы автоматически загружаться библиотекой play.core после загрузки дополнительных APK из магазина Play? Нужно ли обрабатывать загрузку класса самостоятельно?

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете посмотреть пример динамических функций на GitHub .

В примере используется BaseSplitActivity, который переопределяет onAttachBaseContext следующим образом:

override fun attachBaseContext(newBase: Context?) {
    super.attachBaseContext(newBase)
    SplitCompat.install(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")
    // ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...