CrazyDailyQuestion
CrazyDailyQuestion copied to clipboard
B站中台: R8 和 prograd 有啥区别
D8
R8
比较 ProGuard 和 R8 优化功能
构建时的性能
-
保留一个 class r8 仅仅保留 静态初始化 cinit 的方法,而 ProGuard 同步保留他们的无参构造方法。
-
一个虚方法被保留 ProGuard 将保留整条继承数上的该方法。 r8 的仅仅保留该方法。 只在该方法调用 super 才会保留父类的虚方法。
-
一个类被 keep 。r8 会同步 keep 它的父类以及他们的接口。但是也只是仅仅 keep 住他们接口本身。 ProGuard 是 keep 他的父类。而接口并不会主动 keep 。 接口的 keep 是在接口方法被调用的时候。