2.1 什么是 Booster
Booster 是专门为移动应用而设计的简单易用、轻量级、功能强大且可扩展的质量优化工具包,其通过动态发现和加载机制,提供了可扩展的能力。是一款移动应用的质量优化框架。
Booster 主要由 Transformer 和 Task 组成。
Transformer 用于对字节码进行扫描或修改(取决于 Transformer 的功能),而 Task 则用于处理构建中的资源。
为了满足不同业务场景下的优化需求,Booster 提供了 Transformer SPI 和 VariantProcessor SPI 接口,来允许开发者进行定制。
Booster 的整体框架如下:
Booster 对 Gradle 还有一些小的版本要求:
- Gradle 4.1 以上版本
- Android Gradle 插件 3.0 以上版本
2.2 Booster 到底能干什么?
读了一遍官方的概念,好像还是不知道 Booster 的用处,这里就以 Booster 已经支持的一个 Transformer 为例子,来讲解它到底能干什么。
Toast 是我们在日常开发中经常会用到的一个提示信息的组件,而在 Android 7.0 的系统中,它有可能会触发 BadTokenException 的异常。这个问题,用 Booster 就可以解决。
Toast 抛 BadTokenException 看起来是在显示的时候,窗口的 Token 已经失效了,也有可能在显示 Toast 的时候,窗口已经被销毁了。
android.view.WindowManager B a d T o k e n E x c e p t i o n : a t a n d r o i d . v i e w . V i e w R o o t I m p l . s e t V i e w ( V i e w R o o t I m p l . j a v a ) a t a n d r o i d . v i e w . W i n d o w M a n