Android – Konvention für Paketnamen

Lesezeit: 6 Minuten

Android – Konvention fur Paketnamen
Charles Yeung

Für das „Hello World“-Beispiel in android.comder Paketname lautet
"package com.example.helloandroid;"

Gibt es eine Richtlinie / einen Standard, um dieses Paket zu benennen? (Referenzen wären schön)

Android folgt den normalen Java-Paketkonventionen und hier ist ein wichtiger Textausschnitt zum Lesen (dies ist wichtig im Hinblick auf die breite Verwendung von XML-Dateien während der Entwicklung auf Android).

Der Grund für die umgekehrte Reihenfolge hat mit dem Layout auf dem Speichermedium zu tun. Wenn Sie jeden Punkt (‘.’) im Anwendungsnamen als Pfadtrennzeichen betrachten, würden alle Anwendungen eines Herausgebers in der Pfadhierarchie zusammenstehen. So hätten beispielsweise Pakete von Adobe folgende Form:

com.adobe.reader (Adobe Reader)

com.adobe.photoshop (Adobe Photoshop)

com.adobe.ideas (Adobe-Ideen)

[Note that this is just an illustration and these may not be the exact package names.]

Diese könnten intern (jeweils) abgebildet werden auf:

de/adobe/reader

de/adobe/photoshop

de/adobe/ideas

Das Konzept stammt von Package Naming Conventions in Java, mehr darüber können Sie hier lesen:*

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

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

  • Hier ist eine (kurze) Referenz von der Android-Site – sehen Sie sich den Abschnitt “Paketname” an developer.android.com/resources/tutorials/hello-world.html

    – Bojan Komazec

    16. Oktober 2011 um 22:01 Uhr

  • Sie haben einen Fehler in Ihrer Antwort, der die Leute irreführen könnte. es ist com.adobe.ideas und nicht com.adobe.Ideas (Großbuchstabe I). Die Verwendung von Großbuchstaben in Paketnamen ist eine schlechte Idee (einige Google-Dienste funktionieren bei Ihnen nicht)

    – Amir Uval

    19. Juli 2012 um 15:16 Uhr

  • Tut mir leid, Mann. Nachdem ich Ihre Antwort gesehen hatte, sah ich genauer hin, und mein Browser verband das i mit seinem Punkt, sodass es wie ein großes I aussah. Wie peinlich :S

    – Amir Uval

    29. Juli 2012 um 21:06 Uhr

  • @androiddeveloper – Alle alphanumerischen Zeichen, ‘.’ und ‘_’ ist erlaubt. Allerdings darf ein Paketname (oder ein „Unterpaket“-Name wie „reader“ in com.adobe.reader) nicht mit einer Zahl beginnen oder ein Java-reserviertes Schlüsselwort sein (wie „for“ oder „while “). Um diese Einschränkungen zu umgehen, würden Sie den Paketnamen mit einem vorangestellten „_“ beginnen, sodass 3.cookies.for.you.com in com.you._for.cookies._3 übersetzt würde). Siehe das Relevante Oracle-Dokumentation für Details.

    – Jimmy Huch

    9. September 2015 um 20:29 Uhr


  • Wäre “com.appname” ein gültiger Paketname in Android?

    – Mark Buikema

    15. November 2016 um 9:52 Uhr

Android – Konvention fur Paketnamen
ameyume

Der Paketname dient der eindeutigen Identifizierung Ihrer Anwendung.
Android verwendet den Paketnamen, um festzustellen, ob die Anwendung installiert wurde oder nicht.
Die allgemeine Bezeichnung lautet:

com.Firmenname.Anwendungsname

z.B:

com.android.Camera

  • com kann variieren, wenn der Domainname des Unternehmens/der Organisation unterschiedlich ist. dh. org.wikipedia.wikipediaapp

    – Niels Abildgaard

    15. Januar 2015 um 12:24 Uhr


  • Was wäre, wenn jemand meinen Website-Namen als Paketnamen für seine Android-App nehmen würde? Kann ich diese App aus dem Store entfernen?

    – Mohammed Albanna

    1. Juli 2016 um 20:37 Uhr

1646168589 881 Android – Konvention fur Paketnamen
JCasso

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

Unternehmen verwenden ihren umgekehrten Internetdomänennamen, um ihre Paketnamen zu beginnen – zum Beispiel com.example.mypackage für ein Paket namens mypackage, das von einem Programmierer bei example.com erstellt wurde.

Namenskollisionen, die innerhalb eines einzelnen Unternehmens auftreten, müssen innerhalb dieses Unternehmens nach Konvention behandelt werden, z. B. durch Einfügen der Region oder des Projektnamens nach dem Firmennamen (z. B. com.example.region.mypackage).

Wenn Sie eine Unternehmensdomäne www.example.com haben

Dann sollten Sie verwenden:

com.Beispiel.Region.Projektname

Wenn Sie einen Domainnamen wie example.co.uk besitzen, dann sollte es sein:

uk.co.beispiel.region.projektname

Wenn Sie keine Domain besitzen, sollten Sie Ihre E-Mail-Adresse verwenden:

für [email protected] sollte es sein:

com.beispiel.name.region.projektname

  • Können Sie mir bitte erklären, warum ich es verwenden sollte? Welche Vorteile habe ich, wenn ich meinen Firmen-Domainnamen als Paketnamen verwende?

    – Emil

    6. November 2017 um 17:10 Uhr

  • Bitte sehen Sie sich diese StackOverflow-Frage als Beispiel an: stackoverflow.com/questions/8381324/…

    – JCasso

    6. November 2017 um 21:23 Uhr


  • ok, ich verstehe das, um den Paketnamen eindeutig zu halten, aber meine Frage ist, wann wir auf Google Play hochladen. Stellt Google Play nicht sicher, dass der Paketname im Store eindeutig ist, bevor es online geht? Wenn wir also nur von Google Play installieren, sollten wir diesen Konflikt nicht haben

    – Emil

    6. November 2017 um 22:39 Uhr


  • Google Play stellt sicher, dass Anwendungs-IDs eindeutig sind. Es scannt die Pakete nicht auf Konflikte. Es ist also möglich, dass zwei Absichten/Dienste denselben kanonischen Namen haben, wenn Entwickler diese Namenskonvention nicht befolgen. Bitte sehen Sie: developer.android.com/studio/build/application-id.html

    – JCasso

    7. November 2017 um 21:47 Uhr

  • Was passiert, wenn Sie Ihren Domainnamen ändern? Außerdem scheint der Vorschlag für E-Mail etwas gefährlich zu sein – was wäre, wenn meine E-Mail [email protected] wäre und Microsoft ein foo-Paket für Outlook erstellen wollte? Beide wären unter com.outlook.foo, richtig?

    – Glücklicher Hund

    22. Mai 2020 um 9:50 Uhr


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

Der Android Launcher (Startbildschirm) ist beispielsweise Com.Google.android.launcher

Im Allgemeinen sind die ersten 2 “Wörter” des Pakets Ihre Webadresse in umgekehrter Reihenfolge. (Sie hätten hier 3 als Konvention, wenn Sie eine Subdomain hätten.)

Etwas, das stackoverflow produziert, wäre also wahrscheinlich im Paket com.stackoverflow.whatever.customname

Etwas, das asp.net produziert, könnte net.asp.whatever.customname.omg.srsly heißen

etwas von mysubdomain.toplevel.com wäre com.toplevel.mysubdomain.whatever

Jenseits dieser einfachen Konvention ist der Himmel die Grenze. Dies ist eine alte Linux-Konvention für etwas, an das ich mich nicht genau erinnern kann …

  • Danke für den Vorschlag. Aber gibt es eine Referenz von der offiziellen Android-Site?

    – Charles Yeung

    8. Juni 2011 um 3:42 Uhr

  • Das nächste, was ich finden konnte, war ein Klappentext hier: developer.android.com/guide/topics/manifest/… Aber wenn Sie alles nehmen, was als Paketbibliotheken existiert, werden Sie sehen, dass sie immer der gleichen Konvention folgen. http ist von org.apache.http, Andengine ist org.anddev.andengine, etc etc.

    – Erich

    8. Juni 2011 um 3:47 Uhr

  • Wie lauten die Regeln, welche Zeichen für den Paketnamen unter Android zulässig sind? sind es nur englische Buchstaben, die “.” und die “_”-Zeichen, die erlaubt sind?

    – Android-Entwickler

    25. Juli 2015 um 20:39 Uhr

  • Danke an alle für hilfreiche Kommentare. Ich stehe vor einem verwandten Problem: meinem Paket spectorsky in der Bewerbung calendar wird im Gerätedatei-Explorer als bezeichnet com.tmp.spectorsky.calendar. Ich kann nicht verstehen, warum tmp Ebene erscheinen hier?

    – Spectorsky

    12. April 2020 um 11:13 Uhr

1646168590 709 Android – Konvention fur Paketnamen
ajdeguzman

Wenn Ihre Android-App jedoch nur für persönliche Zwecke bestimmt ist oder von Ihnen allein erstellt wurde, können Sie Folgendes verwenden:

me.app_name.app

  • Danke für den Vorschlag. Aber gibt es eine Referenz von der offiziellen Android-Site?

    – Charles Yeung

    8. Juni 2011 um 3:42 Uhr

  • Das nächste, was ich finden konnte, war ein Klappentext hier: developer.android.com/guide/topics/manifest/… Aber wenn Sie alles nehmen, was als Paketbibliotheken existiert, werden Sie sehen, dass sie immer der gleichen Konvention folgen. http ist von org.apache.http, Andengine ist org.anddev.andengine, etc etc.

    – Erich

    8. Juni 2011 um 3:47 Uhr

  • Wie lauten die Regeln, welche Zeichen für den Paketnamen unter Android zulässig sind? sind es nur englische Buchstaben, die “.” und die “_”-Zeichen, die erlaubt sind?

    – Android-Entwickler

    25. Juli 2015 um 20:39 Uhr

  • Danke an alle für hilfreiche Kommentare. Ich stehe vor einem verwandten Problem: meinem Paket spectorsky in der Bewerbung calendar wird im Gerätedatei-Explorer als bezeichnet com.tmp.spectorsky.calendar. Ich kann nicht verstehen, warum tmp Ebene erscheinen hier?

    – Spectorsky

    12. April 2020 um 11:13 Uhr

904850cookie-checkAndroid – Konvention für Paketnamen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy