The maximum size of Android applications has been increased significantly. While the core APK is still limited to 50 MB, applications are now allowed to have two extension files of 2 GB each hosted by the Android marketplace. These extension files can use any format, though Google recommends that ZIP files be used.
Extension files are automatically downloaded when the application is installed if the user has WiFi access, otherwise the user has to accept the possible carrier charges. The downloads happen immediately for newer devices, while older phones wait until the application is run for the first time before starting the download.
The standard design pattern for extension files is to use one file for all of the application’s initial download. The second file should be held in reserve for patching individual files, allowing it to be significantly smaller. This is demonstrated in the downloader service example:
Because many developers may not be used to working with one or two large files for all of their secondary content, the example code also includes support for using a Zip file as the secondary file. The Zip example implements a reasonable patching strategy that allows for the main expansion file to “patch” the APK and the patch file to “patch” both the APK and the main expansion file by searching for asset files in all three places, in the order patch->main->APK.