Google this week said it has reduced the size of its application updates by 65 percent using an approach that however, somewhat ironically, doubles the time it takes to apply them on end user devices.
The company’s new file-by-file patching mechanism is designed to minimize the amount of data that end users have to download, especially when not on WiFi, for application installs and updates.
According to the company, Android users downloaded and installed some 65 billion apps from Google Play last year. Many of the developers of these apps have begun more frequently pushing out app updates to accommodate new functions or to patch security vulnerabilities.
The file-by-file method is designed to minimize the amount of data downloaded for such patches. App updates using file-by-file patching can be up to 90 percent smaller than the full app in some cases, Google Play software engineer Andrew Hayden wrote on the company’s Android Developers blog.
File-by-file patching builds on changes Google announced in July for reducing the size of application patches. At the time, Google said it had begun using a new algorithm for more efficiently identifying and applying only the changes that are made to an application as the result of an update.
With file-by-file updates, Google Play sends a patch to the end user device that describes the differences between the old version of the application and the new version of the app, Hayden said. The approach is similar to an author telling an editor exactly which sentence to change in a book, rather than sending an entire new book with the change.
For example, in app updates using the new process, the file-by-file patch size for Google Maps was 9.6MB compared to 13.4 MB size using the previous approach while that for a Netflix update was 1.2 MB compared to 7.7 MB previously.
“The savings, compared to our previous approach, add up to 6 petabytes of user data saved per day,” he claimed.
Android applications are packaged as zip files or so-called APK files containing highly compressed content. With file-by-file patching, when an update is ready, the uncompressed content in the update is compared against the uncompressed content in the original version of the app in order to identify the differences, or ‘delta,’ between the two versions.
The differences are then applied to the old app and the content is recompressed in a manner that ensures the updated app on an end user system is identical the updated version in Google Play, Hayden said.
However, extra processing power is required on the end user device to accomplish all of the recompression that is involved with the file-by-file process. So while the approach reduces data volumes, Google’s analysis has shown that when a patch size is halved, the time spent applying it tends to typically double, Hayden said.
For the moment, Google will use the technique only for patches that are delivered as auto-updates. Such updates happen in background without any interaction and typically occur at night when a phone is likely to be least used.