Dex breakdown (Android)

Emerge leverages a proportional approximation to calculate specific dex package/class sizes.

One unique aspect of dex is the usage of shared data between different portions of bytecode. This allows dex to minimize its download/disk size as well as memory footprint, at the expense of being able to attribute all code to a single owner. See the Dex executable format documentation for more details on how dex shares constant information.

Due to this sharing, it's not possible to measure exactly how much size a specific package/class contributes to the overall dex. To counter this, Emerge uses an approximate measure based on the proportional size of each package in relation to the size of the dex file(s).

541

Emerge's package sizes are a proportional approximation of the package's size to the overall dex file(s) size(s).

Emerge will show the full dex breakdown down to the package level of all code that can be attributed to a single owner.

Obfuscation

By default, Emerge makes no assumptions about how dex is obfuscated. If provided obfuscation mappings, bundled automatically in AABs or zipped with uploaded APKs, Emerge will attempt to reverse any obfuscation using the provided mapping file.

Note: Emerge is able to deobfuscate resource and asset names, usually enabled with shrinkResources build flag, without any additional information needed with uploads.