2014-11-03 12 views
6

Chcę napisać aplikację na Androida, która może być rozszerzona o moduły (biblioteki android). Moduły będą ładowane w czasie wykonywania. Dlatego zostaną pobrane z adresu URL i zapisane w katalogu. Moduły są plikami aar.Moduły ładujące Androida dynamicznie

Czy istnieje sposób na dynamiczne ładowanie plików aar w czasie wykonywania?

Wiem, że możliwe jest załadowanie zawartego pliku classes.jar za pomocą obiektu URLClassLoader. Ale nie mogę załadować układu, łańcucha, ... zasobów. HM

Czy ktoś wie, jak rozwiązać ten problem?

EDIT:

Znalazłem kilka tematów pokrewnych:

Wygląda na to, że nie działa z powodu odpowiedzi z pierwszego linku. Mam nadzieję, że myliłem się z tym myśleniem.

+0

Zobacz mozilla firefox dla Androida, możesz załadować rodzimą wtyczkę dynamicznie. – ceram1

+0

Czy kiedykolwiek udało ci się dynamicznie ładować pliki aar? Wydaje się możliwe dynamiczne ładowanie plików jar (ponieważ nie mają zasobów). – jayeffkay

+0

Nie, niestety nie znalazłem sposobu na dynamiczne ładowanie plików aar. Nie udało mi się z tym. Jeśli znajdziesz sposób, chciałbym go poznać :) – boeserwolf91

Odpowiedz

0

Mam podobny problem. Chcę dodać wtyczki w czasie wykonywania bez zmuszania użytkownika do ponownej instalacji aplikacji.

Znalazłem bardzo dobry rozdział o nazwie "Wzory wtyczek" w książce "The Busy Coder's Guide to Android Development". Nadal go czytam, więc nie mogę powiedzieć, czy to dokładnie pokrywa twoje potrzeby, ale zawiera mnóstwo informacji, które mogą być przydatne w twojej sprawie.

Oto sample rozdziału, zamieszczone na stronie książki internetowych, więc masz przegląd tego, co obejmuje

Dla celów niniejszego rozdziału, „model wtyczki” odnosi się do aplikacji (wtyczka "host"), która jest rozszerzana przez inne aplikacje ("wtyczki" ), które są w dużej mierze przeznaczone dla tego zadania.

Oczywiście istnieje wiele sposobów na to, że aplikacje mogą współpracować ze sobą, bez jednej wtyczki do drugiej. Przeglądarka internetowa użytkownika nie jest wtyczką aplikacji po wywołaniu funkcji startActivity() w celu wyświetlenia na przykład strony sieci Web, np. .

Natomiast aplikacja Locale może być rozszerzana za pomocą wtyczek napisanych przez dwie czterdzieści cztery osoby (autorów Locale) lub trzecią stronę . Te wtyczki nie mają wartości rzeczywistej dla użytkownika innego niż przez , w jaki sposób poprawiają to, co może zrobić sam język. Ten rodzaj struktury, , kwalifikuje się zatem jako model wtyczki.

W szczególności, niniejszy rozdział skoncentruje się na dwóch ogólnych scenariuszy chce model wtyczek, choć inni na pewno istnieje:

chcesz, aby osoby trzecie rozszerzenie możliwości aplikacji, ile dwa czterdziestu cztery am chciał z lokalizacji, czy chcesz zmniejszyć liczbę uprawnień w podstawowej aplikacji poprzez delegowanie niektórych uprawnienia do wtyczek, dzięki czemu użytkownicy mogą „zdecydować się” tymi uprawnieniami

mam nadzieję, że pomaga trochę.