2012-01-06 10 views
5

Wiem, że istnieje wiele pytań na temat wielu wersji Androida odnoszących się do wersji bezpłatnej/płatnej, ale to może być trochę inaczej.Jak wdrożyć wiele wersji Androida, aby korzystać z różnych bibliotek?

Moja aplikacja obecnie wykorzystuje AdMob do reklamowania i jest publikowana w sklepie Android Market oraz w sklepie Samsung App Store. Niestety, sklep Samsung będzie wymagał od każdego przejścia do własnej sieci reklamowej w przyszłości, Samsung AdHub. Zarówno AdMob, jak i AdHub mają własne biblioteki, własne pakiety SDK.

Szukam rozwiązania do budowy 2 różnych wersji, w tym AdMob, w tym AdHub (i całego niezbędnego kodu). Jakie mam rozwiązania, aby w łatwy sposób zbudować 2 wersje bez większych kłopotów, gdy nadejdzie nowa wersja?

Wiele rozwiązań zaleca przeniesienie głównego projektu do projektu biblioteki, a następnie utworzenie 2 innych aplikacji, które obejmują projekt biblioteki (projekt podstawowy). Ale nie przepadam za tym rozwiązaniem (wolę zachować aplikację w jednym projekcie, jeśli to możliwe) i próbuję szukać alternatyw, a następnie decyduję o tym, który z nich jest lepszy dla moich potrzeb.

+0

Jako prośba poboczna, osoba, która może odpowiedzieć na to pytanie, bierze również pod uwagę możliwość tworzenia wielu aplikacji z tego samego źródła, np. "Lite" i "premium", gdzie kod źródłowy jest taki sam, ale tylko włączony przełącznik czasu kompilacji. To wygląda jak pytanie ant: -/ –

+0

Jeśli pójdziesz na ścieżkę biblioteki, możesz po prostu zachować cały kod i zasoby w bibliotece i po prostu mieć inny plik manifestu w projektach końcowych. Następnie kod może to sprawdzić w inny sposób, niż powinien. Zapobiega to wszystkim problemom, na które można natknąć się w przypadku błędów i organizacji, które mają rozłożony kod, ale nadal pozwala tworzyć osobne aplikacje behawioralne bez konieczności modyfikowania stałej każdej kompilacji. –

Odpowiedz

1

Uważam, że powinieneś umożliwić to w swoim kodzie za pomocą wzoru projektu strategii. Jest dobrze ustawiony i można go przełączać przy dowolnym wyzwalaczu (nawet w czasie wykonywania). Jeśli utworzysz elewację dla każdego pliku jar, będziesz w stanie zmieniać zależności podczas budowania, mając ten sam kod źródłowy.

Inną opcją z tą metodą jest po prostu konfiguracja w aplikacji, która określa, której biblioteki użyć.

+0

Mógłbyś być dokładniejszy, nie jestem pewien, o czym mówisz ... –

0

Projekty biblioteczne to droga. Utwórz podstawowy projekt, w którym zaimplementujesz wszystkie typowe elementy, a następnie utwórz dwa oddzielne projekty, które będą używać wspólnego jako "Biblioteka". po prostu zaimplementuj resztę, aby aplikacje zachowywały się inaczej.

+0

Albo po prostu zaimportuj dwie biblioteki i utwórz zasób flagi. Gdy ta flaga ma wartość 1, pe, załaduj reklamę AdMob, jeśli ma 2, załaduj reklamę Samsung. Proste ... –

+0

Tak jak powiedziałem, nie podoba mi się to rozwiązanie. Szukam alternatyw ... Jeśli to jedyne rozsądne rozwiązanie, pójdę z tym. Ale najpierw muszę mieć więcej opcji na stole, abym mógł poznać plusy i minusy każdego z nich. –

1

Sposób iść teraz jest użycie Android Studio i stosować różne smaki Gradle dla każdej aplikacji. Dlatego jeśli naprawisz podstawową funkcjonalność, możesz szybko utworzyć kompilację dla każdego sklepu z własną siecią reklamową.

Powiązane problemy