Support zipped split APKs as first class packages
!1508 is the first step for supporting split APKs, specifically for the XAPK format that is a bundle of split APKs. I think it will make sense to standardize on the general idea of APKS/APKM/XAPK: a single ZIP file that includes all of the split APKs. Then we can keep the long standing, built-in assumption of a package being a single file. We can still only download the splits that the device needs by implementing direct unzipping via HTTP. HTTP allows selective downloading of chunks of a file, and ZIP files can be read one file entry at a time.
- The split APK filename/ABI/locale/density/etc metadata is included in the index.
- The SHA-256 of each split APK is included in the index.
- The client needs to check the SHA-256 of each split APK it downloads.
Here are some sources for how to read individual files out of a ZIP via HTTP: