Projekt biblioteki Android jako plik jar do dystrybucji, jak Google Analytics

widziałemto pytanie i mam więcej wątpliwości dotyczących tworzenia pliku jar, który mogę rozpowszechniać i może być używany w dowolnych aplikacjach dla systemu Android.

Jakie są moje wymagania

Jak już powiedziałem, chcę zbudować i rozpowszechnić zamkniętą bibliotekę źródłową. Nie chcę, aby kod źródłowy był widoczny.W tej bibliotece nie chcę używać żadnych zasobów, układów, zasobów itp. Ale chcę użyć niektórych specyficznych kodów dla Androida, takich jakuzyskanie identyfikatora urządzenia z systemem Android.

Najpopularniejsza odpowiedź w powyższym powiązanym pytaniu SO mówiutwórz zwykły projekt Java i zaimportuj do niego android.jar. Próbowałem to zrobić, ale nie wiem, jak dodać android.jar do dowolnego projektu java. Chciałbym też uzyskać pewne wyjaśnienia na ten temat.

Ponadto chciałbym wiedzieć, czy są jakieś inne metody wykorzystujące sam Android SDK (bez użycia projektu java) utworzyć zamknięty plik źródłowy biblioteki jar.

Myślę, że to, czego chcę, jest możliwe, ponieważGoogle Analytics dla aplikacji natywnych dla Androida zdaje się to zrobić. Jestem pewien, że w rozpowszechnianym przez nich pliku .jar używają specyficznych kodów Androida, ponieważ nie ma innego sposobu, aby uzyskać informacje o urządzeniu w przeglądarce analitycznej.

EDYCJA: CZY KTOŚ MOŻE SPOWODOWAĆ TO?

Myślę, że poczyniłem pewne postępy. To właśnie zrobiłem

Utworzono regularny projekt dla systemu Android (nie projekt biblioteki, znacznik „is Library” jest odznaczony)

W projekcie zakodowałem moją logikę. Używa niektórych klas specyficznych dla Androida, takich jakSharedPreference, UUID, PackageManager. Ale nic związanego z aktywami, układami również nie rozszerza klasyActivity. Rozszerzenie klasy javajava.lang.object

Wyeksportowano projekt za pomocąProject-> rightclick-> export-> Java-> JAR. Na następnym ekranie odznaczyłem pole wyboru obokAndroidManifest.xml. Ustaw katalog docelowy do eksportu i kliknij trzykrotnie, zachowując ustawienia domyślne. Potem kliknąłem Finish i dostałem pięknylibMyLibraryName.jar na moim pulpicie.

Potem stworzyłem inny projekt na Androida, dodałem tolibMyLibraryName.jar do nowego projektu za pomocąproject-> rightclick-> properties-> java build path -> libraries-> dodaj zewnętrzny jar.

Próbowałem użyć mojej klasy w bibliotece, w moim nowym projekcie

MyLibraryClass objClass = new MyLibraryClass(this);

Udało mi się skompilować i uruchomić. Wysłałem nawet bibliotekę do jednego z moich współpracowników, który był w stanie korzystać z biblioteki w swoim komputerze (tylko upewnienie się, że projekt biblioteki w moim obszarze roboczym nie wpłynie na jego wykorzystanie).

Teraz mam 2 pytania.

1) Moje pierwsze pytanie brzmi: co oznaczają termin „prawdziwa biblioteka” w podanej poniżej dokumentacji? Czy jest to jakikolwiek inny projekt java dla Androida, który można wyeksportować do pliku JAR?

Jednakprojekt biblioteczny różni się od standardowego projektu aplikacji na Androida tym, że nie można go skompilować bezpośrednio do własnego .apk i uruchomić go na urządzeniu z Androidem.Podobnie nie można wyeksportować projektu biblioteki do samodzielnego pliku JAR, jak zrobiłbyś to dla aprawdziwa biblioteka. Zamiast tego musisz skompilować bibliotekę pośrednio, odwołując się do biblioteki w aplikacji zależnej i budując tę ​​aplikację.

Cóż, ta część pochodzi zdokumentacja w tytule „Projekty biblioteczne”.

2) Moje drugie pytanie brzmi: czy coś jest nie tak ze sposobem, w jaki stworzyłem plik JAR? Jakieś pułapki, które mogą mnie później ugryźć? Chciałbym się upewnić, że nie robię czegoś strasznie złego, zanim użyję go w moich ważnych projektach.

Mogę dodać, że nie próbowałem metody tworzenia projektu JAVA i importowaniaandroid.jar. Jestem gotów spróbować tego, jeśli to, co zrobiłem obecnie, jest złe.

questionAnswers(1)

yourAnswerToTheQuestion