Мне было интересно, возможно ли это. Скажем, я отделил свое приложение от "Библиотечного загрузчика" и "Библиотеки", где часть библиотеки может быть загружена "загрузчиком библиотеки" с моего сервера.
Таким образом, мне не нужно полагаться на пользователей для установки обновлений для моего приложения.
Я понимаю, это возможно не возможно, но все-таки интересно, что вы все знаете :)
Это внутреннее бизнес-приложение и постоянно обновляет боль. Я бросаю уведомления пользователю и т.д., И по-прежнему существует проблема, вынуждающая пользователя обновляться.
Да, я считаю, что это возможно. Swype/Swype Installer работает таким образом. Вы можете исследовать его.
Из того, что я помню:
Вы устанавливаете установщик Swype из APK, а затем запускаете его.
Программа установки загружает Swype APK и сопровождает вас через системные диалоги для установки и включения Swype.
Когда Swype решит, что ваш бета-ключ истек или что-то еще, он отключает себя, а затем вы обновляете установщик.
Это вовсе не динамическая связь, а система поддержки принудительных обновлений.
Обновить:
Сообщение в блоге от Google рассказывает о динамической загрузке классов здесь:
Возможно, и если у вас есть root-доступ, конечно, хотя то, о чем я думаю, потребует NDK. Когда вы загружаете данные с помощью NDK, это выполняется динамически. Поэтому, если вы замените эту библиотеку, она, очевидно, обновит функциональность.
Тем не менее, я вижу много возможных проблем с этим. Самый большой из которых - я не уверен, что у вас есть доступ на запись, где хранится ваша библиотека (как только приложение будет установлено в любом случае). Но я не уверен в этом. Папка -/data/data/(имя пакета)/lib. Я знаю, что у вас есть ограниченный доступ к родительскому элементу этой папки (как это там, где хранится ваша база данных).