android 常用编程框架

来源:互联网 发布:数值最优化方法 pdf 编辑:程序博客网 时间:2024/06/05 15:08

     作为一名程序猿,好的工具会让你在搬运工的道路上越走越远。以下框架是AC在开发过程中经常会使用到的一些好的框架。列在这里做一个小小的总结,包含但不限于此。

响应式编程

  • RxJava

    https://github.com/ReactiveX/RxJava

  • RxAndroid

    https://github.com/ReactiveX/RxAndroid

消息通信

  • EventBus

    组件间的消息通信

    https://github.com/greenrobot/EventBus

注解框架

  • butterknife

    View注解框架

    https://github.com/JakeWharton/butterknife

  • dagger

    Android和Java的依赖注入框架

    https://github.com/google/dagger

数据解析

  • Gson

    https://github.com/google/gson

  • fastjson

    https://github.com/alibaba/fastjson

数据库

  • Realm

    移动数据库SQLite&ORM替代者

    https://github.com/realm/realm-java

  • ActiveAndroid

    无需写sql语句

    https://github.com/pardom/ActiveAndroid

  • greenDAO

    轻量级、快速ORM解决方案

    https://github.com/greenrobot/greenDAO

网络访问

  • OkHttp

    良心组织square开源项目

    https://github.com/square/okhttp

  • AndroidAsyncHttp

    异步请求http库

    https://github.com/loopj/android-async-http

  • retrofit

    又是square出品的精品,该http请求库与dagger、rxjava为越来越多人使用的三剑客

    https://github.com/square/retrofit

图片加载

  • Android-Universal-Image-Loader

    非常流行图片加载库

    https://github.com/nostra13/Android-Universal-Image-Loader

  • Glide

    https://github.com/bumptech/glide

  • fresco

    facebook出品,必属精品

    https://github.com/facebook/fresco

  • picasso

    https://github.com/square/picasso

多媒体操作

  • android-multipicker-library

    图片、视频、文件、音乐、通讯录选择器

    https://github.com/coomar2841/android-multipicker-library

  • Android-Image-Cropper

    图片裁剪库

    https://github.com/ArthurHub/Android-Image-Cropper

  • uCrop

    https://github.com/Yalantis/uCrop

  • android-UniversalMusicPlayer

    google的跨平台音乐播放器,支持手机、平板、手表和TV,是学习多平台的最好实例

    https://github.com/googlesamples/android-UniversalMusicPlayer

  • PhotoView

    图片手势操作放大缩小库

    https://github.com/chrisbanes/PhotoView

设备相关

  • zxing

    Java实现的条形码、二维码扫描开源库

    https://github.com/zxing/zxing

  • zbar

    C实现的条形码、二维码扫描库

    https://github.com/ZBar/ZBar

  • barcodescanner

    封装了zxing和zbar,更加简单的使用

    https://github.com/dm77/barcodescanner

MVP相关

  • Android-CleanArchitecture

    mvp架构学习实例

    https://github.com/android10/Android-CleanArchitecture

  • android-architecture

    google推荐的学习mvp架构的模版

    https://github.com/googlesamples/android-architecture

其他

  • 内存检测

    leakcanary

    https://github.com/square/leakcanary

  • 简单、漂亮的日志打印工具

    logger

    https://github.com/orhanobut/logge

  • 一、 Afinal

    官方介绍:

    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的宗旨是简洁,快速。约定大于配置的方式。尽量一行代码完成所有事情。

    项目地址:https://github.com/yangfuhai/afinal

    功能:

    一个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

    项目地址: https://github.com/smanikandan14/Volley-demo

    功能:

    Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健壮异步加载网络图片、网络数据

    优点:Google官方推荐,请看去年的开发者大会介绍。

    缺点:功能比较少,只有网络数据加载和网络图片加载

    十一、 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


原创粉丝点击