Android Google Play Store上的智能应用程序更新:它是如何工作的?

Android Google Play Store上的智能应用程序更新:它是如何工作的?,android,google-play,Android,Google Play,Google Play store(自2012年8月起)支持一项称为智能应用程序更新的新功能,在升级应用程序时只允许下载必要的“增量” 我还没有找到开发人员关于这个功能的文档,因此我不知道如何优化我的应用程序,以确保它从这个伟大的机制中受益 那么,有谁知道: 对于开发人员来说,最好了解哪些技术影响(如果有)? (我假设在用户的设备上构建了一个新的全尺寸APK,或者可能将未更改的数据存储在其他地方?) 重新利用以前版本中未更改的数据是否仅限于某些资源?(如资产文件夹中的文件) 之所以没有文档,是

Google Play store(自2012年8月起)支持一项称为智能应用程序更新的新功能,在升级应用程序时只允许下载必要的“增量”

我还没有找到开发人员关于这个功能的文档,因此我不知道如何优化我的应用程序,以确保它从这个伟大的机制中受益

那么,有谁知道:

  • 对于开发人员来说,最好了解哪些技术影响(如果有)? (我假设在用户的设备上构建了一个新的全尺寸APK,或者可能将未更改的数据存储在其他地方?)
  • 重新利用以前版本中未更改的数据是否仅限于某些资源?(如
    资产
    文件夹中的文件)

    • 之所以没有文档,是因为所有文档都是由谷歌在服务器端完成的,没有任何外部交互。开发人员根本不应该担心这个功能。只要开发你的应用程序,你通常会

      公平地说,我不相信他们想让任何人知道它是如何工作的,因为我假设它是他们智慧财产的一部分。

      一步一步:

    • ,一种增量编码算法,用于计算 旧应用程序版本和新应用程序版本。这是在服务器上完成的 一边这种计算出的差异通常被称为 补丁文件
    • 补丁文件将传输到设备
    • Google Play Store应用程序使用补丁文件和旧应用程序构建应用程序的新版本
    • 新版本已安装在设备上

    • 目前,补丁大小是新应用程序版本大小的25%(平均)。因此,平均可以节省75%的流量。取舍是,根据增量编码技术,您必须在终端设备上进行更多的计算,以部署接收到的补丁。GDIFF非常简单,开销最小。计算APK包之间的差异(使用APK中的所有信息)。如前所述,开发人员不需要做任何事情就可以从这一新功能中获益。

      我真的怀疑这是否只能在服务器端实现。必须在设备上进行一些处理(我猜是通过Google Play应用程序),以从服务器下载的增量重建有效的APK。Google服务器将增量发送到设备上的GooglePlay.APK,GooglePlay.APK完成构建;)我所说的重要一点是:这一切都是谷歌自动完成的,我们开发者不必担心。我很确定这不是他们的知识产权(当然除了代码)。我相信谷歌使用了一种预先存在的delta编码算法,之前也有关于在Android应用程序更新中使用delta编码的工作。让我引用我自己的话:“我所说的重要部分是:这一切都是谷歌自动完成的,我们开发者不必担心。”我一直在研究这个问题,我需要在服务器端和移动端构建类似google Play store的应用程序。。请帮助我理解它谢谢你。你有什么参考资料吗?我们在谷歌的资助下做这方面的研究,可以给你发一篇论文。我真的不知道其他的消息来源。此外,谷歌还发布了任何有关智能更新的信息。我相信用户会很乐意阅读本文,如果允许的话,可以在这里发布链接。DELTA项目的主页:。有很多关于使用增量编码来减少传输数据的信息。是否存在必须更新文件的机制?因为,资产中的文件似乎没有随着内容的变化而更新,或者我错了?谷歌刚刚发布了一篇有趣的帖子,介绍了它们如何压缩应用程序更新,甚至是APK的初始下载!