这篇博文博主在心里酝酿了好久了,在从事SDK开发的时候 从最初的版本到现在还未完 成的版本,算是收获良多,本篇博文就把自己的心得体会记录下来,算是个总结吧,估计篇幅不少,博主会尽量组织的合理点来做说明。
闲言少叙,开始发车。
项目组开发的SDK的从外观体现来看(抛开了具体的业务不谈)其核心原理就是动态的向一个ViewGroup里面添加(addView)和删除(remove)View的过程。
最早版本的SDK是在eclipse上开发的,每次都是以jar的形式混淆过后发布,后来入职不久以后,被博主改成了使用Android Studio,虽然不能说是鸟枪换炮,但也比Eclipse好用多了。
SDK的多元化模块的进化历程: 最初版本的SDK就是一个大的模块:也就是一个project或者module下根据包名来区分各个包的功能: 在一个Eclipse 的Project下分成形如cn.com.xxx.net、cn.com.xxx.img、cn.com.xxx.util、cn.com.xxx.view等看起来很合理的分包方式;但是呢很显然这种方式有一个很大不足,就是代码的复用性价值不大;比如两个不同的项目因为有两个相似的功能,比如都需要图片库和网络库的功能,要如何做呢?最初的做法是A代码中的net和img包下的代码通过ctrl+c/ctrl+v的方式整体复制到B项目中使用,现在想来真是what the fuck!
除了硬性的复制粘贴这个弊端之外,还有一个弊端:图片库/网络库都是使用的github现成的库Glide/OKhttp, 这样整个项目中用到图片的地方充斥着Glide.with和OkhttpClient.