bugsnag / bugsnag-android-gradle-plugin

Gradle plugin for BugSnag which uploads ProGuard, DexGuard and NDK mapping files, and sends build notifications
https://docs.bugsnag.com/build-integrations/gradle/
MIT License
70 stars 38 forks source link

Compress JVM mapping files using gzip #336

Closed fractalwrench closed 4 years ago

fractalwrench commented 4 years ago

Goal

Compresses JVM mapping files using gzip before they are delivered to the Bugsnag Upload API. Using compression should drastically reduce the amount of bandwidth required - in a basic example project this reduced the file size from 1.5Mb to 0.25Mb.

Changeset

Repurposed the existing outputZipFile function so that it can be used in BugsnagGenerateProguardTask as well as SharedObjectMappingFileFactory.

Testing

Relied on existing mazerunner scenarios and additionally verified manually that deobfuscation was correct. An additional PR will enhance mazerunner scenarios to decompress and inspect the contents of the mapping file, once the test infrastructure is in place.