Android - Est-il possible de créer une bibliothèque personnalisée à utiliser dans plusieurs applications?
-
11-09-2019 - |
Question
Est-il possible de créer une bibliothèque personnalisée dans Android (ayant ses propres ressources de mise en page) pour une utilisation dans plusieurs applications Android?
-
J'ai créé un fichier régulier * .jar mais quand j'essayé de créer / le style dynamique mon point de vue la plupart des propriétés ne fonctionnent pas. Même référence à des styles simples à partir du fichier android.jar tels que android.attr.listSeparatorTextViewStyle ne fonctionne pas.
-
J'ai créé un projet Android sans aucune activité, ayant ses propres fichiers de ressources et ce projet référencé d'un autre projet Android à utiliser dans son chemin de construction. Tout semble bien fonctionner mais l'émulateur continue à se briser (sans message d'erreur significatif dans le LogCat ) lorsque je tente d'exécuter le projet.
Est-ce que je manque quelque chose?
La solution
Eh bien, je pense qu'il ya une façon de le faire (même si je ne l'ai pas essayé moi-même), mais il exige que les utilisateurs de votre bibliothèque d'avoir à construire leurs APK manuellement via aapt
.
Le problème est le suivant: Le JAR vous exportez contient le fichier de classe R
qui détient les ID de ressource de votre bibliothèque. Ainsi, toute application peut accéder à ces numéros d'identification en reliant simplement votre JAR. Cependant, cela ne suffit pas, car par défaut, seules les ressources dans res / dossier de l'application sont fournis avec l'APK. Par conséquent, vous devez créer l'APK vous en utilisant AAPT, lui disant d'inclure également les ressources de votre bibliothèque. Consultez l'outil AAPT aide pour plus d'informations.
Étant donné que cela implique que les utilisateurs de votre bibliothèque doivent introduire un processus de construction manuelle (ou au moins le modifier), il en fait une mauvaise expérience.
Autres conseils
Peut-être en retard à répondre, mais ce qui est trouvé intéressant. Mise en place d'un projet bibliothèque
Un projet de bibliothèque Android est un projet de développement partagé holds code source Android et des ressources. D'autres projets d'applications Android peuvent référence au projet de bibliothèque et, le temps de construction, inclure son compilé sources dans leurs fichiers .apk. Plusieurs projets d'application peuvent faire référence à la même projet de bibliothèque et une seule projet d'application peut faire référence plusieurs projets de bibliothèque.
Si vous avez le code source et les ressources qui sont communs à plusieurs projets d'application, vous pouvez déplacer les à un projet de bibliothèque afin qu'elle est plus facile à maintenir à travers applications et versions. Voici certains scénarios courants dans lesquels vous pourrait utiliser des projets de bibliothèque:
Est-il possible de créer une coutume bibliothèque android (ayant son propre ressources mise en page) pour une utilisation dans plusieurs applications Android?
Non. JARs ne peuvent pas avoir des ressources. Vous pouvez partager le code de cette façon, mais les ressources doivent résider dans les applications réutilisant les fichiers JAR.
Même référence à des styles simples de le fichier android.jar tels que android.attr.listSeparatorTextViewStyle ne fonctionne pas.
Assurez-vous que vous liez votre JAR contre android.jar. Vous pouvez voir de nombreux exemples dans les composants CWAC sur mon github .
Est-ce toujours vrai avec R21? Je suis en mesure d'exporter un projet de bibliothèque dans le fichier jar et utilisé dans d'autres projets clients avec succès, à la fois sage et le code d'accès aux fichiers actifs sage.
http://developer.android.com/tools/projects/index.html a encore fait la déclaration suivante, qui ne semble pas plus vrai:
Vous ne pouvez pas exporter un projet de bibliothèque dans un fichier JAR Une bibliothèque ne peut pas être distribué sous forme de fichier binaire (par exemple un fichier JAR). Ce point sera ajouté dans une future version des outils SDK.