Android 开发框架汇总
时间过的真快,转眼间就要进入到16年的8月了,现在应该是三伏期间,一个字“热”。前端时间整理了一篇“JS前端框架汇总”,然后紧接着又抽时间学习了一下Android开发,在慕课网上学习了很多视频,感觉收获很大,有些事吧,得坚持,多了解些总不是什么坏事。有时候我也会抽时间去国家图书馆看看,书的种类也没有限制,逮着啥看啥。
今天以Android初学者的身份我也试着整理一下Android开发中常用到的一些框架,就当是学习成果,其实多半也是从网上搜的,然后做了一个汇总。那咱就开始吧:
一、AndroidAnnotations
描述:AndroidAnnotations是一个能够让你快速进行Android开发的开源框架,它能让你专注于真正重要的地方。使代码更加精简,使项目更加容易维护,它的目标就是“Fast Android Development.Easy maintainance”。
特点:相比原生的Android开发,确实能够让你少些很多代码,它的首页也给出了一个简单的例子,通过例子也可以看到代码比之前几乎少写了一半
特性:(1).使用依赖注入(Dependency Injection)#本博接来下几篇的文章将要介绍的开源组件都使用DI, 不熟悉的可以了解一下Inversion of Control(IoC)
(2).简化的线程模型(Simplified threading model)
(3).事件绑定(Event binding)
(4).REST Client
(5).No Magic [不知道为什么这样称呼,直译过来就是:无魔法,它的意思是:AndroidAnnotations在编译的时候会产生一个子类(接下来你会明白),你查看这个子类,可以看到它是如何工作的]
二、Volley
描述:Volley是 Google 推出的 Android 异步网络请求框架和图片加载框架。
特性:(1). 扩展性强。Volley 中大多是基于接口的设计,可配置性强。 (2). 一定程度符合 Http 规范,包括返回 ResponseCode(2xx、3xx、4xx、5xx)的处理,请求头的处理,缓存机制的支持等。并支持重试及优先级定义。 (3). 默认 Android2.3 及以上基于 HttpURLConnection,2.3 以下基于 HttpClient 实现,这两者的区别及优劣在4.2.1 Volley中具体介绍。 (4). 提供简便的图片加载工具。
三、afinal框架
描述:afinal是一个开源的android的orm和ioc应用开发框架,其特点是小巧灵活,代码入侵量少。在android应用开发中,通过afinal的ioc框架,诸如ui绑定,事件绑定,通过注解可以自动绑定。通过afinal的orm框架,无需任何配置信息,一行代码就可以对android的sqlite数据库进行增删改查操作。同时,afinal内嵌了finalHttp等简单易用的工具,可以轻松的对http请求进行操作。
组成:(1).FinalHttp:用于请求http数据,直接ajax方式请求,文件上传, 断点续传下载文件等 (2).FinalBitmap:用于显示bitmap图片,而无需考虑线程并发和oom等问题。 (3).FinalActivity:完全可以通过注解方式绑定控件和事件,无需编写代码。 (4).FinalDb:android中sqlite的orm框架,一行代码搞定增删改查。
特点:设计简单小巧灵活orm零配置,但可以配置,可以通过灵活的注解配置达到更加强大的功能数据库查询支持DbModel,可以轻松的进行各种复杂的查询android的ui和事件绑定完全通过注解的方式,无需编写一行代码,http请求支持ajax方式请求,体积小(不到100KB),不依赖第三方jar包。
四、xUtils框架
描述:xUtils 包含了很多实用的android工具。xUtils 源于Afinal框架,对Afinal进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持,拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响。同时需要注意的是,xUitls最低兼容android 2.2 (api level 8)
组成:(1).ViewUtils:只需要一句注解,如@ViewInject、@OnClick,就能轻松摆脱小白似的代码,大大的上了一个档次。
(2).HttpUtils:支持的HTTP七种请求方式,非常便捷的满足你的接口请求的需要。同时还支持大文件上传下载,以及同步异步请求。
(3).BitmapUtils:你的程序因OOM强制关闭过嘛?你在为加在网络图片头疼嘛?有了组件,你将永久摆脱前面的问题。
(4).DbUtils:简单易用又出色的ORM框架,真的是谁用谁知道,直接轻松存储各种对象到sqlite数据库中,同时也能非常方便的进行各种条件查询,甚至分页查询,还有对表中数据的更新删除等操作,真正的实现。一行代码就可以进行增删改查。并且可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等,支持事务。
五、UniversalImageLoader框架
描述:我们在开发APP的时候肯定遇到加载图片的需求尤其是列表需要加载大量图片的时候,那么我们势必需要进行下载图片并且进行显示。但是由于内存等各方面的问题多多少少会遇到一些问题;例如:列表加载图片,图片错乱分布啦。
特性:(1).多线程下载图片,图片可以来源于网络,文件系统,项目文件夹assets中以及drawable中等
(2).支持随意的配置ImageLoader,例如线程池,图片下载器,内存缓存策略,硬盘缓存策略,图片显示选项以及其他的一些配置
(3).支持图片的内存缓存,文件系统缓存或者SD卡缓存
(4).支持图片下载过程的监听
(5).根据控件(ImageView)的大小对Bitmap进行裁剪,减少Bitmap占用过多的内存
(6).较好的控制图片的加载过程,例如暂停图片加载,重新开始加载图片,一般使用在ListView,GridView中,滑动过程中暂停加载图片,停止滑动的时候去加载图片
(7).提供在较慢的网络下对图片进行加载
总结:其实又做了一回词条解释的搬运工,将持续不断更新。好了,就写的这里,我是Jerry百