Différence entre la bibliothèque Android et la bibliothèque Java dans Android Studio


entrez la description de l'image ici

Lors de la création d'un nouveau module dans Android Studio, nous pouvons choisir entre une bibliothèque Android et une bibliothèque Java. En bricolant les deux, je comprends qu'un Android Library a accès aux ressources Android tandis qu'un Java Library n'a accès qu'aux ressources Java.

Donc, créer une bibliothèque Java dans Android Studio, c'est comme créer une nouvelle bibliothèque dans un Java Java ordinaire tel qu'Eclipse. (Il semble même nous donner accès à RMI, que Android ne supporte pas.)

Est-ce correct, y a-t-il d'autres différences dont on devrait être conscient?

Author: Daniel, 2015-01-13

3 answers

Comme le dit la petite description de chaque type de projet, une bibliothèque Android n'est qu'un autre projet d'application Android,souvent appelé Module.Et Bibliothèque Java est un autre mot pour un projet java.La seule différence entre un module et a project est la complexité. Jetez un oeil à cette belle description de intellij sur les modules et comment ils diffèrent de:

Structure de projet basée sur des modules

Cette fonctionnalité est idéale pour les projets complexes, avec dépendances, et en particulier pour les projets J2EE. Le module est une partie logique distincte d'un projet qui intègre vos sources de travail, vos bibliothèques, votre référence au SDK Java cible, etc. Il peut être compilé, exécuté ou débogué en tant qu'entité autonome.

entrez la description de l'image ici

Un projet peut comprendre un ou plusieurs modules. Les modules peuvent dépendre les uns des autres. Les modules et les bibliothèques peuvent être facilement partagés entre plusieurs projets.

Source

Ce est aussi une bonne lecture.

 2
Author: ojonugwa ochalifu, 2017-05-23 11:45:31

Bibliothèque Android c'est "projet de bibliothèque android" dans le passé.

C'est juste un module Android, qui peut être inclus dans votre projet. il a des ressources Android comme vous le dites, et votre propre projet a également accès aux ressources de bibliothèque incluses(comme les styles ou les mises en page).

Ce type de bibliothèque doit être utilisé pour créer des vues ou des activités personnalisées ou d'autres éléments Android

 2
Author: Kirill Shalnov, 2015-01-13 15:29:56

La bibliothèque Android est un aar et la bibliothèque java est un jar. Techniquement parlant, les deux sont des pots, mais leur composition structurelle est légèrement différente l'une de l'autre. Par exemple, un aar ressemble à ceci:

res  <android resources dir>
values
AndroidManifest.xml
classes.jar
    <classpath structure>
         <.class's>
R.txt

La bibliothèque java ressemble à ceci:

<classpath structure>
     <.class's>
META-INF

Comme mentionné, la bibliothèque java ne peut pas inclure de ressources Android telles que les mises en page, les valeurs, les couleurs, les styles. Une bibliothèque Android peut inclure des ressources Android, mais elle ne peut contenir aucune ressource Android brute (c'est-à-dire tout ce que vous mettez dans le dossier assets) Il est également de la responsabilité du développeur que les noms de ressources ne entrent pas en collision les uns avec les autres. La recommandation des développeurs Android est que vous attribuez des préfixes uniques pour vos noms de ressources dans chaque bibliothèque Android. Les bibliothèques Java ne peuvent référencer aucune classe SDK Android telle qu'Android.contenu.Contexte, etc.) Il y a quelques astuces que vous pourriez faire pour contourner cette dernière restriction, mais cela implique de transformer un aar en pot. Cela pourrait être fait, tant que vous n'utilisez aucune ressource Android dans l'aar. La raison pour laquelle on pourrait vouloir faire cette transformation est que vous pouvez avoir une dépendance "compileOnly". Actuellement, vous ne pouvez pas avoir de dépendance compileOnly sur une bibliothèque aar, mais vous pouvez le faire sur une bibliothèque jar. Cette technique est utilisée par les développeurs d'applications OSGI qui ont besoin de référencer des interfaces contenant des classes SDK Android. Il y a une demande en suspens à l'équipe du développeur Android pour modifier cette restriction compilieOnly.

 1
Author: Tom Rutchik, 2018-07-17 17:37:38