安卓清单文件包名

4
在AndroidManifest.xml中声明的软件包名称是应用程序的唯一ID。为了避免命名冲突,我们通常在这个软件包名称中使用域名,例如“com.google.*”。如果是这种情况,就没有办法避免其他人恶意使用我的域名作为他们的软件包名称。比如说,我正在使用“com.google.myapp”,尽管我不是为Google构建应用程序,但这仍然是一个完全有效的软件包名称。假设我的应用程序的软件包名称是“com.mycompany.myapp”,那么我无法阻止其他人在他们的应用程序中使用相同的软件包名称。
这是一个我应该担心的问题吗?看起来这是Android的本质,无法避免。

我已经将“java”标签添加到您的问题中,因为这不是特定的Android问题。实际上,这是Java包命名的方式。 - Squonk
没有技术手段可以防止这种情况发生。只有律师能告诉你是否有法律手段可以防止,而且答案很可能取决于你的承诺(即愿意花钱的意愿)。 - mah
1个回答

4

不,没有办法阻止其他人使用相同的软件包名称。

但是,软件包名称与用于签名软件包的证书结合在一起:如果有人试图在现有软件包之上安装恶意命名的软件包,则他们需要使用完全相同的证书。如果他们未使用完全相同的证书,则操作系统将拒绝安装,并且恶意软件包将无法访问原始软件包的数据。实际上,这解决了安全问题。


我认为这是我的担忧,假设我在清单中使用名称“com.mycompany.myapp”,并将我的应用程序上传到市场。如果已经有另一个具有相同名称的应用程序,市场会拒绝我的上传吗?如果是这样,我将被迫更改我的包名称,只因为其他人使用了我的名称。似乎没有办法防止这种情况发生。嗯,将“com.mycompany.myapp”更改为“com.mycompany.mobile.myapp”并不是什么大问题,但是在其他人的包名称中使用我的域名有点尴尬。 - Kelobyte
非常正确:我从未尝试过,但我认为如果您尝试重复软件包名称,市场将拒绝您的应用程序。 - Femi

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