Android常用框架

技术分享图片

 

 

1.缓存框架
    1.1DiskLruCache:Java实现基于LRU的磁盘缓存,DiskLruCache不是google官方所写,但是得到了官方推荐,DiskLruCache没有编写到SDK中去,如需使用可直接copy这个类到项目中去。使用场景:如“清除缓存”,DiskLruCache一句话就可以搞定!
github https://github.com/JakeWharton/DiskLruCache
作者:JakeWharton
使用:implementation ‘com.jakewharton:disklrucache:2.0.2’
    1.2LruCache:Android 3.1的时候出现的,一般我们为了兼容低版本会使用v4包下的。LruCache是一种缓存策略,持有的是强引用,但是会控制在一个峰值下。它内部维护了一个队列,每当从中取出一个值时,该值就移动到队列的头部。当缓存已满而继续添加时,会将队列尾部的值移除,方便GC。LruCache用于内存缓存,在避免程序发生OOM和提高执行效率有着良好表现。
2.图片加载
    2.1Android Universal Image Loader:UIL曾经的图片加载框架王者,android开发老手都用过它。提供了大量配置方式,图片加载状态的回调(成功,失败,进行中),加载动画等;以及提供了移动端图片加载框架的缓存思路:三级缓存策略 sd卡-内存-网络;
github https://github.com/nostra13/Android-Universal-Image-Loader
作者 nostra13
使用:
implementation ‘com.nostra13.universalimageloader:universal-image-loader:1.9.5’
    2.2Picasso: 强力的图片下载、缓存框架。
更强调图片下载,你可以将picasso集成进你的项目中,你也可以结合gilde和UIL与picasso,三者一齐封装至你的项目中,按需所用。
github https://github.com/square/picasso
作者 square团队
使用:
implementation ‘com.squareup.picasso:picasso:2.5.2’
    2.3Fresco: 可以管理图片内存的框架
在管理图片内存领域上有着它的一片天地,渐进式加载、加载gif。
官网地址: https://www.fresco-cn.org/
github https://github.com/facebook/fresco
作者 facebook
使用:
implementation ‘com.facebook.fresco:fresco:0.12.0’
下面的依赖需要根据需求添加:
// 在 API < 14 上的机器支持 WebP 时,需要添加
implementation ‘com.facebook.fresco:animated-base-supp
    2.4Glide: 是一款专注于提供流畅划动能力的“图片加载和缓存框架”
图片加载类框架排名第一的框架,google 在2014开发者大会上演示的camera app就是基于gilde框架开发的
地址:
github https://github.com/bumptech/glide
作者 Bump Technologies团队
使用:
implementation ‘com.github.bumptech.glide:glide:4.5.0’
3.图片处理
    3.1 Picasso-transformations: Picasso提供多种图片变换的库。
地址:github https://github.com/wasabeef/picasso-transformations
作者 square团队
使用:
implementation ‘jp.wasabeef:picasso-transformations:2.1.0’
// If you want to use the GPU Filters
implementation ‘jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1’
     3.2Glide-transformations: 为众多著名图片加载框架(glide,Picasso,Fresco等)提供图片形状变幻能力的框架 。
github https://github.com/wasabeef/glide-transformations
作者:Daichi Furiya
使用:
implementation ‘jp.wasabeef:glide-transformations:2.0.2’
// If you want to use the GPU Filters
implementation ‘jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1’
    3.3Android-gpuimage: 一款基于OpenGL的图片渲染引擎,Android版的android-gpuimage就提供多达70多种图片渲染效果,你还在好奇美图秀秀是如何实现图片变幻的?有了它,一 切都不是问题。如果你是美图工具类的工程师,此框架的建设思路也会对你大有裨益。
github:https://github.com/CyberAgent/android-gpuimage
作者:CyberAgent 团队
使用:
implementation ‘jp.co.cyberagent.android.gpuimage:gpuimage-library:1.4.1’
4.网络请求
     4.1Android Async HTTP: 一款基于Http协议的异步请求的网络框架。
github https://github.com/loopj/android-async-http

作者:James Smith

使用:
implementation ‘com.loopj.android:android-async-http:1.5.0-SNAPSHOT’
     4.2AndroidAsync: 异步Socket,HTTP(客户端+服务器),WebSocket,和socket.io库。基于NIO而不是线程。
地址:https://github.com/koush/AndroidAsync/tree/master/AndroidAsync/src/com/koushikdutta/async
使用:
implementation ‘com.koushikdutta.async:androidasync:2.+’
    4.3OkHttp : okhttp是一款基于HTTP和HTTP2.0协议的网络框架,服务于java和android客户端,专注网络请求的安全高效。
地址 http://square.github.io/okhttp/
github https://github.com/square/okhttp
作者:square团队
使用:
implementation ‘com.squareup.okhttp3:okhttp:3.8.0’
    4.4Retrofit:
一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言。
Retrofit2.0开始内置okhttp框 架,Retrofit专注封装接口完成业务需求,okhttp专注网络请求的安全高效
地址
github https://github.com/square/retrofit
作者:square团队
使用:
implementation ‘com.squareup.retrofit2:retrofit:2.3.0’
    4.5Volley: google推荐使用的Android端网络请求框架
github https://github.com/google/volley
作者:google
5.数据解析:
    5.1Gson:Gson是谷歌官方推出的支持 JSON – Java Object 相互转换的 Java序列化/反序列化 库。
地址:
github https://github.com/google/gson
作者:google
使用:
implementation ‘com.google.code.gson:gson:2.8.4’
    5.2Jackson: 相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换。
地址:
github https://github.com/codehaus/jackson
使用:
compile ‘org.codehaus.jackson:jackson-mapper-asl:1+’
compile ‘org.codehaus.jackson:jackson-core-asl:1+’
    **5.3Fastjson:**一款基于json解析、生成的框架,快速是它最大的特性,阿里巴巴的出身保证了代码的质量和优越。
github https://github.com/alibaba/fastjson
作者:alibaba
使用:
compile ‘com.alibaba:fastjson:1.1.58.android’
    5.4:HtmlPaser 一个用来解析 HTML 文档的开放源码项目,提供了强大的 API 实现对 Html 网页进行信息转换 (Transformation) 以及从 HTML 文档里提取 (Extraction) 感兴趣的信息。它具有小巧、快速、使用简单的特点,并且经过严格的测试。
    5.5Jsoup: 方便的增删查改HTML中的元素
地址:
https://github.com/jhy/jsoup
使用:
compile ‘org.jsoup:jsoup:1.9.2’

6.数据库
    6.1OrmLite: JDBC和Android的轻量级ORM java包
地址:
https://github.com/j256/ormlite-core
https://github.com/j256/ormlite-android
使用:
compile ‘com.j256.ormlite:ormlite-android:5.0’
compile ‘com.j256.ormlite:ormlite-core:5.0’
     6.2Sugar : 用超级简单的方法处理Android数据库,不用写复杂的sql语句,而用简单的API即可完成创建和操纵数据
地址:
https://github.com/chennaione/sugar
使用:
compile ‘com.github.satyan:sugar:1.3’
    6.3GreenDAO: 是一款高效、快速的SQLite型数据库
,号称Android最快的关系型数据库支持数据库加密 greendao支持SQLCipher进行数据库加密
github https://github.com/greenrobot/greenDAO
使用:
classpath ‘com.android.tools.build:gradle:2.3.1’
classpath ‘org.greenrobot:greendao-gradle-plugin:3.2.2’ // add plugin
     6.4ActiveAndroid: 极大的简化数据库的使用,使用面向对象的方式管理数据库,告别手写SQL历史。每一个数据库表都可以映射为一个类。
地址:
https://github.com/pardom-zz/ActiveAndroid
使用:
compile ‘com.michaelpardo:activeandroid:3.1.0-SNAPSHOT’
     6.5SQLBrite: 响应式数据库框架,对 Android 系统的SQLiteOpenHelper和 ContentResolver 的轻量级封装,配合Rxjava使用。
https://github.com/square/sqlbrite
使用:
compile ‘com.squareup.sqlbrite:sqlbrite:0.7.0’
在处理线程问题时,由于要使用到RxAndorid中相关的类,所以我们还要引入
compile ‘io.reactivex:rxandroid:1.1.0’
    6.6Realm: 是一款移动端数据库框架,核心数据引擎C++打造,比普通的Sqlite型数据库快的多。
地址:github https://github.com/realm/realm-java
作者:Realm团队
使用:
compile ‘org.jsoup:jsoup:1.11.3’
7.依赖注入
    7.1ButterKnife: 提供了一种能力——使用注解生成模板代码,将view与方法和参数绑定。帮助开发者省却了频繁findviewbyid的烦恼,最新的Butter Knife还提供了onclick绑定以及字符串的初始化。
github:https://github.com/JakeWharton/butterknife
作者:JakeWharton ,也是square团队成员之一
使用:
compile ‘com.jakewharton:butterknife:8.6.0’
annotationProcessor ‘com.jakewharton:butterknife-compiler:8.6.0’
     7.2Dagger2 : 一款通过依赖注入降低程序间耦合的开发框架,如今google团队接手的dagger2版本,强力开发团队保证了代码在 设计上的优越性
github :https://github.com/google/dagger

作者:google
使用:
dependencies {
compile ‘com.google.dagger?2.x’
annotationProcessor ‘com.google.dagger:dagger-compiler:2.x’
}
//If you’re using classes in dagger.android you’ll also want to include:
compile ‘com.google.dagger:dagger-android:2.x’
compile ‘com.google.dagger:dagger-android-support:2.x’
annotationProcessor ‘com.google.dagger:dagger-android-processor:2.x’
    7.3AndroidAnotations : 可以加速Android的开发。它负责管道,让你专注于真正重要的事情。通过简化代码,它简化了代码的维护。
https://github.com/androidannotations/androidannotations
使用:
dependencies {
annotationProcessor “org.androidannotations:androidannotations:2.7”
compile “org.androidannotations:androidannotations-api:2.7”
}
8.图表
    8.1WilliamChart: Android图表库,已支持的功能,折线图
,条形图,横向条形图,堆叠柱形图,横向堆叠柱形图
https://github.com/diogobernardino/WilliamChart
使用:
compile ‘com.diogobernardino:williamchart:2.2’
    8.2HelloCharts: 一个用来生成统计图表的三方库,目前支持折线图、柱状图和饼状图等常见图表。支持缩放、滑动和动画效果。
https://github.com/lecho/hellocharts-android
使用:
compile ‘com.github.lecho:hellocharts-library:[email protected]
    8.3MPAndroidChart : 快速、简洁。强大著称的图表框架
github https://github.com/PhilJay/MPAndroidChart
作者:PhilJay
使用:
compile ‘com.github.PhilJay:MPAndroidChart:v3.0.2’
9.后台处理
    9.1Tape: Android和Java中使用的与队列类相关的集合类,轻快的、事务性的、基于文件的FIFO(先进先出)

https://github.com/square/tape
使用:
compile ‘com.squareup.tape2:tape:2.0.0-beta1’
    9.2Android Priority Job Queue: 提供后台任务管理能力的框架,不论是Activity重新加载、Service使用线程池时的任务优先级和并发问题,都不要担心,Job Manage会照顾优先级,持久性,负载平衡,延迟,网络控制,分组,优秀的多线程管理能力。
github https://github.com/yigit/android-priority-jobqueue
作者:Yigit Boyar
compile ‘com.birbit:android-priority-jobqueue:2.0.1’
10. 事件总线
    10.1EventBus: 是一款本地组件间通信框架,在大型项目的Activities,fragments,Threads,Services都可以看到它的使用场景,尽管 EventBus在向未创建的组件传递事件时有些局限,仅适合在“活着的”组件间传递消息,但仍不妨碍它活跃在各个大型项目各个场景里。
github https://github.com/greenrobot/EventBus
作者 greenrobot
使用:
compile ‘org.greenrobot:eventbus:3.0.0’
    10.2Otto: 一款老旧且强大的事件总线框架。是 square团队早先推出的事件响应型框架,淘宝app的事件驱动也是基于此框架封装的,如今square已经建议开发者采用RxJava RxAndroid来代替otto了。
github https://github.com/square/otto
作者:square
使用:
compile ‘com.michaelpardo:activeandroid:3.1.0-SNAPSHOT’
11. 响应式编程
    11.1RxJava: 一款Android客户端组件间异步通信的框架,RxAndroid是用来取代AnsyTask的。
github https://github.com/ReactiveX/RxAndroid
作者 JakeWharton
使用:
compile ‘io.reactivex.rxjava2:rxandroid:2.0.1’
compile ‘io.reactivex.rxjava2:rxjava:2.1.0’
    11.2RxJavaJoins: RxJava提供Joins操作(排列组合效果)
https://github.com/ReactiveX/RxJavaJoins
使用:
compile ‘io.reactivex:rxjava-joins:0.22.0’
    11.3RxAndroid: 一款Android客户端组件间异步通信的框架
https://github.com/ReactiveX/RxAndroid
使用:
compile ‘io.reactivex.rxjava2:rxandroid:2.0.1’
compile ‘io.reactivex.rxjava2:rxjava:2.1.5’
    **11.4RxBinding:**一款提供UI组件事件响应能力的框架,通过RXBinding,你将理解响应式编程的快乐,让项目里的事件流程更清晰。
github https://github.com/JakeWharton/RxBinding

作者:JakeWharton
使用:
Platform bindings:
compile ‘com.jakewharton.rxbinding2:rxbinding:2.0.0’
‘support-v4’ library bindings:

compile ‘com.jakewharton.rxbinding2:rxbinding-support-v4:2.0.0’
‘appcompat-v7’ library bindings:

compile ‘com.jakewharton.rxbinding2:rxbinding-appcompat-v7:2.0.0’
‘design’ library bindings:

compile ‘com.jakewharton.rxbinding2:rxbinding-design:2.0.0’
‘recyclerview-v7’ library bindings:

compile ‘com.jakewharton.rxbinding2:rxbinding-recyclerview-v7:2.0.0’
‘leanback-v17’ library bindings:

compile ‘com.jakewharton.rxbinding2:rxbinding-leanback-v17:2.0.0’
    11.5Agera: google专门推出一套响应式编 程框架服务于Android开发者,相比于之响应式编程框架榜首的 RxJava RxAndroid,它更轻量,两者最大的不同点在于agera基于push event、pull data (VS Rx系列 push data)。
github https://github.com/google/agera
作者:Google
使用:
compile ‘com.google.android.agera:agera:1.3.0’
扩展能力
compile ‘com.google.android.agera:content:1.3.0’
compile ‘com.google.android.agera:database:1.3.0’
compile ‘com.google.android.agera:net:1.3.0’
compile ‘com.google.android.agera:rvadapter:1.3.0’
compile ‘com.google.android.agera:rvdatabinding:1.3.0’
12. Log框架
     12.1Logger: 一款让log日志优雅显示的框架。它最大的亮点是优雅的输出log信息,并且支持多种格式:线程、Json、Xml、List、Map等
github https://github.com/orhanobut/logger
作者:Orhan Obut
使用:
compile ‘com.orhanobut:logger:2.1.1’
13. 测试框架
    **13.1Mockito ?*用简洁的API做测试。而且Mockito简单易学,它可读性强和验证语法简洁。
API文档:http://docs.mockito.googlecode.com/hg/org/mockito/Mockito.html
https://github.com/mockito/mockito
    **13.2Robotium:**面向Android端的开源自动化测试框架,Robotium结合Android自身提供的测试框架可以对应用程序进行自动化测试。另外,Robotium还支持对WebView的操作。Robotium的核心类是Solo,通过Solo可以对控件进行各种操作。
https://github.com/RobotiumTech/robotium
    **13.3Robolectric:**一款不依赖于Android设备的单元测试框架。
github https://github.com/robolectric/robolectric
作者:robolectric
使用:
testCompile “org.robolectric:robolectric:3.3.2”
14. 调试框架
    **14.1Stetho:**一款提供在Chrome开发者工具上调试Android app能力的开源框架
ithub https://github.com/facebook/stetho
使用:
compile ‘com.facebook.stetho:stetho:1.5.0’
15. 性能优化
     **15.1LeakCanary :**一款内存检测框架,服务于java和android客户端,最大的特点,只需在应用的apllication中集成,就可以直接使用它;
github https://github.com/square/leakcanary
作者 square团队
使用:
debugCompile ‘com.squareup.leakcanary:leakcanary-android:1.5.1’
releaseCompile ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5.1’
testCompile ‘com.squareup.leakcanary:leakcanary-android-no-op:1.5.1’

    15.2ACRA: 一款提供记录APP崩溃日志能力的框架,acra有足够的能力记录线上APP,并且发回服务端,acra也提供了相当棒的崩溃日志统计服务端框架Acralyzer,cralyzer工作在Apache CouchDB
github https://github.com/ACRA/acra
服务端github https://github.com/ACRA/acralyzer

 

Android常用框架

原文:https://www.cnblogs.com/baizhou168/p/14651244.html