【发布时间】:2011-09-10 13:27:37
【问题描述】:
对于android.com 中的“Hello World”示例,包名称为"package com.example.helloandroid;"
是否有任何指南/标准来命名这个包? (参考会很好)
【问题讨论】:
对于android.com 中的“Hello World”示例,包名称为"package com.example.helloandroid;"
是否有任何指南/标准来命名这个包? (参考会很好)
【问题讨论】:
Android 遵循正常的 java 包约定,而且这里有一个重要的要读取的文本 sn-p(这对于在 android 上开发时广泛使用 xml 文件很重要)。
倒序排列的原因与存储介质的布局有关。如果您将应用程序名称中的每个句点 ('.') 视为路径分隔符,则来自发布者的所有应用程序将一起位于路径层次结构中。 因此,例如,来自 Adobe 的软件包将采用以下形式:
com.adobe.reader (Adobe Reader)
com.adobe.photoshop (Adobe Photoshop)
com.adobe.ideas (Adobe Ideas)
[请注意,这只是一个说明,这些可能不是确切的包名称。]
这些可以在内部(分别)映射到:
com/adobe/reader
com/adobe/photoshop
com/adobe/ideas
这个概念来自 Java 中的 Package Naming Conventions,更多内容可以阅读 这里:*
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
【讨论】:
包名用于您的应用程序的唯一标识。
Android 使用包名来确定应用程序是否已安装。
一般命名为:
com.companyname.applicationname
例如:
com.android.Camera
【讨论】:
http://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html
公司使用他们的反向互联网域名开始他们的 包名——例如,com.example.mypackage 表示包名为 mypackage 由 example.com 上的程序员创建。
需要处理单个公司内发生的名称冲突 根据该公司内部的约定,可能包括该地区或 公司名称后的项目名称(例如, 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
【讨论】:
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
例如,他的 android 启动器(主屏幕)是 Com.Google.android.launcher
【讨论】:
通常,前 2 个包“单词”是您的反向网址。 (如果您有一个子域,那么这里的约定是 3。)
所以 stackoverflow 产生的东西可能在包 com.stackoverflow.whatever.customname 中
asp.net 产生的东西可能会被调用 net.asp.whatever.customname.omg.srsly
来自 mysubdomain.toplevel.com 的内容将是 com.toplevel.mysubdomain.whatever
超越这个简单的惯例,天空才是极限。这是一个旧的 linux 约定,我记不清了……
【讨论】:
calendar 中的包spectorsky 在设备文件资源管理器中被称为com.tmp.spectorsky.calendar。我不明白为什么tmp级别会出现在这里?
但如果您的 Android 应用仅用于个人目的或由您单独创建,您可以使用:
me.app_name.app
【讨论】:
.me 是一个有效的顶级域,因此注册了app_name.me 的开发人员会与您的个人命名空间发生冲突。