- Fix incompatibility issue of
ShadowScheduledThreadPoolExecutor
on Android 5.1.1 and below - Fix issue #364 booster transform cannot be registered successfully
- Fix issue #368 by removing JAR signature related files to prevent JAR signature verification
- Fix issue #370 by improving the compatibility of AGP 7.2.0+
- Improve booster-aapt2 compatibility
- Enable class set cache for static analysis to reduce memory footprint
- Support Gradle configuration cache #248
- Loading and initializing variant processor earlier
- Grouping tasks into group
booster
- Dependency acquisition enhancement
- Fix transform timing issue
- Add booster-cha-asm to support ASM based CHA
- Improvement for booster-task-analyser
- Load all classes of a composite class set before accessing
- Fix bug of resolving project dependencies
- Improve ClassSet to avoid memory leaks
- Improve ClassSet to support loading classes from AAR
- Fix transform output conflicts
- Add
execute(...)
forCommand
- Add class reference analysis for booster-task-analyser
- Splitting booster-graph into booster-graph, booster-graph-dot and booster-graph-json
- AGP 7.1 & 7.2 compatibility support
- Fix [CVE-2020-15250] In JUnit4 from version 4.7 and before 4.13.1, the test rule TemporaryFolder contains a local information disclosure vulnerability
- Fix variant artifacts acquiring
- Fix integration tests
- Refactoring booster-graph to support grouping and render options
- Fix issue #311
- Add api
mergeNativeLibsTaskProvider
- Add booster-graph to generate graph with
dot
- Using deferred task instead of creating task directly
- Reverse the edge direction of the task graph
- Add
DotGraph.visualize()
for graph visualization - Add booster-task-graph for task graph visualization
- Fix improper task dependencies
- Fix issue #304:
ScheduledThreadPoolExecutor
transform bug
- Add extension property
BaseVariant.mergedNativeLibs: Collection<File>
- Add extension function
BaseVariant..getReport(String, String): File
- Fix Jacoco coverage report issue
- Fix
mergeResources
task
- Fix issue #284
- Fix issue #287
- Fix issue #280
- Support force update inputs for incremental build
- Support running local unit test with transformer
- Add collector API for multi-round transform
- Add Android stub APIs
- Fix bug of the classpath of class pool
- Add runtime instrumentation support
- Fix issue #258
- Fix bug when install in android-R machine: no compress arsc file.
- Support AGP 7.0, no longer supported AGP 3.2 and lower versions
- Fix
booster-transform-r-inline
支持constraintlayout
v2.0
- Add
booster-transform-service-loader
forServiceLoader
performance optimization
- Refactor
booster-cha
,to support bytecode manipulation framework independentClassParser
- Update
auto-service
version to1.0
- Update
common-compression
version to1.21
- Support AGP
4.2
- Fix AGP version comparison
- Support disabling variant transformation by setting property
booster.transform.${variantName}.enabled
tofalse
- Support generating transform diff by setting property
booster.transform.diff
totrue
- Refactor
ClassTransformer
API- Add property
name
- Add method
getReport(TransformContext, String): File
- Add method
getReportDir(TransformContext): File
- Add property
- Support property
booster.task.compression.pngquant.ignores
to ignore resources by wildcard - Support property
booster.task.compression.cwebp.ignores
to ignore resources by wildcard - Sanitize exception stack trace caught by
ActivityThreadCallback
- Rebuild AGP compatibility
- Support the latest AGP version
4.1.0
- AGP integration tests improvement
- Fix #192
- Android Gradle plugin API compatibility improvement
- fix issue #194
- fix issue #194
- JetPack support for shared preferences optimization
- fix empty thread name
- Add transform outputs verification
- Improves booster-transform-thread
- Improves threads management for booster-transform-shared-preferences
- Fix API compatibility issue of booster-transform-webview
- Improves booster-transform-thread
- Improves booster-transform-shared-preferences
- fix bug of booster-transform-activity-thread
- Fix compatibility issues on AGP 3.5
- Improves Android gradle plugin compatibility (AGP 4.0 is supported)
- Refactor
Transformer
&VariantProcessor
service provider loading
- Refactor
Transformer
dynamic discovery and loading
- fix: image compression with build cache
- Fix
booster-cha
dependencie - Refactor booster-transfrom-util to improve unit test
- Refactor SPI loading
- Add
dokka
doc comments to generate API reference - AGP API compatibility improvement
- fix #154
- fix #157
- Catch transform exception caused by broken cla
- Extract CHA from booster-task-analyser as a standalone module
- Fix: #151 Build failed caused by empty transformer
- Fix dex merging error when transform scope is empty
-
修复 Transform 增量编译的问题
-
优化 booster-transform-activity-thread,支持自定义堆栈包名白名单过滤
-
增加 booster-task-analyser 用于替代原来的 booster-transform-lint ,不仅在特性上更加丰富,性能表现也是更胜一筹:
- 全新的类继承分析 CHA (Class Hierarchy Analysis) ,分析结果更精准
- 新增 AnalyserTask ,移除 LintTransformer ,通过运行单独的 Task 进行静态分析,详见:README.md
- 支持 XML layout 分析,检测 layout 中不存在的 class,避免线上崩溃
- 支持
@UiThread
和@MainThread
- 支持 EventBus
@Subscribe
- 支持自定义黑名单和白名单
-
新增 booster-api 模块,便于 feature 开发和单元测试
- Improves booster-task-compression-cwebp to support build cache
- Improves booster-task-compression-pngquant to support build cache
- Improves transform to support build cache
- Improves booster-command installation to support build cache
- Fix issue #138
- Improve BR inlining
- Upgrade auto-service version to 1.0-rc6
- Upgrade gradle version to 6.2
- Remove
uploadArchives
task
- Rethrow exception with file path when booster-task-compression-cwebp detect image transparency failed
- Handle rejected execution from parallel scatter zip creator
- Add booster-command to support run external prebuilt command
- Refactor resource compression to support booster-task-compression-cwebp & booster-task-compression-pngquant work togethor
- Improve transform performance
- Prevent
res/raw
resources from compression - Refactor transformers to make them more unit test friendly
- Fix R class files removal issue #124
- Add booster-transform-br-inline to support BR inline for data binding
- Add booster-transform-verifier to support verify bytecode
- Add
@Priority
to support ordering transformer - Refactor transform process to improve build performance
- Support CPU time statistics for transformer
- Remove
booster-task-all
andbooster-transform-all
- Fix bug of transform-task-compression-pngquant
- Refactor & optimize resource compression
- Refactor transform SPI
- Improves transform performance 50%+
- Improves booster-task-compression performance
- booster-transform-thread supports enable/disable thread pool optimization
- Fix bugs of booster-transform-shared-preferences
- Fix issue #119
- Supporting dynamic feature module #109
- SharedPreferences optimization improvement
- Fix compatibility of
booster-transform-r-inline
- Fix #103
- Fix issue #99
- Deprecates constant field removal
- Fix duplicated entry caused by incremental build
- Fix issue #80
- Fix issue #78
- Fix compatibility of AAPT2 especially for Android gradle plugin 3.1.x
- Fix bug of ActivityThreadTransformer
- Fix bug of ActivityThreadCallback
- Add module booster-transform-javassist to support bytecode manipulation using Javassist
- Fix issue #66
- Fix issue #67
- Fix issue: shrinking without replace retained symbol
- Add module booster-transform-activity-thread for ActivityThread hooking
- Add module booster-android-instrument-activity-thread for ActivityThread instrumenting
- Add module booster-transform-logcat for logcat intercepting
- Add module booster-android-instrument-logcat for log API instrumenting
- Fix compatibility issues with Android gradle plugin 3.1.x and 3.4+: #45
- Add
booster-transform-finalizer-watchdog-daemon
to avoid crash byTimeoutException
- Add booster-transform-res-check for resource & assets checking
- Optimization for
AsyncTask
- Improvement for booster-transform-shrink
- Add Webview preloading
- Fix bug of dex builder in incremental build
- Fix issue #32
- Fix issue #29
- Ignores WebP compression of launcher icon
- Fix #28
- Fix issue #27
-
Supports WebP compression
Since v0.4.0, Booster provides built-in libwebp binaries for resources compression, so, you don't have to install the cwebp executable manually, about the usage, please see booster-task-compression.
- Fix compression report
- Add more INFO logs for class transforming
- Fix issue #18
- Supports compressing by
pngquant
- Improves assets and resources compression
- Add
booster-task-compression
for resources compression
- Fix issue #5
- Additional options for
booster-transform-shrink
#8 - Additional options for
booster-transform-lint
- Thread renaming
- Multithreading optimization
- Shared preferences optimization
- Build report
- Fix issue #4: WARNING: API 'variant.getJavaCompiler()' is obsolete and has been replaced with 'variant.getJavaCompileProvider()'
- Fix issue #3
- Fix generated
REVISION
- Fix compatibility issues with Android gradle 3.3+ #2
- Performance linting
- Constants shrinking
- Crash fixing (Caused by Toast on Android 7.1.1)
- Miscellaneou
- Tasks for artifacts displaying
- Tasks for Android permissions displaying
- Tasks for dependencies displaying
- Transformer for API usage displaying