Module and Dependency attribution (Android)

📘

Only compatible with Emerge Gradle plugin 4.0+

You must be using any 4.0.0+ version of Emerge's Gradle Plugin for module & dependency information to be available.

Latest gradle plugin version: Gradle Plugin Portal Version

Emerge can attribute specific files and classes in your Android app back to the original module or dependency they originated from, allowing your team to better diagnose specific areas of concern for attributing app size.

Module & dependency attribution requires uploading from our Gradle plugin, as Emerge leverages Gradle's artifacts API to properly attribute files to their original source. This attribution is included with the package uploaded to Emerge.

Viewing module & dependency data

Emerge is actively rolling out module & dependency features across size, snapshots, reaper, and performance products.

By default, if a file or class cannot be attributed to a specific module or third-party dependency, it will be attributed to the primary app module of your app's project.

Size Analysis

X-Ray

Emerge will attempt to attribute all files and classes in the X-Ray to the original module or dependency they originated from. Hovering over an item in the x-ray will reveal the module or dependency the specific file/class belongs to.

Hover an item in the X-ray to see which module or dependency it originated from.

Hover an item in the X-ray to see which module or dependency it originated from.

Breakdown

Emerge lists the download size impact of all modules and dependencies ordered from largest to smallest in the breakdown tab of the Emerge UI.

All modules & dependencies sorted by download size is available in the Breakdown tab of Emerge's size analysis

All modules & dependencies sorted by download size is available in the Breakdown tab of Emerge's size analysis

Disabling module & dependency attribution

To attribute modules & dependencies, Emerge packages a mapping file with the upload from the Gradle plugin. The mapping file contains a list of all known modules & dependencies of your application along with all classes and other files they provide to the final build of your app.

You can disable uploading this mapping file by using the top-level includeDependencyInformation property in the Emerge gradle plugin configuration block. By default, includeDependencyInformation is true.

// build.gradle.kts (app module)

emerge {
  includeDependencyInformation.set(false)

  // ...
}