安卓应用的唯一标识符

8

Android应用程序的唯一ID是什么?它是包名吗?一个设备上是否可以有两个具有相同包名的应用程序?

Android应用程序的唯一标识符是其包名。在同一设备上,不可能拥有两个具有相同包名的应用程序。

5个回答

12

有两个不同的东西: Java包和Android应用程序包。第二个需要唯一。

这里有一篇很好的文章链接


@SeanCheey 感谢您发现链接问题!我批准了您的编辑,因为它是一个有用的贡献。但是作为参考,您通常可以通过 https://web.archive.org/ 找到此类链接的旧内容,我已经使用它来将链接恢复到其以前的非垃圾邮件状态。 - Ryan M

3

是的,在市场上,应用程序的包名是唯一标识符。

不,市场/设备上不能有两个具有相同包名的应用程序。


谢谢回答。如果我安装一个使用设备上已经被另一个应用程序占用的包名的apk文件,会发生什么? - Alex
新应用程序的安装将失败。市场将拒绝上传具有已存在包名称的应用程序。因此,唯一可能发生这种情况的情况是从自定义位置下载。 - WarrenFaith

2
我想补充一点这里没有提到的澄清。
尽管不能有两个具有相同包名的应用程序,但一个应用程序中可以有多个启动器活动,用户可以在启动器应用程序中看到。例如,标准的“地图”应用程序(“com.google.android.apps.maps”包)有几个启动器活动,如“本地”,“导航”,“地图”。对于用户来说,这些“应用程序”(或开发者术语中的活动)是否在一个应用程序包中实现并不重要。
活动名称(“com.google.android.maps.MapsActivity”)本身也不是唯一的,因为任何人都可以创建具有唯一包名和位于Java包com.google.android.maps中的名为MapsActivity的活动的应用程序。
因此,如果您想查找所有这些启动器活动的唯一标识符,则应使用应用程序包名称(“com.google.android.apps.maps”)和活动名称(“com.google.android.maps.MapsActivity”)的组合。

2
安卓应用的唯一标识现在是build.gradle文件中的applicationId字段。设备将根据该字段确定应用是现有应用的更新还是新应用。

我已经上传了一个9x9单元格的填字游戏应用程序,其applicationidcom.drulapp.padashripackage-namecom.drulapp.padashri(即在所有源代码和AndroidManifest.xml中)。我能否像com.drulapp.padashri.seven这样获得7x7单元格填字游戏的applicationid,而包名称保持不变(当然是通过复制整个应用程序文件夹并更改应用程序ID和签名详细信息)? - kiranking
我的担忧也在于,如果包名相同但应用程序ID不同,内部存储是如何提供的。 - kiranking

1

包名必须不同,您不能上传与现有应用程序相同的包名的应用程序。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接