Google has a new method for shrinking down the size of app updates in the Google Play Store. The fresh technique, called file-to-file patching, is more efficient than the previous algorithm. It can help crunch apps, making them easier to download over wireless networks. There's only one drawback.
Beginning in May, Google began using the bsdiff algorithm to help compress Play Store updates. The tool was effective and helped reduce app sizes by an average fo 47%. File-to-file patching, which still makes use of bsdiff, takes a closer look at what's different between old and new apps and replaces only the changed bits. The savings are real. Google claims most apps see a 65% decrease in size, with some ranging all the way up to 90%. This matters, particularly to the Android-loving public.
At its simplest, file-to-file patching looks at the differences between two versions of a given app. There's a lot of processing trickery going on to make it work. First, file-to-file patching can't spot changes in the compressed APK files, so it has to decompress the APK of the old app version and the new app version. Once the APKs are decompressed only then can it compare them. Google puts the bsdiff algorithm to use here. It calculates the delta between the two app versions, applies the delta to the uncompressed content, and then recompresses it into a new file. The last step of the process involves Google comparing the files again to ensure they're exactly correct, bit for bit.
Google achieved significant improvements in app size. For example, Google Maps is a 32.7 MB app. Using bsdiff, Google decreased the app size to 17.5 MB, but file-to-file patching resulted in an app size of 9.6 MB. That's a savings of 71%. In an extreme case, file-to-file patching reduced the size of Farm Heroes Super from 71.1 MB to just 8 MB, or by 89%. Google says when compared to its previous method, file-to-file patching saves 6 PB of data per day on a global basis. That represents incredible savings.
What's the catch? Processing time. All the uncompressing, scanning, and recompressing takes time. Google says phones from 2015 and newer need about one extra second per megabyte to recompress apps. That's a lot of time. Google admits that patch sizes that are reduced by half take twice as long to be applied. That's no small niggle. Because this increase in time is significant, Google will only allow automatic updates to take advantage of file-to-file patching. Such updates are typically applied in the middle of the night when phones are plugged into power.
"These changes are designed to ensure our community of over a billion Android users use as little data as possible for regular app updates," wrote Andrew Hayden, Software Engineer on Google Play in a blog post. "The best thing is that as a developer you don't need to do anything. You get these reductions to your update size for free!"
The end game here is to convince people to download more apps and more app updates. App updates are important for both developers -- who may gain more ways to make money -- and end users, who see improved performance. Smaller app updates may help to that effect.