三方SDK组件化

Android

三方SDK组件化时需要针对三方SDK提供的接口定义一个interface(比如框架推送协议AbstractPushManager),interface中必选方法为三方SDK必需的基础方法。同时新建一个SDK管理类(比如框架推送管理类HLPushManager),SDK管理类持有一个static类型实例,且实现interface中定义的方法,SDK管理类提供的方法的内部实现通过调用该static实例来调用到三方SDK。

不同的三方sdk建议各自定义一个实现interface的类,并在该类初始化的getInstance方法中将类的单例设置给SDK管理类的static实例。

iOS

三方SDK组件化时需要针对三方SDK提供的接口定义一个Protocol(比如框架推送协议HLPushManagerProtocol),Protocol中必选方法为三方SDK必需的基础方法。同时新建一个SDK管理类(比如框架推送管理类HLPushManager),SDK管理类持有一个id类型且实现Protocol的属性,SDK管理类提供的方法的内部实现通过调用该属性来调用到三方SDK。

id类型且实现Protocol的属性在何时赋何值呢?建议定义一个实现Protocol的类,并在该类的load方法中将类的单例设置给SDK管理类的属性,从而当实现了Protocol的类被加载时SDK管理类的属性就已经被赋值。