【问题标题】:How does Android Market install application?Android Market 如何安装应用程序?
【发布时间】:2012-01-04 14:43:28
【问题描述】:

这更像是了解 Android Market 的一般知识。所以,首先,很抱歉我必须在这里问。找了半天还是没看懂。所以,我们开始吧。

据我所知,packageInstaller 确实会在 Android 上安装应用程序。它在执行安装之前确实要求用户许可。

所以我的问题是“android market 是使用 packageInstaller 还是它自己安装?”

如果不是,有几件事我不清楚。

  • 我几乎可以肯定权限是从 AndroidManifest.xml 文件中提取的。在下载之前,Android Market 如何知道应用程序需要哪些权限? (我的猜测是Android Market Web端在上传apk时已经记录了权限)

  • Android 电子市场在下载 apk 之前会要求用户同意权限。如果用户同意并下载,下载后立即进行安装(即不启动 packageInstaller)。这怎么可能?

  • 作为第三方应用程序,任何应用程序都可以完成与 Android Market 相同的工作吗?

【问题讨论】:

    标签: android google-play


    【解决方案1】:

    所以,我想我可以问你一些问题。 包安装程序不用于从 Android Market 安装应用程序 - 它会自行安装。

    1. 我不确切知道,但我认为对于第一个问题,您是 正确的。 Android Market 知道应用程序的权限 需要。它还可以简单地解析AndroidManifest文件 申请。
    2. 这是在 GTalkService 的帮助下完成的。你可以阅读更多here 关于它。
    3. 一般情况下没有。但是是的,如果您的应用程序已与系统签署 签名。

    【讨论】:

    • 谢谢你的回答。您能否详细说明您的第三点?
    • 据我所知,安装应用程序所需的组件受 signatureOrSystem 权限的保护。
    • 很公平。我在 google 群组上碰到了这个链接 [groups.google.com/group/android-developers/browse_thread/thread/…。绕过PackageInstaller似乎无法在android上安装应用程序。
    • 但是 appbrain 使用他们的快速网络安装程序成功地做到了。它在没有交互的情况下在电话上完成工作。 @Yury 是对的,这与 GTalkService 有关。我很想知道他们是怎么做到的,我希望有人能提供一些关于这个的信息:)
    • "GTalkService 实际上是在正常的 Android Market 安装过程中使用的。不是从 Market 下载 APK,而是单击“Install”将触发 Google 的服务器将 INSTALL_ASSET 消息推送到 GTalkService 管道。收到此消息,您的手机将下载并安装 APK。”我不确定,但我认为要使用 AppBrain,您需要为市场安装应用程序。在此之后,我认为 AppBrain 注册了 C2DM 服务并等待来自服务器的消息。之后它就像 Android 市场一样工作,但最后只需调用包管理器来安装包
    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-06
    • 2011-05-02
    • 2011-03-15
    • 2011-06-27
    相关资源
    最近更新 更多