(包)名称org.example.hello中有什么?

时间:2010-06-28 18:57:13

标签: android

我熟悉C ++但从未使用过Java。我刚开始学习Android开发。在大多数基本教程中,我都提到过像org.example.hello这样的软件包名称。我知道它们是某种独特的标识符,但

  1. 我应该如何选择这些包名?有没有指导方针?
  2. 如果我正在开发商业应用程序,我需要记住哪些特殊内容吗?
  3. 如何制作单独的可重用库并将它们打包在不同的包/应用程序中?
  4. 感谢。

3 个答案:

答案 0 :(得分:6)

Java中的包与C ++中的命名空间具有相同的用途。有关一些指导,请参阅Java tutorial

最重要的是要记住,你的完全限定的类名(包+类)不应该与其他任何人相同。如果你创建一个类似乎会提供一组非常常见的函数,例如FileUtils,那么你希望它在一个唯一的包中,所以它的名字不会与其他人的类相冲突。一样的名字。一般准则是使用您的反向域名,因此您会看到org.example.hello等包。

答案 1 :(得分:3)

除了一些主要约定外,包命名在很大程度上是无关紧要的。例如。 Java API主要位于java.之下。真正的目的是避免与其他代码冲突。

主要影响包命名具有可见性。例如,受保护的成员可用于相同的包(和子类),但不能用于其他包中的代码。

例如,在我的手机上,代码似乎主要位于com

com.areacode.drop7
com.google.android.apps.
com.meebo.

但有些是org(主要是开源资料):

org.connectbot
org.npr.android.news

关于维基百科的一些讨论:

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

只要您的公司名称(和应用名称)在包名称中,您就可以了。

Eclipse提供了将多个项目链接为库的规定。如果您在构建过程中使用ant,则可以在其中包含ant。我不知道“库”(J2SE中的JAR文件)的真实概念。实际的JAR文件(为J2SE编译)需要交叉编译为Android格式(DEX)。

答案 2 :(得分:1)

使用Android文件浏览器ASTRO可以查看手机上的应用程序包含的名称。

com.CompanyName.ProgramName似乎是标准。