【问题标题】:how does an android phone(or market) recognize an app安卓手机(或市场)如何识别应用程序
【发布时间】:2012-02-24 09:18:33
【问题描述】:

我正在开发一个安卓应用程序。在将其投放市场之前,我有一个疑问。
安卓手机如何识别应用程序?
清单文件中有2个字段

 package="test.mobile"

android:label="App Name"

如果 2 个应用程序具有相同的包,但名称不同,那么我可以将它们都安装在同一设备上吗?
如果两个应用程序名称相同但包不同,那么呢? 请帮忙。

【问题讨论】:

    标签: android android-manifest google-play


    【解决方案1】:

    来自http://blog.javia.org/android-package-name/

    应用程序包在 Android 市场上也是独一无二的——那里 不能是市场上具有相同应用程序包的两个应用程序。

    另一方面,两个独立的开发人员可以 使用相同的应用程序包创建两个不同的应用程序。当然 并非两个应用程序都可以托管在 Market 上 - Market 会拒绝 第二个是由于“跨市场的唯一应用程序包名称” 规则。

    因此应用程序包与不可预见的第三方发生冲突 应用程序是可能的,这就是为什么建议使用 Java 应用程序的包名称约定(“com.mydomain.myapp”) 包名,因为它可以避免冲突。

    我认为可以安全地假设两个具有相同名称的应用程序都可以。 :) 应用程序包名称是唯一标识符。不过,我也从来没有在应用商店看到过两个同名的应用,所以可能是安卓喜欢你区分。

    如果您有 apk,那么如果它具有相同的命名空间,则无法安装它。有时在 android 开发过程中,我收到一个错误,告诉我一个带有包标识符 com.tclayson.whatever 的应用程序已经安装,它指示我卸载。我假设它还会检查签名密钥以查看它们是否匹配。

    但是,如果您的 apk 具有唯一的 id 并且名称相同,那很好。我以前并排安装了同名的应用程序(同样在开发过程中)。

    【讨论】:

      【解决方案2】:

      当你在市场上看到应用程序的 url 时使用包名,你会在 url 中清楚地看到包名。

      例如https://market.android.com/details?id=com.skype.raider 哪里可以看到app id是包名(com.skype.raider)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多