androidkit是我从大三开始做的一个项目,本来是打算做成工具包的,后来在毕业设计的促成下,决定把它做成一个android快速开发框架。目前稳定的构架如下:
如上图,一共分为六大模块:cache(缓存模块), db(数据封装的模块),http(HTTP请求模块),uibind(UI绑定模块),uilibs(UI库模块),utils(工具库模块)。
目前做得较完整的是http(有些功能待继续增加),uibind(完善稳定),utils(大量工具类)。
目前计划:
1.完成cache模块。
2.完善http模块(此模块包含两部分,一部分是提供静态方法的Http类及相关类,另一部分是async包里的内容,主要参考自国外的一个androido异步http框架,打算把它修改得有更好的扩展性)。
3.完成对sqlite3的封装,即完成orm部分。
4.封装一些实用且较常用的ui库。
目前各模块耦合度还是较低的,其他模块有些会依赖utils模块,但是除了utils模块之外,其他五个模块相互独立,可以各自与utils包打包成一个独立使用的jar包。
此篇仅为个人日志,亦框架计划。
另外,还盼路过的程序员哥哥姐姐们,多多指教,批评指正都接受。
最后附上一段个人思考:这是不是在重复造轮子?
对于android开发框架,说实话,我是去年10月份左右才了解到,通过开源中国了解到afinal的框架。但是第一次兴致冲冲地想去使用它的ui绑定功能时,却沮丧地发现自己用不了,因为它需要继承FinalActivity类,而我正好使用到百度地图,那时候的百度地图的版本是需要继承百度的MapActivity的。最后我决定自己实现ui绑定功能。于是用了一个上午的时间去完成了这个ui绑定的基本功能,并因此错过了校园招聘会。
也就是从这个时候开始,我才打算把自己原先在做的androidkit(顾名思义,你也应该知道我原来只是打算做成一个让开发更方便的工具包)再进行扩展,不再只是提供工具类,而是加上更多的内容。
后来就是忙于找工作和实习了。框架也没再继续做,整体的架构也挺乱的,虽然在开源中国2012年的受欢迎开源项目中因地理位置的关系获得了200票的支持。
而后,是在一些不认识的人和学校老师的支持下,决定继续完善它。于是重构,划分结构如上面所述。
后来,陆陆续续发现还有一些框架也在做类似的功能。比如国外有一个人写了一个注解框架(不是androidannotation),同样是做了UI绑定的功能。但是功能与我的uibind包提供的功能几乎一样,同样不需要继承,只需要静态方法调用即可进行绑定控件、事件、资源。
后来发现了另一个框架thinkandroid,但是下载下来之后发现其中的异步http模块也只是参考自上面所提到的android异步http框架,并没有我想要的扩展性(只支持File, String, Json, byte等一些类型)。而afinal也只是做了图片的缓存,并且是缓存到journal文件中(使用高版本的LruDiskCache类),而我想要的是有对象缓存,也有文件缓存。有些图片直接存为文件就好了,像qq客户端那样。那时候接触的afinal对数据库的操作也还是不支持事务的。
许多大大小小的问题积累下来,更加促成我去完成自己的androidkit的想法。因为我做的虽是与上面提到的相仿的,但是使用下来却会是不同的。这个世界不乏轮子,但是有些人可能需要摩托车轮,有些人需要自行车轮,而同样的自行车轮,也有不同的大小,精细之分。不要害怕重复造轮子,才是开源欣欣向上的原因。
个人牢骚,有点废话了。