Android динамическое связывание. Думая о принудительных обновлениях

1

Мне было интересно, возможно ли это. Скажем, я отделил свое приложение от "Библиотечного загрузчика" и "Библиотеки", где часть библиотеки может быть загружена "загрузчиком библиотеки" с моего сервера.

Таким образом, мне не нужно полагаться на пользователей для установки обновлений для моего приложения.

Я понимаю, это возможно не возможно, но все-таки интересно, что вы все знаете :)

Это внутреннее бизнес-приложение и постоянно обновляет боль. Я бросаю уведомления пользователю и т.д., И по-прежнему существует проблема, вынуждающая пользователя обновляться.

Теги:

2 ответа

0
Лучший ответ

Да, я считаю, что это возможно. Swype/Swype Installer работает таким образом. Вы можете исследовать его.

Из того, что я помню:

Вы устанавливаете установщик Swype из APK, а затем запускаете его.

Программа установки загружает Swype APK и сопровождает вас через системные диалоги для установки и включения Swype.

Когда Swype решит, что ваш бета-ключ истек или что-то еще, он отключает себя, а затем вы обновляете установщик.

Это вовсе не динамическая связь, а система поддержки принудительных обновлений.

Обновить:

Сообщение в блоге от Google рассказывает о динамической загрузке классов здесь:

http://android-developers.blogspot.com/2011/07/custom-class-loading-in-dalvik.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+blogspot%2FhsDu+%28Android+Developers+Blog% 29

  • 0
    Спасибо! К сожалению, это не поможет. Я даю пользователю уведомление, на которое они могут щелкнуть и перейти непосредственно к Market и Update. Так что, если я не могу сделать это молча - нет разницы ..
  • 0
    Хм, это сообщение в группе разработчиков Google Android интересно для этого вопроса: groups.google.com/group/android-developers/browse_thread/thread/… Это говорит об этом: en.wikipedia.org/wiki/OSGi
Показать ещё 2 комментария
0

Возможно, и если у вас есть root-доступ, конечно, хотя то, о чем я думаю, потребует NDK. Когда вы загружаете данные с помощью NDK, это выполняется динамически. Поэтому, если вы замените эту библиотеку, она, очевидно, обновит функциональность.

Тем не менее, я вижу много возможных проблем с этим. Самый большой из которых - я не уверен, что у вас есть доступ на запись, где хранится ваша библиотека (как только приложение будет установлено в любом случае). Но я не уверен в этом. Папка -/data/data/(имя пакета)/lib. Я знаю, что у вас есть ограниченный доступ к родительскому элементу этой папки (как это там, где хранится ваша база данных).

  • 1
    Без root у вас нет прав на запись туда, куда помещается упакованная библиотека NDK во время установки, но вы не ограничены только загрузкой библиотек из этого места - вы можете поместить их в местоположение, найденное Context.getDir () или Context. getFilesDir () и затем загрузите их, используя полный путь и имя файла .so, используя System.load () вместо System.loadLibrary ().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню