场景:
Android项目里面把一些安卓源码文件放入项目(保持包名和源码文件一致)
问题:
这样做的目的是什么,如果这样做,那么apk运行时,系统中不就有两份同样的源码文件了吗?
解决方案:
可以看看VirtualAPK项目,里面就用到了这种技术。
这样做主要是针对在 app 中无法直接调用 Android Framework 中很多隐藏的 API 而创造的一系列 stub 类用来欺骗编译器,从而避免了使用反射去调用造成性能损失。
这种情况下,这种源码库只参与编译不参与打包,也就是类似于provided的效果,所以不存在两份源文件。