Android 主流通用常用框架汇总(持续更新)

简介: Android 主流通用常用框架汇总(持续更新)

我们做项目久了,都会用到很多开源的框架,今天我就把我所知道的一些好用的框架都汇总整理了一下,因为实在是大多了记不住,所以记下来方便以后使用,过程中参考了很多网上大牛们写的文章,绝无抄袭冒犯之意,就是根据自己的习惯重新修改整理分类了一下,希望对大家以后的开发有所帮助!


网络请求框架

图片相关框架

权限设置框架

json解析框架

下拉刷新框架

图表框架

数据库相关框架

日志相关框架

组件化开发框架

开发模式相关

控件相关框架

动画相关框架

网络请求框架

1.Retrofit


Retrofit 是 Square 公司出品的 HTTP 请求库, 同时是 Square 是最早开源项目之一, Retrofit 是目前 Android 最流行的 Http Client 库之一


官网地址 Retrofit


github https://github.com/square/retrofit


2.okhttp


OkHttp 是 Square 公司出品的 HTTP 另一个请求库, Google 不推荐人们使用 HttpClient, 可是 HttpURLConnection 实在是太难用了, 因此很多人使用了 OkHttp 来解决这问题, 据说 Android4.4 的源码中可以看到 HttpURLConnection 已经替换成 OkHttp 实现呢


官网地址 http://square.github.io/okhttp/


github https://github.com/square/okhttp


3.vollery


vollery 是谷歌官方开发团队在 2013 年 Google I/O 大会推出的一个新的网络通信框架, 这个框架把 AsyncHttpClient 和 Universal-Image-Loader 的优点集于了一身,既可以像AsyncHttpClient 一样非常简单地进行 HTTP 通信,也可以像 Universal-Image-Loader 一样轻松加载网络上的图片。


github https://github.com/google/volley


图片相关框架

1.glide


Glide 是 Google 员工的开源项目, 广泛应用于 Google 一些 App 上, 在2014年 Google I/O 大会上被推荐使用, Glide 和 Picasso 被人拿来比较研究过, Glide 与 Picasso 有 90% 的相似度, 但在一些细节上还是有点区别的, 各有各优缺点看君选择


github https://github.com/bumptech/glide


2.picasso


Picasso 是 Square 公司出品的一款图片缓存库, 主导者是 JakeWharton 大神


官网地址 http://square.github.io/picasso/


github https://github.com/square/picasso


3.fresco


Fresco 是 FaceBook 公司出品的一款图片缓存库, Fresco 是一个强大的图片加载组件, 支持加载 Gif 图和 WebP 格式, 支持 Android2.3(API level 9) 及其以上系统, Fresco 中设计了 Image pipeline 和 Drawees 两个模块各施其职, 使得图片完美加载出来


官网地址: Fresco | 专为ANDROID加载图片 | Fresco


github https://github.com/facebook/fresco


4.Android-Universal-Image-Loader


ImageLoader 是最早开源的 Android 图片缓存库, 强大的缓存机制, 早期被广泛 Android 应用使用, 至今仍然有很多 Android 开发者在使用


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


5.PhotoView


PhotoView 是 ImageView 的子类, 支持所有 ImageView 的源生行为, 例如: 支持 Pinch 手势自由缩放, 支持双击放大/还原, 支持平滑滚动等等, 并且非常方便的与 ImageLoader/Picasso 之类的网络图片读取库集成使用, 还方便的与 ViewPager 等同样支持滑动手势的控件集成


github https://github.com/chrisbanes/PhotoView


6.CircleImageView


圆角ImageView


github https://github.com/hdodenhof/CircleImageView


7.AndroidImageSlider


AndroidImageSlider 库开发者是代码家, 该库是为 Banner 图片滑动提供多种动画效果, 还可以轻易为 Banner 加载网络图片


github https://github.com/daimajia/AndroidImageSlider


8.RoundedImageView


RoundedImageView 一个快速支持图片圆角显示效果的库, 该库特点是能快速加载, 为了提高加载速度, 该库不用创建原始位图的副本, 不使用 clipPath, 不使用 setXfermode 裁剪的位图等方式来实现 ImageView 圆角, 使用也非常简单


github https://github.com/vinc3m1/RoundedImageView


9.uCrop


uCrop 是Yalantis 组织开源的图片裁剪库, 支持缩放, 旋转图片, 支持各种比例的裁剪框, 非常强大的一个图片裁剪库


github https://github.com/Yalantis/uCrop


权限相关框架

1.soulPermission


一句话搞定权限,亲测确实效果不错


github https://github.com/soulqw/SoulPermission


转载的博客地址:SoulPermission-Android一句话权限适配的更优解决方案_再见孙悟空的专栏-CSDN博客_soulpermission


2.RxPermissions


基于RxJava完成权限申请的框架


github https://github.com/tbruyelle/RxPermissions


3.easyPermission


Easypermissions简化了Android M的运行时权限的申请、结果处理


github https://github.com/googlesamples/easypermissions


4.AndPermission


AndPermission 算是一个不错的 权限库了,链式调用,还可以使用 content 上下文去请求权限


github https://github.com/yanzhenjie/AndPermission


5.Android-UsesPermission


Github:https://github.com/xiangyuecn/Android-UsesPermission


json解析框架

1.GSON


GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。


github https://github.com/google/gson/


2.fastjson


fastjson 是一个 Java 语言编写的高性能功能完善的 JSON 库. 它采用一种“假定有序快速匹配”的算法, 把 JSON Parse的性能提升到极致, 是目前Java语言中最快的JSON库. fastjson接口简单易用, 已经被广泛使用在缓存序列化, 协议交互, Web输出, Android客户端等多种应用场景,阿里出品


github https://github.com/alibaba/fastjson


3.Jackson


Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。


github https://github.com/FasterXML/jackson/


下拉刷新框架

1.SmartRefreshLayout


SmartRefreshLayout是一个“聪明”或者“智能”的下拉刷新布局,由于它的“智能”,它不只是支持所有的View,还支持多层嵌套的视图结构。它继承自ViewGroup 而不是FrameLayout或LinearLayout,提高了性能。 也吸取了现在流行的各种刷新布局的优点,包括谷歌官方的 SwipeRefreshLayout,其他第三方的 Ultra-Pull-To-Refresh、TwinklingRefreshLayout 。还集成了各种炫酷的 Header 和 Footer。 SmartRefreshLayout的目标是打造一个强大,稳定,成熟的下拉刷新框架,并集成各种的炫酷、多样、实用、美观的Header和Footer。

github https://github.com/scwang90/SmartRefreshLayout


2.android-Ultra-Pull-To-Refresh


这个是一个非常强大的下拉刷新库, 继承 ViewGroup 可以包含任何 View, 功能甚至比 SwipeRefreshLayout 强大, 使用起来也非常容易, 还可以自由定制自己的 UI 样式


github https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh


3.Android-PullToRefresh


较早下拉刷新框架


github https://github.com/chrisbanes/Android-PullToRefresh


4.SwipeRefreshLayout


google自己的下拉刷新框架


5.TwinklingRefreshLayout


TwinklingRefreshLayout延伸了Google的SwipeRefreshLayout的思想,不在列表控件上动刀,而是使用一个ViewGroup来包含列表控件,以保持其较低的耦合性和较高的通用性。


github https://github.com/lcodecorex/TwinklingRefreshLayout


6.ActionBar-PullToRefresh

ActionBar-PullToRefresh 是一个下拉刷新, 下拉刷新时在 ActionBar 出现加载中提示的库


gitHub https://github.com/chrisbanes/ActionBar-PullToRefresh


7.UltimateRecyclerView


UltimateRecyclerView 是一个功能强大的 RecyclerView(advanced and flexible version of ListView), 包括了下拉刷新, 加载更多, 多种动画, 空数据提示, 拖动排序, 视差处理, 工具栏渐变, 滑动删除, 自定义floating button, 多种刷新效果, scrollbar, sticky header, 多 layout 支持等等元素, 而且使用起来跟 RecyclerView 一样的方便


github https://github.com/cymcsg/UltimateRecyclerView


图表框架

1.MPAndroidChart


MPAndroidChart 是一款强大的 Android 图表库, 支持各种各样图表显示, 能想到的图表样式这里几乎都有, 图表还支持选择, 拖放和缩放动画效果


官网地址 https://github.com/PhilJay/MPAndroidChart


github https://github.com/PhilJay/MPAndroidChart


之前也写过一篇关于这个框架使用的文章:Android 图表开发开源库MPAndroidChart_再见孙悟空的专栏-CSDN博客_安卓开发图表


2.XCL-Charts


XCL-Charts基于Android原生Canvas来绘制各种图表,使用简便,定制灵活。

   目前支持(3D/非3D,背向式)柱形图(Bar Chart)、3D/非3D饼图(Pie Chart)、堆积图(Stacked Bar Chart)、面积图(Area Chart)、折线图(Line Chart)、曲线图(Spline Chart)、环形图(Dount Chart)、南丁格尔玫瑰图(Rose Chart)、仪表盘(Dial Chart)、刻度盘(Gauge Chart)、雷达图(Radar Chart)、圆形图(Circle Chart)、弧线比较图、散点图(Scatter Chart)、气泡图(Bubble Chart)、范围条形图(RangeBar Chart)、玫瑰风向图(Wind Rose)、象限图(Quadrant chart)、漏斗图(Funnel Chart)等图表。

   其它特性还包括手势缩放、图表滑动、点击交互、多图叠加、图表批注、动画效果、多XY轴显示、轴线任意方位显示、动态图例、图表参考线、柱图刻度对齐风格切换、混合图表及同数据源图表类型切换等。

github https://github.com/xcltapestry/XCL-Charts


3.SmartChart


SmartChart是一个Android图表框架,支持线性图(折线,曲线,散点)柱状图、面积图、饼图、3D柱状图、

雷达图、风向玫瑰图,支持图表多样化配置。支持轴方向,双轴,图示,水平线,十字轴,MarkView自定义,

空白,标题,网格等,支持丰富的样式,包括字体样式(字体大小,颜色)

,图形样式(正方形,长方形,圆形),线(大小,颜色,DashPathEffect)

,增加了图表移动和缩放功能以及动画。


github https://github.com/huangyanbin/SmartChart


4.hellocharts


github https://github.com/lecho/hellocharts-android


其他的一些


5.https://github.com/diogobernardino/WilliamChart


6.https://github.com/blackfizz/EazeGraph


7.https://github.com/HackPlan/AndroidCharts


8.https://github.com/bmarrdev/android-DecoView-charting


9.https://github.com/AndroidJiang/StockChart


10.https://github.com/donglua/JZAndroidChart


11.https://github.com/Idtk/SmallChart


12.https://github.com/wuseal/PieChartView


13.https://github.com/whataa/SuitLines


14.https://github.com/qstumn/RadarChart


15.Nightonke/https://github.com/Nightonke/CoCoin


数据库相关框架

1.realm-java


Realm 一个轻量的 Android 版本的数据存储库, 比 Android 原生系统的 SQLite 更加简洁快速对数据进行操作


官网地址:Realm Home | Realm.io


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


2.greenDAO


greenDAO 是一个可以帮助 Android 开发者快速将 Java 对象映射到 SQLite 数据库的表单中的 ORM解决方案, 通过使用一个简单的面向对象 API, 开发者可以对 Java 对象进行存储, 更新, 删除和查询, greenDAO 相对 OrmLite, AndrORM 这两个 ORM 开源库, 性能是最高的


官网地址:greenDAO: Android ORM for your SQLite database - Open Source by greenrobot


github https://github.com/greenrobot/greenDAO


高效、快速的SQLite型数据库


3.Android-Debug-Database


一款提供测试App内部数据库能力的框架


github https://github.com/amitshekhariitbhu/Android-Debug-Database


日志相关框架

1.stetho


提供在Chrome开发者工具上调试Android app能力的开源框架  facebook出品


官网地址: Download


github https://github.com/facebook/stetho


2.logger


log日志显示框架,支持多种格式:线程、Json、Xml、List、Map等


github https://github.com/orhanobut/logger


3.Hugo


Hugo 是 JakeWharton 大神推出的一个用于打印 Log, hugo 是基于注解被调用的, 引入相关依赖后, 在方法上加上 @DebugLog 即可输出 Log, 使用非常简单


github https://github.com/JakeWharton/hugo


组件化开发框架

1.atlas


atlas框架提供了解耦、组件、动态的开发能力 阿里出品


github https://github.com/alibaba/atlas


2.ARouter


阿里出的一个用于帮助 Android App 进行组件化改造的框架 —— 支持模块间的路由、通信、解耦


github https://github.com/alibaba/ARouter


开发模式相关

1.androidmvp


一款展示Android端Mvp设计的demo


github https://github.com/antoniolg/androidmvp


2.Android-CleanArchitecture


CleanArchitecture 是一个非常典型使用 MVP 架构的项目, 大家如果还没有理解 MVP 架构的可以看看这个项目


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


3.mosby


一款提供构建MVP项目能力的框架


github https://github.com/sockeqwe/mosby


4.MVVMHabit  


基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合Okhttp+RxJava+Retrofit+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发一个高质量、易维护的Android应用。


github https://github.com/alibaba/ARouter


控件相关框架

1.ViewPagerIndicator


一款基于ViewPager的页面指示器开源框架


github https://github.com/JakeWharton/ViewPagerIndicator


2.flexbox-layout


一款弹性伸缩布局


前端H5开发者转Android开发的福音,FlexboxLayout作为LinearLayout和RelativeLayout的替代者,值得各位一试,与其一同推出的还有ConstraintLayout。


github https://github.com/google/flexbox-layout


3.AndroidSwipeLayout


非常强大滑动式布局


github https://github.com/daimajia/AndroidSwipeLayout


4.MaterialDrawer


强大的塑料风格的抽屉框架


github https://github.com/mikepenz/MaterialDrawer


5..Android-ObservableScrollView


一款让视图滑动更具有视觉效果的滑动式框架,提供了12种滑动效果,你可以用它弥补其他框架的不足,提升你的App体验!


github https://github.com/ksoichiro/Android-ObservableScrollView


6.BottmBar


底部栏里的王者框架,完全遵循材料设计规范,上手非常方便。如果说缺点,无法设置icon与titile的间距,无法自定义视图的大小等,但这 些都可以通过修改源代码解决


github https://github.com/roughike/BottomBar


7.AndroidSlidingUpPanel


可拖动的滑动面板视图框架


如果你的项目需要一个可拖拽的滑动式面板(展示某些详情信息,播放音乐,地图信息等),那么推荐你使用它


github https://github.com/umano/AndroidSlidingUpPanel


8.SwipeBackLayout


一款可以让你通过滑动手势关闭页面的的框架 ,仿微信滑动退出当前聊天界面的效果,提供了activity的滑动关闭能力,通过这种思路,实现fragment的滑动关闭轻而易举


github https://github.com/ikew0ng/SwipeBackLayout


9.StickyListHeaders


StickyListHeaders 是一个实现能够固定在屏幕顶部的ListView Section Header库, 就是当前 section 的 header 固定在屏幕顶部, 当滑动到其他 section 时, 其他 section 的 header 会代替之前的 section 的 header, 固定到屏幕顶部, 类似于 Android4.0 的手机通讯录的效果


github https://github.com/emilsjolander/StickyListHeaders


10.circular-progress-button

circular-progress-button是一个带进度显示的 Button, 效果和动画做的都非常赞

github https://github.com/dmytrodanylyk/circular-progress-button


11.SmartTabLayout


SmartTabLayout 是一个自定义的 Tab title strip, 基于 Google Samples 中的 android-SlidingTabBasic 项目, 滑动时 Indicator 可平滑过渡


github https://github.com/ogaclejapan/SmartTabLayout


12.list  grid 各种列表效果集合 ,很赞!


https://github.com/wasabeef/awesome-android-ui/blob/master/pages/List-Grid.md


动画相关框架


相关文章
|
3月前
|
物联网 区块链 vr&ar
未来已来:探索区块链、物联网与虚拟现实技术的融合与应用安卓与iOS开发中的跨平台框架选择
【8月更文挑战第30天】在科技的巨轮下,新技术不断涌现,引领着社会进步。本文将聚焦于当前最前沿的技术——区块链、物联网和虚拟现实,探讨它们各自的发展趋势及其在未来可能的应用场景。我们将从这些技术的基本定义出发,逐步深入到它们的相互作用和集成应用,最后展望它们如何共同塑造一个全新的数字生态系统。
|
4月前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台框架解析
在移动应用开发的广阔舞台上,安卓和iOS一直是两大主角。随着技术的进步,开发者们渴望能有一种方式,让他们的应用能同时在这两大平台上运行,而不必为每一个平台单独编写代码。这就是跨平台框架诞生的背景。本文将探讨几种流行的跨平台框架,包括它们的优势、局限性,以及如何根据项目需求选择合适的框架。我们将从技术的深度和广度两个维度,对这些框架进行比较分析,旨在为开发者提供一个清晰的指南,帮助他们在安卓和iOS的开发旅程中,做出明智的选择。
|
5天前
|
算法 JavaScript Android开发
|
14天前
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
60 1
|
2月前
|
前端开发 Java 数据库
💡Android开发者必看!掌握这5大框架,轻松打造爆款应用不是梦!🏆
在Android开发领域,框架犹如指路明灯,助力开发者加速应用开发并提升品质。本文将介绍五大必备框架:Retrofit简化网络请求,Room优化数据库访问,MVVM架构提高代码可维护性,Dagger 2管理依赖注入,Jetpack Compose革新UI开发。掌握这些框架,助你在竞争激烈的市场中脱颖而出,打造爆款应用。
316 3
|
2月前
|
编译器 Android开发 开发者
带你了解Android Jetpack库中的依赖注入框架:Hilt
本文介绍了Hilt,这是Google为Android开发的依赖注入框架,基于Dagger构建,旨在简化依赖注入过程。Hilt通过自动化的组件和注解减少了DI的样板代码,提高了应用的可测试性和可维护性。文章详细讲解了Hilt的主要概念、基本用法及原理,帮助开发者更好地理解和应用Hilt。
75 8
|
3月前
|
设计模式 Java Android开发
探索安卓应用开发:从新手到专家的旅程探索iOS开发中的SwiftUI框架
【8月更文挑战第29天】本文旨在通过一个易于理解的旅程比喻,带领读者深入探讨安卓应用开发的各个方面。我们将从基础概念入手,逐步过渡到高级技术,最后讨论如何维护和推广你的应用。无论你是编程新手还是有经验的开发者,这篇文章都将为你提供有价值的见解和实用的代码示例。让我们一起开始这段激动人心的旅程吧!
|
3月前
|
Android开发
基于Amlogic 安卓9.0, 驱动简说(三):使用misc框架,让驱动更简单
如何使用Amlogic T972安卓9.0系统上的misc框架来简化驱动程序开发,通过misc框架自动分配设备号并创建设备文件,从而减少代码量并避免设备号冲突。
38 0
基于Amlogic 安卓9.0, 驱动简说(三):使用misc框架,让驱动更简单
|
3月前
|
存储 前端开发 Java
Android MVVM框架详解与应用
在Android开发中,随着应用复杂度的增加,如何有效地组织和管理代码成为了一个重要的问题。MVVM(Model-View-ViewModel)架构模式因其清晰的结构和高效的开发效率,逐渐成为Android开发者们青睐的架构模式之一。本文将详细介绍Android MVVM框架的基本概念、优势、实现流程以及一个实际案例。
|
4月前
|
前端开发 安全 数据库
💡Android开发者必看!掌握这5大框架,轻松打造爆款应用不是梦!🏆
【7月更文挑战第28天】在Android开发领域,五大框架如星辰般指引方向,加速进程,提升应用品质。1. **Retrofit**:Square公司的类型安全HTTP客户端,使网络请求变得优雅简洁。2. **Room**:Google推荐的ORM库,简化SQLite数据库访问。3. **MVVM**:一种架构模式,提高代码可维护性和扩展性。4. **Dagger 2**:依赖注入框架,减少样板代码,以声明方式管理依赖。5. **Jetpack Compose**:全新的UI工具包,采用声明式UI编程,让UI开发更直观高效。掌握这些框架,能有效应对Android开发挑战,助力打造爆款应用。
247 0