Android 开发框架介绍
一.概述
现android开发有很多开发框架使用,做App不一定用到框架,但好框架的思想也是值得学习。选择合适的开发框架可提供实用功能,简化项目开发提升效率。
二.Afinal框架
简介
Afinal是一个android的Sqlite orm和ioc框架,封装android中Http框架简单易用。宗旨是简洁快速,约定大于配置原则。尽量一行代码完成所有事情。
功能模块介绍
1) 数据库模块:android中orm框架,使用线程池对sqlite进行操作。
2) 注解模块:android中ioc框架,完全注解方式进行UI和事件绑定。无需findViewById和setClickListener等。
3) 网络模块:通过httpclient封装http数据请求,支持ajax方式加载,下载,上传文件。
4) 图片缓存模块:通过FinalBitmap,imageView加载bitmap时无需考虑bitmap加载过程中出现oom和android容器快速滑动时图片错位等问题。FinalBitmap可以配置加载线程数,缓存大小,缓存路径,加载动画等。FinalBitmap内存管理使用lru算法,没有弱引用(android2.3后google不建议使用弱引用,2.3后强制回收软引用和弱引用),更好的管理bitmap内存,FinalBitmap可以自定义下载器用来扩展其它协议网络图片显示(ftp等),同时可以自定义Bitmap显示器在imageView显示图片时播放动画(默认渐变动画)。
三.XUtils框架
简介
xUtils包含很多实用android工具,支持大文件上传更全面http请求协议支持,更加灵活的ORM更多事件注解支持且不受混淆影响,最低兼容android2.2。
功能模块介绍
1) DbUtils模块:android中orm框架,一行代码可进行增删改查;支持事务,默认关闭;通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(混淆时需注解表名和列名)。
2) ViewUtils模块:android中ioc框架,完全注解方式进行UI,资源,事件绑定;新事件绑定方式,代码混淆后仍可以正常工作。目前支持20中事件绑定,参见ViewCommonEventListener类和com.lidroid.xutils.view.annotation.event。
3) HttpUtils模块:支持同步,异步方式请求;支持大文件上传不会oom;支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;下载支持301/302重定向,支持设置是否需要根据Content-Disposition重命名下载文件;返回文本内容的请求(默认只启用GET请求)支持缓存,可设置默认过期时间和当前请求过期时间。
4) BitmapUtils模块:加载bitmap时无需考虑bitmap加载中出现oom和android容器快速滑动时图片错位;支持网络图片和本地图片加载;内存管理使用lru算法;可配置线程加载数量,缓存大小,缓存路径,加载动画等。
四.ThinkAndroid框架
简介
ThinkAndroid是遵循Apache2开源协议发布的android开发框架,其开发宗旨简单,快速进行android程序开发。
功能模块介绍
1) MVC模块:实现视图和模型分离。
2) Ioc模块:android中ioc模块完全注解方式实现UI绑定,res资源读取,对象初始化。
3) 数据库模块:android中orm框架,使用线程池对sqlite进行操作。
4) http模块:通过httpclient封装http请求,支持同步异步加载。
5) 缓存模块:简单配置和设计实现很好的缓存。
6) 图片缓存模块:image加载无需考虑oom和android容器快速滑动时图片错位。
7) 配置器模块:简易实现配对配置操作,目前支持Preference,Properties。
8) 日志打印模块:轻易实现日志打印,支持日志扩展,目前支持sdcard写入本地日志,控制台打印。
9) 下载器模块:实现多线程后台下载,断点续传,对下载进行控制可开始,暂停,删除等。
10) 网络状态检测模块:当网络状态改变时对其进行检测。
五.LoonAndroid框架
简介
类似Spring实现方式,在应用生命周期中找到切入点对Activity生命周期进行拦截插入自己功能。纯框架无UI和特效,初衷为开发偷懒,框架中集合了很多工具集合包。
功能模块介绍
1) 自动注入模块:只需继承框架内application即可。
2) 图片加载:多重缓存,自动回收,最大限度保证内存安全。
3) 网络请求:实现所有http请求
4) Eventbus:集成一个开源框架
5) 验证框架:集成验证框架
6) Json解析:支持解析成集合或对象
7) 数据库
8) 多线程断点下载,自动判断是否支持多线程和重定向
9) 自动更新模块
10) 一系列工具类
六.KJFrameForAndroid框架
简介
KJFrameForAndroid又叫JLibrary是android orm和ioc框架,封装Bitmap和http操作框架,简单易用。使用最少代码,完成最多操作,有最高效率,完成最复杂功能。
功能模块介绍
1) Plugin模块:apk无需安装即可被应用调用;Activity动态加载(生命周期和交互事件,R文件资源引用,插件与App数据通讯);Fragment完美加载使用;动态注册BroadcastReceiver;完美使用绑定式,启动式Service;模拟LaunchMode效果(launchModer实际是一个虚拟的,生命周期调用还是一样的,仅仅模拟出系统BackStack);完美集成KJFrameForAndroid中UiLibrary->Topology全部功能,支持注解绑定控件并设置监听。
2) UILibrary模块:Widget封装常用控件上下拉的KJListView,KJScrollView,双指缩放旋转ScaleImageView等(具体看项目org.kymjs.aframe.widget)。Topology拓扑,规范Activity中数据及控件的初始化包含使用IOC设计思想的控件初始化方式。通过注解绑定UI设置监听。包含常见的布局界面,侧滑特效,高效的Tab导航,3D效果切换。为开发者定义完善的BaseActivity和BaseFragment,只需继承就可以获得Topology全部功能。
3) BitmapLibrary模块:任何View加载图片时都无需考虑OOM和android容器快速滑动时出现图片错位问题,默认使用Lru算法管理缓存。
4) HttpLibrary模块:KJLibrary默认对所有Http通讯数据做缓存处理,缓存时间为5分钟。节省流量,减轻服务器压力。HttpLibrary使用HttpClient与HttpUrlConnection两种方式实现网络通讯,数据上传,多线程断点下载。根据Google建议2.3之前由于HttpUrlConnection不稳定且有bug尽量使用HttpClient,2.3系统后只是简单的数据交互应该使用更轻量级,易扩展的HttpUrlConnection。
5) DBLibrary模块:包含android的orm框架,一行代码完成增删改查。支持一对多,多对一等查询。DB模块很大程度上参考了finalDB设计,并在此基础上完善全部API注释与更多可定制的DB操作。
6) UtilsLibrary模块:包含应用开发常用工具类,如系统级别Log管理,网络状态监测,Bitmap压缩类,获取屏幕宽高及单位转换,错误信息处理,文件处理,Preference,字符串操作与常用正则判断等(具体查看项目org.kymjs.aframe.utils)。
Android 开发框架介绍的更多相关文章
- Android 开发框架汇总
Android 开发框架汇总 时间过的真快,转眼间就要进入到16年的8月了,现在应该是三伏期间,一个字“热”.前端时间整理了一篇“JS前端框架汇总”,然后紧接着又抽时间学习了一下Android开发,在 ...
- Android 开发框架
Android 开发框架包括基本的应用功能开发.数据存储.网络访问三大块. 1 应用方面 一般而言,一个标准的Android 程序包括Activity.Broadcast Intent Receive ...
- android Animation介绍
Animation介绍: 在Android SDK介绍了2种Animation模式: 1. Tween Animation:间动画,通过对场景里的对象不断做图像变换(平移.缩放.旋转)产生动画效果,即 ...
- android AsyncTask介绍(转)
android AsyncTask介绍 AsyncTask和Handler对比 1 ) AsyncTask实现的原理,和适用的优缺点 AsyncTask,是android提供的轻量级的异步类,可以直接 ...
- Android开发框架androidannotations的使用
Android开发框架AndroidAnnotations,它除了有依赖注入的特性以外,还集成了Ormlite,Spring-android中的REST模板.使用起来非常方便,大大提高了开发效率. 使 ...
- Android monkey介绍
Android monkey介绍 原文地址 1 简略 monkey是android下自动化测试比较重要的的一个工具,该工具可以运行在host端或者设备(模拟器或真实设备).它会向系统发送随机事件流(即 ...
- 一个快速、完善的Android开发框架整合实践(QuickAndroid)
https://github.com/alafighting/QuickAndroid QuickAndroid 一个快速.完善的Android开发框架整合实践 QA项目简介 本框架QuickAndr ...
- Spring Richclient — 企业级富客户端开发框架介绍,第 1 部分
Spring Richclient — 企业级富客户端开发框架介绍,第 1 部分 http://www.ibm.com/developerworks/cn/java/j-lo-spring-richc ...
- [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍
注:为了看上去比较清晰这里只转载了中文 原地址: [Learn Android Studio 汉化教程]第一章 : Android Studio 介绍 本章将引导您完成安装和设置开发环境,然后你就可 ...
随机推荐
- sgu 138
自己猜测了一下 按比赛次数 从大到小排 然后类似于模拟 先排胜的场次 当只剩一场 将它定义为败 #include <cstdio> #include <cstdlib> # ...
- 趣味Python入门(一):初识Python
[编者按]本文作者是 Abhishek Jaiswal ,擅长 .NET.C#.Python 等多种语言的技术控.本文中,作者通过活泼有趣的口吻向大家介绍了 Python 语言的基础知识,后期多学习历 ...
- Sublime Text 3配置与vim模式(待完整)
Sublime Text 3通过设置默认值与用户值的方式,来进行配置.默认值不允许更改,用户值是用户进行配置.同一属性,当用户值存在时,默认值就无效.打开Preference,如图: 先贴下我的Set ...
- HDU 1227 Fast Food (DP)
题目链接 题意 : 有n个饭店,要求建k个供应点,要求每个供应点一定要建造在某个饭店的位置上,然后饭店都到最近的供应点拿货,求出所有饭店到最近的供应点的最短距离. 思路 : 一开始没看出来是DP,后来 ...
- cognos8.3 sample在DB2里的安装
db2 create db c83 alias c83 using codeset UTF-8 territory CA 创建sample数据库 db2set db2codepage= db2 cha ...
- java使用Apache POI操作excel文件
官方介绍 HSSF is the POI Project's pure Java implementation of the Excel '97(-2007) file format. XSSF is ...
- leetcode 4 : Median of Two Sorted Arrays 找出两个数组的中位数
题目: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find the median of the ...
- 关于java -version版本问题
因为安装了Oracle,而Oracel会自带JDK,安装完成后,会自动把自己的JDK设置在最前面(path变量里). 这就是为什么结果与事实不相同的原因. 解决方法: 进入系统环境变量,找到path变 ...
- hadoop拾遗(五)---- mapreduce 输出到多个文件 / 文件夹
今天要把HBase中的部分数据转移到HDFS上,想根据时间戳来自动输出到以时间戳来命名的每个文件夹下.虽然以前也做过相似工作,但有些细节还是忘记了,所以这次写个随笔记录一下. package com. ...
- android源码编译1
一.环境说明: 1.liunx系统:Ubuntu12.04 2.jdk:sun-java6-jdk 3.g++4.5 gcc4.5 二.android源码的目录结构 |-- Makefile |-- ...