spi在android中的使用
概述 什么是spi SPI (Service Provider Interface)属于 动态加载接口实现类 的的一项技术,是JDK内置的一种服务提供发现机制,使用ServiceLoader去加载接口对应的实现,这样我们就不用关注实现类,ServiceLoader会告诉我们。 官方文档 描述为: 为某个接口寻找服务的机制,类似IOC思想,将装配的控制权交给ServiceLoader。 解决问题 只提供服务接口,具体服务由其他组件实现,接口和具体实现分离(类似桥接),同时能够 通过系统的ServiceLoader 拿到这些实现类的集合,统一处理,这样在组件化中往往会带来很多便利,SPI机制可以实现不同模块之间方便的面向接口编程,拒绝了硬编码的方式,解耦效果很好 即相当于制定标准,然后不同实现方用不同的方式实现标准供使用方使用,并且可以动态加载 在Android中如何使用 上面说的可能比较抽象,下面将结合例子说明下在Android中的运用。 这种机制在使用起来也比较简单,使用步骤如下: 定义接口和接口的实现类 创建resources/META-INF/services目录 在上述Service目录下,创建一个以接口名(类的全名) 命名的文件, 其内容是实现类的类名 (类的全名)。 在services目录下创建的文件是com.binglumeng.spidemo.IService