Android 开发框架汇总
Android 开发框架汇总
时间过的真快,转眼间就要进入到16年的8月了,现在应该是三伏期间,一个字“热”。前端时间整理了一篇“JS前端框架汇总”,然后紧接着又抽时间学习了一下Android开发,在慕课网上学习了很多视频,感觉收获很大,有些事吧,得坚持,多了解些总不是什么坏事。有时候我也会抽时间去国家图书馆看看,书的种类也没有限制,逮着啥看啥。
今天以Android初学者的身份我也试着整理一下Android开发中常用到的一些框架,就当是学习成果,其实多半也是从网上搜的,然后做了一个汇总。那咱就开始吧:
描述: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在编译的时候会产生一个子类(接下来你会明白),你查看这个子类,可以看到它是如何工作的]
官网:http://androidannotations.org/
代码地址:https://github.com/excilys/androidannotations/wiki
二、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百
Android 开发框架汇总的更多相关文章
- Android快速开发框架汇总
知乎贴:Android 开发有什么好的架构么? 里面这篇不错:Architecting Android…The clean way? 知乎贴: 一.如果对App的性能.包size有要求,对代码有洁癖不 ...
- Android 开发框架
Android 开发框架包括基本的应用功能开发.数据存储.网络访问三大块. 1 应用方面 一般而言,一个标准的Android 程序包括Activity.Broadcast Intent Receive ...
- 国内HTML5前端开发框架汇总
国内HTML5前端开发框架汇总 Dawei Cheng 程大伟... 于 星期日, 02/12/2012 - 20:53 提交 国外很有多优秀的HTML5前端开发框架相信大家都耳熟能详:JQuery ...
- Android开发框架androidannotations的使用
Android开发框架AndroidAnnotations,它除了有依赖注入的特性以外,还集成了Ormlite,Spring-android中的REST模板.使用起来非常方便,大大提高了开发效率. 使 ...
- 一个快速、完善的Android开发框架整合实践(QuickAndroid)
https://github.com/alafighting/QuickAndroid QuickAndroid 一个快速.完善的Android开发框架整合实践 QA项目简介 本框架QuickAndr ...
- Android 开发框架介绍
一.概述 现android开发有很多开发框架使用,做App不一定用到框架,但好框架的思想也是值得学习.选择合适的开发框架可提供实用功能,简化项目开发提升效率. 二.Afinal框架 简介 Afinal ...
- Flex 开发框架汇总
1.现有成熟Flex框架 Cairngorm (Adobe Open Source) - MVC framework PureMVC (Open Source) - MVC framework ...
- Android开发框架--AndroidAnnotations(一)
annotation:注解 什么是框架 框架是基石 android开发中哪些内容可以做成框架呢 网络模块 图片缓存模块 数据库模块 UI基础模块 开发框架给我们带来了哪些好处 提升开发效率 代码简洁 ...
- .NET常用开发框架汇总
分布式缓存框架:Microsoft Velocity:微软自家分布式缓存服务框架.Memcahed:一套分布式的高速缓存系统,目前被许多网站使用以提升网站的访问速度.Redis:是一个高性能的KV数据 ...
随机推荐
- JQuery官方学习资料(译):使用JQuery的.index()方法
.index()是一个JQuery对象方法,一般用于搜索JQuery对象上一个给定的元素.该方法有四种不同的函数签名,接下来将讲解这四种函数签名的具体用法. 无参数的.index() < ...
- paip.日期时间操作以及时间戳uapi php java python 总结
paip.日期时间操作以及时间戳uapi php java python 总结 ///uapi Date 函数 | Day 函数 | Hour 函数 | Minute 函数 | Month 函数 | ...
- jQuery获取浏览器URL链接的值
代码: 方法一: $.extend({ getUrlVars: function () { var vars = [], hash; ).split('&'); ; i < hashes ...
- sql 读取本地txt文件批量插入数据库
--导入 INSERT INTO [netmonsdb].[dbo].[keywordlist]([keyword]) SELECT * FROM OPENROWSET( BULK 'D:/xmsys ...
- [salesforce] URLFOR function finally
While developing your Visualforce pages you may need to be able to obtain the URL of certain actions ...
- 使用LotusScript操作Lotus Notes RTF域
Lotus Notes RTF域的功能也非常强大,除了支持普通的文本以外,还支持图片.表格.嵌入对象.Http 链接.Notes 链接.附件等等众多的类型.本文将介绍如何使用这些类来灵活操作富文本域. ...
- [算法导论]DFS @ Python
class Graph: def __init__(self): self.V = [] class Vertex: def __init__(self, x): self.key = x self. ...
- 【实用技巧】取消Win7开机账户的手动选择
因为前面碰到的一些事情,稍有感慨. 关于win7的一些小技巧都不是什么很有技术含量东西,或者说很浅显.我说一个技巧,也许很多人都知道,也许也早有人说过.但我想说的是我不是在炫耀什么,我只是想分享一些我 ...
- Md5加密方法
package com.atguigu.surveypark.util; import java.security.MessageDigest; /** * 数据 */ public class Da ...
- java产生随机数的几种方式
java产生随机数的几种方式 一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他 ...