-
原因是为了避免与调用方由于使用相同的库引起的冲突,增加调用方集成的工作量,降低集成方的体验。
-
开源库的不断更新,所以 SDK 需要及时保持更新,会增加额外的维护的工作量。
-
由于引入开源库,出现问题排查困难。
5. SDK 包尽量小
SDK 包一定要小而精。
小是指包的体积要尽可能的小。避免造成接入方的 App 增加很大,不然会引起接入方的不满,甚至下架。
精是指功能要专注。比如我们的 SDK 是用于埋点的,那里面设计提供很多常见的工具类显然是不合适的。
6. 兼容性
兼容性是每个开发者都会遇到的问题。在 SDK 开发中更要保证新版本对于旧版本的兼容。常见的兼容性问题分为两类。
新老接口兼容
一般出现接口兼容性的问题主要是由于最初需求考虑不完善,导致后面进行方案优化时引起接口的变更,使之前的接口成为历史的老大难问题,最终造成删除难度大。
新功能兼容性
这里的兼容性问题分为两个方面:接入新功能的 App 和未接入新功能的 App。举个例子,当初我们 SDK 适配 OAID 的方案时,由于需要使用 MSA 提供的集成包才能获取,但是在 SDK 中一般是不轻易集成一个第三方的库,所以在设计这个方案时,就需要让接入方自己集成库,SDK 中提供获取的代码逻辑。
最终在确定开发方案时,就需要考虑到一部分接入方使用了该功能,需要保证该功能正常读取。一部分接入方没有使用到该功能,要确保无异常出现。一般这种兼容性问题会决定开发方案的技术实现。
[](()3.集成与