当您从Play商店购买应用程序时,这些应用程序总是以以下格式提供(例如):只是应用程序名称,所以我得到:游戏商店,但play.google.com/store/apps/details?id=com.king.candycrushsaga部分总是让我感到困惑。我知道名称的其他部分是什么(com.),但是com.PublisherName.AppName开头的含义是什么?

评论

它并不总是“ com。”,请访问play.google.com/store/apps/details?id=org.projectmaxs.main或play.google.com/store/apps/details?id=uk.co.nationalrail。 Google提供了一些其他示例的例子

#1 楼

命名约定是从Java标准派生的,可以与URL相提并论,但是相反。这里的关键是它必须唯一,这就是为什么它如此特殊。

在您的示例中,com是可与顶级域(也可以是com)相媲美的主要类别。接下来是公司名称king(可以与域名进行比较),最后是candycrushsaga(可以是子域)。由于名称必须唯一,因此这种命名模式很常见,但有时可以通过在末尾添加子项目名称来进一步划分。例如,King可以使用名称com.king.games.candycrushsaga将游戏与他们创建的其他应用分开。

根据Java标准,第一个组件必须是有效的顶级域(com,net,edu, gov,针对特定国家/地区),但我记得还看到过不符合该标准的软件包名称。

评论


感谢您的回答-我想我现在就知道了-例如,如果我的网站是GeorgesApps.com,并且我制作了一个名为Ask Your Friends的游戏,那么它将是com.GeorgesApps.AskYourFriends

–乔治
2014年4月1日在18:47



是的,就是这样

–onik
2014年4月1日在18:49

@GeorgeH,但以小写形式:com.georgesapps.askyourfriends。

– nhaarman
2014年4月1日19:34

@Onik我认为也值得注意的是,使用您不拥有的URL作为包名是非常不好的做法。这就是为什么King的应用程序将开始使用域名com.king的原因。这是软件包名称的第一部分应该是有效的Internet TLD的唯一原因。

–丹·赫尔姆
2014年4月2日在10:20

@GeorgeH我了解。关键是,它不仅是com.publishername,而且com的选择也不是任意的:实际上,它应该是发布者拥有的域。我不认为onik的答案很清楚。

–丹·赫尔姆
2014年4月2日在22:21