一、隔离代码
首先要将做SDK的代码隔离出来,确认是打aar是一个还是多个。
多aar打包参考:
如果是单个,请隔离相关代码到一个module里,对外提供服务接口,对内隐藏实现。
二、打aar步骤
打aar可使用Gradle中的下图,在特定module点击如图示

三、依赖处理
3.1 依赖的第三方
目前的打包机制,aar以及其他的module是没有打进去的。所以提供SDk的时候要对应提供依赖的aar和其他module的aar,或者使用多aar打包机制。SDK应避免依赖第三方框架
3.2 三方依赖解决方案
部分常用的三方框架,应按照提供接口实现的方法,避免引入。例如图片框架,下载框架等。
实现也很简单,共需要三个类:
第一、提供对外实现的接口,例取名ICanDo。
第二、内部实现一个单例,例如SDKManager,里面有ICanDo的对象,提供set方法。外部实现了ICanDo后可set进来,满足外部实现方案。
第三、参数构造类,例取名SomeOptions。使用构造者模式,提供所有参数的构造类。
四、外部使用
SDK提供方应提供一个简便的调用方式,尽量减少参数。提供一定的回调提示,失败提示。
五、混淆
混淆可参考我的另一篇文章:juejin.cn/post/684490…
六、瘦身
图片瘦身,可用ImageOptim软件瘦身。
下载地址:imageoptim.com/mac
或者在线网站,如:tinypng.com/