2014-11-03 4 views
6

Я хочу написать приложение для Android, которое может быть расширено с помощью модулей (андроидных библиотек). Модули должны загружаться во время выполнения. Поэтому они будут загружены с URL-адреса и сохранены в каталоге. Модули представляют собой файлы aar.Android загружает модули динамически

Есть ли способ загружать файлы aar динамически во время выполнения?

Я знаю, что можно просто загрузить содержащиеся классы.jar с помощью URLClassLoader. Но я не могу загрузить макет, строку, ... ресурсы. HM

Кто-нибудь знает способ, как это решить?

EDIT:

Я нашел несколько связанных темы:

Кажется, что он не работает из-за ответа от первого звена. Надеюсь, я ошибаюсь в этом.

+0

См. Mozilla firefox для android, вы можете загружать родной плагин динамически. – ceram1

+0

Удалось ли вам динамически загружать aar-файлы? Кажется, возможно только динамически загружать jar-файлы (поскольку у них нет ресурсов). – jayeffkay

+0

Нет, к сожалению, я не нашел способ загрузки aar-файлов динамически. Мне это не удавалось. Если вы найдете способ, я бы хотел его знать :) – boeserwolf91

ответ

0

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

Я нашел очень хорошую главу под названием «Шаблоны плагинов» на странице «The Busy Coder's Guide to Android Development». Я все еще читаю его, поэтому не могу сказать, покрывает ли он именно ваши потребности, но содержит много информации, которая может быть полезна для вашего дела.

Вот sample главу, найденный на книги веб-странице, так что у вас есть обзор того, что она охватывает

Для целей настоящей главы «модель плагина» относится к приложению (плагин «хост»), который расширяется другими приложениями (плагины ), которые в значительной степени посвящены этой работе.

Конечно, существует множество способов, которыми приложения могут работать вместе , не будучи плагином для другого. Веб-браузер пользователя не является плагином вашего приложения, когда вы вызываете startActivity() для просмотра веб-страницы, например, .

Напротив, приложение Locale может быть расширено через плагины, написанное либо на два сорок четыре часа (авторы Locale), либо третьи сторон. Эти плагины не имеют реальной ценности для пользователя, кроме , как они улучшают то, что может сделать сам Locale. Таким образом, такая структура, , является плагиновой моделью.

В частности, в этой главе основное внимание будет уделено двум основным сценариям желающей модель плагина, хотя другие, конечно, есть:

Вы хотите, чтобы позволить третьим сторонам расширить возможности вашего приложения, много, как два сорок 4 утра хотело с Locale, или Вы хотите, чтобы уменьшить количество разрешений в своем основном приложении делегируя некоторые разрешений плагин, так что пользователи могут «выбрать в» тех разрешения

Я надеюсь, что помогает немного.

Смежные вопросы