👩💻 Join our community of thousands of amazing developers!
做 Java 开发的同学应该对 SPI (Service Provider Interface) 不会陌生,无论是 JDK、Gradle 亦或是一些第三方框架,都或多或少的用它来实现可扩展的能力,为什么在 Android 平台上却鲜为人知呢? 个人认为原因有 2 点: Android 与 Java 应用的分发方式不同 Java 应用采用 JAR 分发,扩展起来非常容易,而 Android APK 一旦打好包,就相当于固化下来了,实现可扩展需要借助于其它非官方推荐的手段 SPI 在 Android 平台上的性能堪忧 由于 Android 设备的性能普遍低于 PC ,加上 Android 平台特有的 ANR 机制,使得 SPI 很容易在 Android 上发生 卡顿甚至 ANR 什么是 SPI Java 官方的定义是: Service 提供访问特定应用功能和特性的一系列编程接口和类 Service Provider Interface (SPI) 由 Service 定义的一系列公共接口和抽象类 Service Provider SPI 的实现 SPI 的性能缺陷 ...