225 votes

Android - Convention sur le nom du paquet

Pour l'exemple "Hello World" dans Android.com le nom du paquet est
"package com.example.helloandroid;"

Existe-t-il une ligne directrice/un standard pour nommer ce paquet ? (des références seraient les bienvenues)

256voto

Jimmy Huch Points 1246

Android suit les conventions normales des paquets java et voici un extrait de texte important à lire (c'est important pour l'utilisation généralisée des fichiers xml lors du développement sur Android).

La raison pour laquelle l'ordre est inversé est liée à la disposition sur le support de stockage. Si vous considérez chaque point ('.') dans le nom de l'application comme un séparateur de chemin, toutes les applications d'un éditeur se trouveront ensemble dans la hiérarchie des chemins. Ainsi, par exemple, les paquets d'Adobe seraient de la forme :

com.adobe.reader (Adobe Reader)

com.adobe.photoshop (Adobe Photoshop)

com.adobe.ideas (Adobe Ideas)

(Notez que ceci n'est qu'une illustration et qu'il peut ne pas s'agir des noms exacts des paquets).

En interne, ils pourraient être mis en correspondance (respectivement) avec :

com/adobe/reader

com/adobe/photoshop

com/adobe/idées

Ce concept provient des conventions de dénomination des paquets en Java, dont vous trouverez plus d'informations à l'adresse suivante ici:*

http://en.wikipedia.org/wiki/Java_package#Package_naming_conventions

Source : http://www.quora.com/Why-do-a-majority-of-Android-package-names-begin-with-com

0 votes

Merci pour la suggestion. Mais, y a-t-il une référence sur le site officiel d'Android ?

2 votes

Voici une (brève) référence du site Android - regardez le paragraphe "Nom du paquet" à l'adresse suivante developer.Android.com/resources/tutorials/hello-world.html

4 votes

Vous avez une erreur dans votre réponse qui pourrait induire les gens en erreur. c'est com.adobe.ideas, et non com.adobe.Ideas (I majuscule). utiliser des majuscules dans les noms de paquets est une mauvaise idée (certains services google ne fonctionneront pas pour vous).

67voto

ameyume Points 588

Le nom du paquet est utilisé pour l'identification unique de votre application.
Android utilise le nom du paquet pour déterminer si l'application a été installée ou non.
La dénomination générale est :

com.companyname.applicationname

eg :

com.Android.Camera

3 votes

Com peut varier si le nom de domaine de la société ou de l'organisation est différent, par exemple org.wikipedia.wikipediaapp.

8 votes

Et si quelqu'un prenait le nom de mon site web comme nom de paquet pour son application Android ? Puis-je retirer cette application de la boutique ?

41voto

JCasso Points 2822

http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html

Les entreprises utilisent leur nom de domaine Internet inversé pour commencer leur nom de paquet - par exemple, com.example.mypackage pour un paquet nommé mypackage créé par un programmeur chez exemple.com.

Les collisions de noms qui se produisent au sein d'une même entreprise doivent être traitées par convention au sein de cette société, peut-être en incluant le nom de la région ou du projet après le nom de la société (par exemple, le nom de la région ou du projet). le nom du projet après le nom de la société (par exemple, com.example.region.mypackage).

Si vous avez un domaine d'entreprise www.example.com

Alors vous devriez utiliser :

com.example.region.projectname

Si vous possédez un nom de domaine tel que exemple.co.uk, il devrait l'être :

uk.co.example.region.projectname

Si vous ne possédez pas de domaine, vous devez alors utiliser votre adresse électronique :

pour name@example.com il devrait l'être :

com.example.name.region.projectname

0 votes

Pouvez-vous m'expliquer pourquoi je devrais l'utiliser ? Quels sont les avantages d'utiliser le nom de domaine de mon entreprise comme nom de paquet ?

0 votes

Veuillez consulter cette question StackOverflow à titre d'exemple : stackoverflow.com/questions/8381324/

0 votes

Ok je comprends que c'est pour garder le nom du paquet unique mais ma question est quand nous téléchargeons sur google play. google play ne s'assure-t-il pas que le nom du paquet est unique dans le magasin avant qu'il ne soit mis en ligne ? donc si nous installons seulement à partir de google play, nous ne devrions pas avoir ce conflit.

7voto

charles Points 9
Com = commercial application (just like .com, most people register their app as a com app)
First level = always the publishing entity's' name
Second level (optional) = sub-devison, group, or project name
Final level = product name

Par exemple le lanceur Android (écran d'accueil) est Com.Google.Android.launcher

3voto

Eric Points 1215

En général, les deux premiers "mots" du paquet sont votre adresse Web inversée. (Vous en auriez 3 ici par convention, si vous aviez un sous-domaine).

Ainsi, quelque chose que stackoverflow produit serait probablement dans le paquet com.stackoverflow.whatever.customname

quelque chose que asp.net produit pourrait s'appeler asp.net.quel que soit le nom du client.omg.srsly

quelque chose de mysubdomain.toplevel.com serait com.toplevel.mysubdomain.whatever

Au-delà de cette simple convention, les possibilités sont illimitées. C'est une vieille convention linux pour quelque chose dont je ne me souviens pas exactement...

0 votes

Merci pour la suggestion. Mais, y a-t-il une référence sur le site officiel d'Android ?

0 votes

La chose la plus proche que j'ai pu trouver était un texte de présentation ici : developer.Android.com/guide/topics/manifest/ Mais si vous prenez tout ce qui existe sous forme de bibliothèques de paquets, vous verrez qu'elles suivent toujours la même convention. http vient de org.apache.http, Andengine vient de org.anddev.andengine, etc etc.

1 votes

Quelles sont les règles concernant les caractères autorisés pour le nom du paquet sur Android ? Les lettres anglaises, les caractères "." et "_" sont-ils les seuls autorisés ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X