v2.1.0
Pre-releaseThis is a cleanup release with no new functionality.
A specific version of DexPatcher-gradle used to support a somewhat wide range of Android Gradle plugin versions. And because each plugin version has different Gradle version requirements, DexPatcher-gradle also needed to support a wide range of versions of Gradle. Adaptation layers with dynamic behavior were needed for both the Android plugin and Gradle, implemented via a mixture of Groovy's @CompileDynamic
, reflection, and straight catching of linkage errors. It was a maintenance and testing mess.
But no longer... From v2.1.0, DexPatcher-gradle only supports narrow, effectively compatible version ranges of the Android plugin and Gradle. It does not attempt to widen compatibility via dynamic code. This will reduce the effort needed to keep the software up-to-date, hopefully offsetting the negative impact of the new narrow range model.
Changes:
- Increased robustness, maintainability, and testability:
- All dynamic code for widening version range compatibility has been eliminated.
- The remaining reflective code has been reworked to fully link and fail early.
- Changes to the build system:
- Reproducible builds.
- About info moved to
META-INF/about
. - New build diagnostics.
- Build code sharing with other DexPatcher projects.
- Publish artifacts to local and remote repositories.
- Compatible with Sonatype and JitPack.
- Added Travis CI setup.
Supports:
- Android Gradle plugin v3.4 though v3.4.2.
- AAPT2 only (no support for AAPT version 1).
- Gradle v5.1.1 through at least v5.6.4.
Samples available here.
The official video track for DexPatcher-gradle v2.1.0 is Rone's Gravity.