Android -包名称约定

sf6xfgos  于 2023-08-01  发布在  Android
关注(0)|答案(7)|浏览(72)

对于android.com中的“Hello World”示例,包名为
第一个月
是否有任何指南/标准来命名此包?(推荐信会很好)

btxsgosb

btxsgosb1#

Android遵循正常的java包约定,这里有一段重要的文本片段(这对于在android上开发时广泛使用xml文件很重要)。

  • 将其按相反顺序排列的原因是与存储介质上的布局有关。如果将应用程序名称中的每个句点(“.”)视为路径分隔符,则来自发布者的所有应用程序将一起位于路径层次结构中。例如,Adobe的软件包将采用以下形式:*
    com.adobe.reader(Adobe Reader)
    com.adobe.photoshop(Adobe Photoshop)
    com.adobe.ideas(Adobe Ideas)

[Note这只是一个说明,这些可能不是确切的软件包名称。]
这些可以在内部(分别)Map到:

com/Adobe/Reader
com/Adobe/Photoshop
com/adobe/ideas

这个概念来自Java中的包命名约定,更多关于它的信息可以在这里阅读:*
http://en.wikipedia.org/wiki/Java_package#Package_naming_conventions
来源:http://www.quora.com/Why-do-a-majority-of-Android-package-names-begin-with-com

toiithl6

toiithl62#

包名用于应用程序的唯一标识。
Android使用软件包名称来确定应用程序是否已安装。
一般命名为:

com.companyname.applicationname

例如:

com.companyxyz.camera(根据Kotlin样式指南,所有小写字母无下划线。)

这个Kotlin样式指南参考专门解决了大小写(全部小写)和没有任何下划线的问题。
软件包名称都是小写的,连续的单词简单地连接在一起(没有下划线)。

应避免的示例:
**com.companyxyz.Camera *(避免这样做,在Java中,这是一个通常表示类或接口的约定,并且这也不遵循Kotlin风格指导。
*com.company_xyz.camera_app(也要避免此操作。在Java中,当url或应用程序名称包含特殊字符(即非字母数字字符)时,这将用于减少名称空间冲突。
*个人观察: 在Kotlin风格指南中没有专门针对包名称的指导,关于以相反的顺序使用域名以避免名称冲突的公认做法,在重新审查时存在,但该约定似乎被广泛采用,遵循Oracle文档中相同的约定指南。这是一种被广泛接受的做法。例如com.google.abc或com.microsoft.cortana,除了使用下划线。这可能是一个因果报应得到欺骗的名字... *

更多参考/阅读:Android包命名的Kotlin风格指南(https://developer.android.com/kotlin/style-guide#package_names)
Jaca/Oracle包名称指南(https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
有许多堆栈溢出的文章致力于这个主题,以及我将离开一个搜索练习,为读者进行。

j2cgzkjk

j2cgzkjk3#

http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
公司使用反向的Internet域名来开始它们的软件包名称-例如,com.example.mypackage表示由example.com上的程序员创建的名为mypackage的软件包。
在一个公司内发生的名称冲突需要按照该公司内的约定来处理,也许可以在公司名称之后包括地区或项目名称(例如,com.example.region.mypackage)。

如果您有公司域名www.example.com

那么你应该用途:
com.example.region.projectname

如果您拥有一个域名,如example.co.uk,那么它应该是:

uk.co.example.region.projectname

如果您没有域名,则应使用您的电子邮件地址:

对于name@example.com,它应该是:
com.example.name.region.projectname

aor9mmx1

aor9mmx14#

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-division, group, or project name
Final level = product name

字符串
例如,Android启动器(主屏幕)是com.google.android.launcher

44u64gxh

44u64gxh5#

KotlinAndroid风格指南:
软件包名称都是小写的,连续的单词简单地连接在一起(没有下划线)。
https://developer.android.com/kotlin/style-guide#package_names

h9vpoimq

h9vpoimq6#

一般来说,前两个包的“字”是你的网站地址反过来。(如果你有一个子域,这里的惯例是3。)
所以stackoverflow生成的东西很可能在com.stackoverflow.whatever.customname包中
asp.net产生的东西可能被称为net.asp.whatever.customname.omg.srsly
来自mysubdomain.toplevel.com的内容将是com.toplevel.mysubdomain.whatever
除了这个简单的惯例,天空是极限。这是一个旧的linux约定,我不记得确切的东西...

izkcnapc

izkcnapc7#

但是,如果您的Android应用程序仅用于个人目的或由您单独创建,您可以用途:

me.app_name.app

字符串

相关问题