An APK is a Zip archive with some addition rules. It is stored as-is on Android devices, and apps load from it directly. Some files are stored without compression in the APK for various reasons and must be kept that way. The compressed files are compressed using Zlib (deflate).

This test simulates replacing Zlib compression in the APK format with Kraken (or other compressors).

To do this, the APKs were extracted, restricted to only the files that were sent compressed in the original APKs. Files that were stored without compression in the APKs were excluded.

Each extracted file was compressed independently. All speeds here are measured on Win64 Core i7-3770 3.4 Ghz.

The performance over the full set of files is :

-------------------------------------------------------

ooKraken    :  2.81:1 ,    2.5 enc mbps ,  935.4 dec mbps
zlib9       :  2.38:1 ,    6.5 enc mbps ,  292.0 dec mbps

-------------------------------------------------------

total : ooKraken    : 5,857,885,078 ->2,083,258,070 =  2.845 bpb =  2.812 to 1 
total : encode           : 2369.239 seconds, 1.38 kc/b, rate= 2.47 mb/s
total : decode           : 6.262 seconds, 3.64 c/b, rate= 935.41 mb/s

total : zlib9       : 5,857,885,078 ->2,460,636,216 =  3.360 bpb =  2.381 to 1 
total : encode           : 895.503 seconds, 520.22 c/b, rate= 6.54 mb/s
total : decode           : 20.060 seconds, 11.65 c/b, rate= 292.02 mb/s

-------------------------------------------------------

See results for more compressors on the whole-set (all files) run here : oodle_apk_report2_wholeset.html


The breakdown of the file set by extension is :


reported here :

dex  : 1,925,411,952 bytes
so   : 1,889,134,747 bytes
arsc :   358,091,396 bytes
xml  :   132,336,766 bytes
sf&mf:   122,950,694 bytes
jar  :   122,644,796 bytes
ttf&otf:  91,768,668 bytes

not reported :

ffa  :   117,512,956 bytes
pak  :    79,898,414 bytes
jpg  :    77,243,943 bytes
png  :    48,852,094 bytes

total : 5,857,885,078 bytes

The APK set is dominated by "dex" and "so" files. Therefore those file types will dominate the effect on total decode time and total compressed size.

JPG and PNG files are already compressed, and therefore are passed through Oodle untouched. They are also not a significant amount of this APK set size, so they will not be considered further.

Full list of sizes by extension


DEX :


SO :


ARSC :


XML :


SF & MF :


JAR :


TTF & OTF :


Raw results on each extension group