一、需求背景
做组件化的过程中,参考了 微信的下面的博客链接,实现了接口暴露的形式——“.api化”。
- https://mp.weixin.qq.com/s/6Q818XA5FaHd7jJMFBG60w
使用方式和思路都很简单。对于java文件,将工程里想要暴露出去的接口类后缀名从“.java”改成“.api”,就可以了。
这样暴露的接口因为后缀名是.api,所以无法直接被其他的地方引用。而且具体的实现类也在组件内部,其他的组件无法直接调用。
其他组件如何调用这些暴露的接口呢?
自动生成一个“SDK”工程,拷贝.api后缀文件到工程中就行了,后面其他工程依赖编译的只是这个生成的工程。
然后通过编写其他的gradle脚本,将 .api后缀的文件名,改成.java的后缀名,这样当前组件通过.api化的方式就可以暴露接口到一个SDK工程,其他组件依赖这个工程就可以调用这些暴露的接口了。
但是这里有个小细节,如果想编辑.api后缀的