Android-Bibliotheksprojekt als JAR-Datei zur Verteilung, wie Google Analytics

ich habe gesehendiese frage und habe noch ein paar zweifel bezüglich der erstellung einer jar datei die ich verteilen kann und die in allen android anwendungen verwendet werden kann.

Was ist meine Anforderung

Wie gesagt, ich möchte eine geschlossene Quellbibliothek erstellen und verteilen. Ich möchte nicht, dass der Quellcode sichtbar ist.In dieser Bibliothek möchte ich keine Assets, Layouts, Ressourcen usw. verwenden. Aber ich möchte einige androidspezifische Codes verwenden, wie zAbrufen der Android-Geräte-ID

Die beliebteste Antwort in der oben verlinkten SO-Frage lautet:erstelle ein reguläres Java Projekt und importiere android.jar darin. Das habe ich versucht, aber ich weiß nicht, wie ich android.jar zu einem Java-Projekt hinzufügen soll. Auch dazu möchte ich etwas Klarheit bekommen.

Außerdem würde ich gerne wissen, ob es andere Methoden gibt, die android sdk selbst verwenden (ohne Java-Projekt zu verwenden), um eine JAR-Datei mit geschlossener Quellbibliothek zu erstellen.

Ich denke, was ich will, ist seitdem möglichGoogle Analytics für native Android-Apps scheint es getan zu haben. Ich bin mir sicher, dass sie in der JAR-Datei, die sie verteilen, androidspezifische Codes verwenden, da es anscheinend keine andere Möglichkeit gibt, die Geräteinformationen im Analyse-Viewer anzuzeigen.

EDIT: Kann jemand dies erklären?

Ich denke, ich habe einige Fortschritte gemacht. Das habe ich getan

Erstellt ein reguläres Android-Projekt (kein Bibliotheksprojekt, das Häkchen bei "Ist Bibliothek" ist deaktiviert)

In dem Projekt habe ich meine Logik kodiert. Es verwendet einige Android-spezifische Klassen wieSharedPreference, UUID, PackageManager. Aber nichts mit Assets zu tun, Layouts auch keine KlassenerweiterungActivity. Nur eine Java-Klasse erweitertjava.lang.object

Exportierte das Projekt mitProjekt-> Rechtsklick-> Export-> Java-> JAR-Datei. Auf dem nächsten Bildschirm habe ich das Kontrollkästchen neben deaktiviertAndroidManifest.xml. Legen Sie ein zu exportierendes Zielverzeichnis fest und klicken Sie dreimal, wobei die Standardeinstellungen beibehalten werden. Dann klickte ich auf Fertig stellen und bekam eine schönelibMyLibraryName.jar auf meinem Desktop.

Dann habe ich ein anderes Android-Projekt erstellt und dieses hinzugefügtlibMyLibraryName.jar zum neuen Projekt mitProjekt-> Rechtsklick-> Eigenschaften-> Java-Erstellungspfad -> Bibliotheken-> Externe JAR hinzufügen.

Und ich habe versucht, meine Klasse in der Bibliothek in meinem neuen Projekt zu verwenden

MyLibraryClass objClass = new MyLibraryClass(this);

Und ich konnte erfolgreich kompilieren und ausführen. Ich habe die Bibliothek sogar an einen meiner Mitarbeiter gesendet, der die Bibliothek auf seinem Computer verwenden konnte (nur sicherstellen, dass das Bibliotheksprojekt in meinem Arbeitsbereich das Projekt nicht beeinflusst, das es verwendet).

Jetzt habe ich 2 Fragen.

1) Meine erste Frage ist, was sie mit dem Begriff "wahre Bibliothek" in der unten angegebenen Dokumentation gemeint haben. Ist es ein anderes Java-Projekt als Android, das in eine JAR-Datei exportiert werden kann?

ABibliotheksprojekt unterscheidet sich von einem Standard-Android-Anwendungsprojekt darin, dass Sie es nicht direkt in eine eigene .apk-Datei kompilieren und auf einem Android-Gerät ausführen können.Ebenso können Sie das Bibliotheksprojekt nicht in eine eigenständige JAR-Datei exportieren, wie du es für einen tun würdestwahre Bibliothek. Stattdessen müssen Sie die Bibliothek indirekt kompilieren, indem Sie auf die Bibliothek in der abhängigen Anwendung verweisen und diese Anwendung erstellen.

Nun, diese Portion stammt vonDokumentation unter dem Titel "Bibliotheksprojekte".

2) Meine zweite Frage ist: Stimmt etwas mit der Art und Weise, wie ich die JAR-Datei erstellt habe, nicht? Gibt es irgendwelche Fallstricke, die mich später zurückbeißen könnten? Ich möchte sicherstellen, dass ich etwas nicht fürchterlich falsch mache, bevor ich es in meinen wichtigen Projekten verwende.

Ich könnte hinzufügen, dass ich die Methode zum Erstellen eines JAVA-Projekts und zum Importieren nicht ausprobiert habeandroid.jar. Ich bin bereit, es zu versuchen, wenn das, was ich gerade getan habe, falsch ist.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage