检测包兼容性的方法

Class扫描分常量区 和 方法

lint可以做的事情
Classdog,lint不能做的事,调用了bind的缺没有调用unbind。
类方法扫描
资源隔离

Code兼容性检测

K-V
组件最新版本 - 不兼容组件版本
组件最新版本 - 不兼容线上版本、依赖树存在多份当前组件的不同版本,并且不兼容
对组件版本列表建立兼容段位表。为1的有N个版本,为2的有N个版本,1和2不兼容。
对SDK对外接口,控制耦合,控制代码边界

  1. 兼容性静态分析 字节码对方法扫描
  2. 建立 全局兼容性段位表 段位修复
  3. 线上apk模块依赖关系保存
  4. 我们的协议接口

关心不兼容问题的两个视角:
SDK方:不兼容涉及业务方和业务版本。tips时机 在SDK上传到maven
业务方:由哪个sdk导致不兼容以及依赖链路,tips时机 三轮测试前

资源有兼容性问题么?

Jar的依赖剔除同名文件夹 merge resource

在Q4规划
兼容性分析
自动提取依赖

包dex有兼容性问题

资源问题同样有兼容性问题

你可能感兴趣的:(检测包兼容性的方法)