Ich habe Code aus verschiedenen Versionen der gleichen App (kostenpflichtig / kostenlos) gerne in Android-Bibliotheksprojekte umgestaltet, damit die eigentlichen Apps die Bibliothek einfach anpassen und die Codeverdopplung reduzieren können.
Eine Sache, die ich mich frage, ist, was getApplicationContext()
im Bibliothekscode bedeutet? Ist das gleiche ApplicationContext
wie man es von den Kind-Apps bekommen würde? Was passiert, wenn ich auf SharedPreferences
von% ce_de% eines Bibliotheksprojekts anstelle von getApplicationContext()
der ursprünglichen App zugreife? Ist die Datei getApplicationContext()
gleich oder anders?
Was wäre, wenn ich über die Aktivität auf SharedPreferences
zugegriffen hätte? Ist es wichtig, dass die Aktivität jetzt eine Bibliotheksaktivität ist und nicht die ursprüngliche App? Ist die SharedPreferences
gleich?
Danke für die Klärung.
Wenn das APK gepackt ist, gehören alle Klassen zur Hauptanwendung.
ruft getApplicationContext (). getPackageName () auf und gibt den Paketnamen der Anwendung und nicht das Paket der Bibliothek zurück.
Ich habe das gleiche Setup für eine kostenlose / kostenpflichtige Anwendung und keine Probleme, wenn ich meine Klassen in ein Bibliotheksprojekt verschoben habe.
Sie müssen jedoch Ihre XML-Dateien (Manifest, Widgets usw.) überprüfen, um den vollständigen Paketnamen Ihres Bibliotheksprojekts zu verwenden.
Ein Bibliotheksprojekt ist fast so, als hätte man den gesamten Code in einem Projekt. Es gibt ein paar Dinge, auf die man bei Namespaces achten sollte, aber im Allgemeinen funktioniert es sehr gut.
z.B. Ihre Bibliothek hat einen eigenen Namespace
Bibliothekspaketname = uk.co.lib Haupt-App-Paket name = uk.co.app
Aktivitäten in der Bibliothek, für die Sie einen Zugriff von der Haupt-App aus benötigen, müssen dem App-Manifest hinzugefügt werden. Die Aktivität namens A im Bibliotheksprojekt wird hinzugefügt, um in der Haupt-App wie folgt zu manifestieren:
%Vor%Der Zugriff auf gemeinsame Einstellungen usw. würde das gleiche Ergebnis aus beiden Namespaces ergeben und würde die Einstellungen für die App zurückgeben.
Es gibt nur eine Anwendung, daher gibt es nur einen ApplicationContext
Tags und Links android