as you know,since android4.1,google has support smart app updates. and for users,when they updates their android apps which installed from google play, they only download what changed instead of downloading all of apk.
in my app,I want support smartAppUpdates too. and now I use bsdiff and bspatch.but I also think when I update my app, it's so big for user to download. and in my app's apk file,the libs is so big, my apk is about 11M,but the .so file which in libs is 9M. and when I update my app,I have never update the libs. for example:I use bsdiff like this
bsdiff old.apk new.apk diff.apk
the new.apk is 11.5M and the old.apk is about 11.4M but the diff.apk is about 6M.
and when I update my app,I have never update the libs.
when I try to zip the diff.apk for reduce it,but it's unuse. the diff.zip's size is equals the diff.apk's size
and how can I do this? is everyone help me? thanks in advance.
how can I improve my app's incrmental updates efficiency?
Unfortunately, there is not a lot that you can do with you delta updates size if you use Google Play to distribute your app. As far as I know, Google's Smart Application Update technology uses GDIFF delta encoding algorithm which compare old APK with new APK block by block. The problem with this approach is that APK is a compressed archive of files. Even small changes in files inside the archive can make your APK file look significantly different on a byte level. More info in this paper: http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=6563072.
From my experience, the only thing you can do is not to use ProGuard, which is obviously bad for security reasons etc. Code obfuscated with ProGuard tends to generate 20% larger delta files.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With