如何提高我的应用程序的增量更新效率

时间:2013-09-30 01:03:09

标签: android updates

如您所知,自Android4.1起,谷歌已经支持智能应用更新。 对于用户,当他们更新从谷歌播放安装的Android应用程序时, 他们只下载改变了而不是下载所有apk的内容。

在我的应用中,我也想支持smartAppUpdates。 现在我用bsdiff和bspatch.but我也想我什么时候 更新我的应用程序,这对用户下载来说太大了。 在我的应用程序的apk文件中,libs是如此之大, 我的apk大概是11M,但是在libs中的.so文件是9M。 当我更新我的应用程序时,我从未更新过libs。 例如:我像这样使用bsdiff

bsdiff old.apk new.apk diff.apk

new.apk是11.5M而old.apk是大约11.4M 但diff.apk约为6M。

当我更新我的应用程序时,我从未更新过库。

当我尝试压缩diff.apk以减少它时,但它没有使用。 diff.zip的大小等于diff.apk的大小

我该怎么做?大家帮帮我吗? 提前谢谢。

如何提高应用的内容更新效率?

2 个答案:

答案 0 :(得分:4)

不幸的是,如果您使用Google Play分发应用,则可以使用增量更新大小。据我所知,Google的智能应用程序更新技术使用GDIFF delta编码算法,将旧APK与新APK逐块比较。这种方法的问题是APK是压缩的文件存档。即使存档内的文件发生微小变化,也可能会使您的APK文件在字节级别上看起来显着不同。本文中的更多信息:http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6563072

根据我的经验,你唯一能做的就是不使用ProGuard,这显然是出于安全原因而不好等。使用ProGuard进行混淆的代码往往会产生20%更大的增量文件。

答案 1 :(得分:1)

这与增量更新无关,但它与缩小apk的大小有关。通过使用Proguard收缩,我得到了惊人的结果。我从4MB +的大小变成了大约1MB。但说实话,实施起来并不容易:这是一个指南:http://developer.android.com/tools/help/proguard.html