# 框架 framework

以下为常用框架，无序

1. Afinal

```
description：
Afinal是一个android的ioc，orm框架，内置了四大模块功能：FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity，我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap，我们可以方便的加载bitmap图片，而无需考虑oom等问题。通过finalDB模块，我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块，我们可以以ajax形式请求http数据。详情请通过以下网址查看。

Afinal 是一个android的sqlite orm 和 ioc 框架。同时封装了android中的http框架，使其更加简单易用；

使用finalBitmap，无需考虑bitmap在android中加载的时候oom的问题和快速滑动的时候图片加载位置错位等问题。

Afinal的宗旨是简洁，快速。约定大于配置的方式。尽量一行代码完成所有事情。

eg：https://github.com/yangfuhai/afinal

powerful：

一个android的ioc，orm框架，内置了四大模块功能：FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity，我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap，我们可以方便的加载bitmap图片，而无需考虑oom等问题。通过finalDB模块，我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块，我们可以以ajax形式请求http数据。

优点：功能比较全面，文档完善，代码效率比较高。

缺点：没有项目demo，框架的时间比较久，代码冗余比较多（这也是无可避免的），文档比较老跟不上代码更新进度。
（这个评价是其他高人评的，他自己也有写了框架。我个人觉得以前Afinal算是经典了 用的人多）。
```

* xUtils

```
Git地址：https://github.com/wyouflf/xUtils
xUtils：可以说是Afinal的升级版。
xUtils 包含了很多实用的android工具。
xUtils 支持大文件上传，更全面的http请求协议支持(10种谓词)，拥有更加灵活的ORM，更多的事件注解支持且不受混淆影响...
xUitls 最低兼容android 2.2 (api level 8)
```

* ThinkAndroid

```
项目地址：https://github.com/white-cat/ThinkAndroid
官方介绍：

ThinkAndroid是一个免费的开源的、简易的、遵循Apache2开源协议发布的Android开发框架，其开发宗旨是简单、快速的进行Android应用程序的开发，包含Android mvc、简易sqlite orm、ioc模块、封装Android httpclitent的http模块,具有快速构建文件缓存功能，无需考虑缓存文件的格式，都可以非常轻松的实现缓存，它还基于文件缓存模块实现了图片缓存功能，在android中加载的图片的时候，对oom的问题，和对加载图片错位的问题都轻易解决。他还包括了一个手机开发中经常应用的实用工具类，如日志管理，配置文件管理，android下载器模块，网络切换检测等等工具
优点：功能看起来比较完善。个人觉得名字起的好。
缺点：从2013年就停止维护了，没有项目文档。
```

* LoonAndroid

```
官方介绍：
如果你想看ui方面的东西，这里没有，想要看牛逼的效果这里也没有。这只是纯实现功能的框架，它的目标是节省代码量，降低耦合，让代码层次看起来更清晰。整个框架一部分是网上的，一部分是我改的，为了适应我的编码习惯，还有一部分像orm完全是网上的组件。在此感谢那些朋友们。 整个框架式的初衷是为了偷懒，之前都是一个功能一个jar，做项目的时候拉进去，这样对于我来说依然还是比较麻烦。最后就导致我把所有的jar做成了一个工具集合包。 有很多框架都含有这个工具集合里的功能，这些不一定都好用，因为这是根据我个人使用喜欢来实现的，如果你们有自己的想法，可以自己把架包解压了以后，源码拉出来改动下。 目前很多框架都用到了注解，除了androidannotations没有入侵我们应用的代码以外，其他的基本上都有，要么是必须继承框架里面的activity,要么是必须在activity的oncreat里面调用某个方法。 整个框架式不同于androidannotations，Roboguice等ioc框架，这是一个类似spring的实现方式。在整应用的生命周期中找到切入点，然后对activity的生命周期进行拦截，然后插入自己的功能。

开源地址：https://github.com/gdpancheng/LoonAndroid

功能：
1自动注入框架（只需要继承框架内的application既可）
2图片加载框架（多重缓存，自动回收，最大限度保证内存的安全性）
3网络请求模块（继承了基本上现在所有的http请求）
4 eventbus（集成一个开源的框架）
5 验证框架（集成开源框架）
6 json解析（支持解析成集合或者对象）
7 数据库（不知道是哪位写的 忘记了）
8 多线程断点下载（自动判断是否支持多线程，判断是否是重定向）
9 自动更新模块
10 一系列工具类
有点：功能多
缺点：文档方面
```

* KJFrameForAndroid

```
项目地址：https://github.com/kymjs/KJFrameForAndroid

官方介绍：

KJFrameForAndroid 又叫KJLibrary，是一个android的orm 和 ioc 框架。同时封装了android中的Bitmap与Http操作的框架，使其更加简单易用；KJFrameForAndroid的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发，最终实现快速而又安全的开发APP。我们提倡用最少的代码，完成最多的操作，用最高的效率，完成最复杂的功能。

功能：

一个android的orm 和 ioc 框架。同时封装了android中的Bitmap与Http操作的框架，使其更加简单易用； KJFrameForAndroid开发框架的设计思想是通过封装Android原生SDK中复杂的复杂操作而达到简化Android应用级开发，最终实现快速而又安全的开发APP。总共分为五大模块：UILibrary，UtilsLibrary，HttpLibrary，BitmapLibrary，DBLibrary。

优点：功能比较全面，代码效率很高，文档完善，有项目demo，出来的比较晚借鉴了很多大型框架经验。

缺点：项目文档是html页面，查看起来很不方便，项目交流平台没多少人说话（难道大神都是不说话的？）

（这两个评价是KJFrameForAndroid的作者对自己的评价，个人觉得作者是个天才。他的评价可能刚写完网上发布后写的。我在给他更新评价。因为现在已经过去了几个月一直在时不时更新。功能很全，项目文档也很全面，而且代码里注释最多 这方面这个很难得。交流平台人很多挺热闹，作者希望更热闹这样框架越来越完善。对于初学者希望看到Demo更完善）
```

* dhroid

```
官方介绍：

dhroid 是基于android 平台, 极速开发框架，其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展.使你更快,更好的开发商业级别应用

开源地址: http://git.oschina.net/tengzhinei/dhroid

功能：

1.Ioc容器: (用过spring的都知道)视图注入,对象注入,接口注入,解决类依赖关系

2.Eventbus: android平台事件总线框架,独创延时事件,事件管理轻松

3.Dhnet: 网络http请求的解决方案,使用简单,减少代码,自带多种网络访问缓存策略

4.adapter模块: 数据绑定轻松,不用写多余的adapter,天生网络支持(一行代码搞定加载,刷新问题)

5.DhDb: android中sqlite的最轻量orm框架(增删改查轻松搞定)

6.Perference: android自带Perference 升级版,让你的Perference更强大,更方便

工具集合 JSONUtil(安全处理json),ViewUtil(数据绑定更快) ThreadWorker(异步任务工具)...

优点：功能全面，有demo，作者也是为公司开发的框架。

缺点：文档方面现在不是很好，就eoe上的那些。
```

* SmartAndroid

```
项目地址：http://www.aplesson.com/smartAndroid/demos

官方介绍：
SmartAndroid是一套给 Android开发者使用的应用程序开发框架和工具包。它提供一套丰富的标准库以及简单的接口和逻辑结构，其目的是使开发人员更快速地进行项目开发。使用 SmartAndroid可以减少代码的编写量，并将你的精力投入到项目的创造性开发上。

功能：

SmartAndroid 拥有全范围的类库，可以完成大多数通常需要的APP开发任务，包括： 异步网络操作相关所有功能、强大的图片处理操作、轻量级ORM数据库Sqlite库、zip操作 、动画特效、Html等解析采集、事件总线EventBus/Otto、Gson(Json)、AQuery、主流所有UI控件（例如：ActionbarSherlock，SlidingMenu，BottomView，Actionbar，DragListView等10多种UI库）等。

优点：功能非常全，超出你索要、文档完善（作者很全面，官方网站是web响应式网站，框架里功能有UI各种特效应该最全了，一直更新中）

缺点：jar包大点？（功能多不可避免，不是问题），在线文档（随响应式的手机访问也方便，但是网速慢就不好了，页面打开不是很流畅）
```

* andBase

```
官方介绍：
andbase是为Android开发者量身打造的一款开源类库产品
开源地址：https://code.jd.com/zhaoqp2010_m/andbase

功能：

1.andbase中包含了大量的开发常用手段。
如网络下载，多线程与线程池的管理，数据库ORM，图片缓存管理，图片文件下载上传，Http请求工具，常用工具类（字符串，日期，文件处理，图片处理工具类等），能够使您的应用在团队开发中减少冗余代码，很大的提高了代码的维护性与开发高效性，能很好的规避由于开发疏忽而导致常犯的错误。

2.andbase封装了大量的常用控件。
如list分页，下拉刷新，图片轮播，表格，多线程下载器，侧边栏，图片上传，轮子选择，图表，Tab滑动，日历选择器等。

3.强大的AbActivity，您没有理由不继承它。
继承它你能够获得一个简单强大可设置的操作栏，以及一系列的简单调用，如弹出框，提示框，进度框，副操作栏等。

4.提供效率较高图片缓存管理策略，使内存大幅度节省，利用率提高，效率提高。
程序中要管理大量的图片资源，andbase提供简单的方法，几步完成下载与显示，并支持缩放，裁剪，缓存功能。

5.封装了大量常见工具类。
包括日期，字符，文件，图片等各种处理函数，多而全。

6.用andbase大量减少handler的使用，而采用回调函数，代码更整洁。
handler会产生大量代码，并且不好维护，andbase对handler进行了封装。

7.简单轻量支持注解自动建表的ORM框架（支持一/多对多的关联操作）。

写sql，建表，工作量大，andbase提供更傻瓜异步增删改查工具类。

8.异步请求http框架，网络请求标准化，支持文件上传下载，get，post，进度显示。
包含了异步与http请求的工具类，实用。

9.热情的支持群体。
优点：功能很全，demo做的好 、API文档完善、接近完美
缺点：希望文档更详细些。
```

* AndroidAnnotations

```
项目地址：https://github.com/excilys/androidannotations
功能：
完全注解框架，一切皆为注解：声明控件，绑定控件，设置监听，setcontentview，长按事件，异步线程，全部通过注解实现。
优点：完全的注解，使开发起来更加便利，程序员写的代码也更少。
缺点：文档是全英文的加上功能比较少没有具体研究，由于一切都是注解，感觉效率不高，不过根据官方介绍说并不是使用的反射加载，所以效率比一般注解高很多。
```

* volley

```
Google I/O 2013 - Volley: Easy, Fast Networking for Android
https://www.youtube.com/watch?v=yhv8l9F44qo

project： https://github.com/smanikandan14/Volley-demo

Published on May 16, 2013
Ficus Kirkpatrick Volley is a library that makes networking for Android apps easier and most importantly, faster. We'll give an overview of how it works, common patterns that work well with it, and a walkthrough of how you can easily load thumbnail images for your ListView from the network in parallel.
```

* android-async-http

```
项目地址：https://github.com/loopj/android-async-http文档介绍：http://loopj.com/android-async-http/  (1) 在匿名回调中处理请求结果 (2) 在UI线程外进行http请求 (3) 文件断点上传 (4) 智能重试 (5) 默认gzip压缩 (6) 支持解析成Json格式 (7) 可将Cookies持久化到SharedPreferences
有点：很简单很实用
缺点：功能比较少， （只是针对的功能不是什么缺点）
```
