trycatchx / RocketX

🔥🔥 android 端编译加速插件🚀 动态识别未改动 module 并在编译流程中替换为 aar ,只编译改动模块,加速 Android apk 的编译速度。
861 stars 104 forks source link

请教:常量内联以及方法签名变更可能导致的问题 #29

Closed wxbin closed 2 years ago

wxbin commented 2 years ago

是否存在下面两种情况 场景一:App依赖A、B, 模块A 依赖 模块 B 中的常量, 修改模块B ,二次编译时, 只会编译App 及模块B, 导致A中使用的常量为旧的数据

场景二: A 依赖B 的一个方法, 修改B的方法参数、或者干脆删掉这个方法,A 模块由于没发生变更,不会重新编译,打包Apk成功,运行时会crash

trycatchx commented 2 years ago

@wxbin 你好,这个问题在做这个插件的时候团队已经预想到了这种弊端。aar 化都带来的速度,同时也会带来一定的 代码索引 问题。

gradle 对 aar 内的变量和方法 丢失目前是无法索引到。但是好在 在 as 上编写代码时候对于这种情况 是会有提示错误,也比较容易去发现问题。所以目前只能人工的去确保 模块之间的调用方法是否正确。

但是瑕不掩瑜的是,大多数场景是在频繁改动同一个或少量的 module ,以及 AS 会有明显的提示,问题不大呢。