程序员界有个神奇的网站,那就是github,这个网站集合了一大批优秀的开源框架,极大地节省了开发者开发的时间,在这里我进行了一下整理,这样可以使我们在使用到时快速的查找到,希望对大家有所帮助!
转自 https://www.jianshu.com/p/5feab1ef12a2
1. Retrofit
一句话介绍:Retrofit是一款类型安全的网络框架,基于HTTP协议,服务于Android和java语言
上榜理由:Retrofit以21.8k的stars量雄踞github中android子标题榜首,第一当之无愧。
官网地址http://square.github.io/retrofit/
githubhttps://github.com/square/retrofit
作者:square团队
使用:
compile'com.squareup.retrofit2:retrofit:2.3.0'
2.okhttp
一句话介绍:okhttp是一款基于HTTP和HTTP2.0协议的网络框架,服务于java和android客户端
上榜理由,okhttp以20.4k的 stars量雄踞github中android子标题第二名。大型公司比如淘宝也封装的是okhttp。Retrofit2.0开始内置okhttp框 架,Retrofit专注封装接口完成业务需求,okhttp专注网络请求的安全高效,笔者将两者区分开,是想让后来学习者知道,这是两套框架,学习框架 原理时可以分开学习,以免理解混乱。
官网地址http://square.github.io/okhttp/
githubhttps://github.com/square/okhttp
作者:square团队
使用:
compile'com.squareup.okhttp3:okhttp:3.8.0'
3.View Binding
一句话介绍:在Android开发中,findViewById()是必不可少的存在,这样的冗余代码在很久以前充斥在Android工程中,因此也出现了很多精简方案,view Binding 就是其中优秀的一种
上榜理由,Butter Knife框架是17年前后很火的存在。但是在Kotlin中直接使用ButterKnife的注解方式的话,会出现空指针的异常并导致绑定失败。从而Kotter Knife应运而生,可以理解成是Butter Knife的Kotlin版本。然而这种方案已经被作者标记为Deprecated,作者认为该框架为每个视图引用分配了一个对象,这种思路不应该被采用,以及使用这种思路的框架也应该被淘汰,并推荐使用ViewBinding的方式。github start 19.5k.
官网地址:https://developer.android.google.cn/topic/libraries/view-binding
github : https://github.com/android/architecture-components-samples/tree/main/ViewBindingSample
csdn 使用指南:https://blog.csdn.net/seu_calvin/article/details/105733379
作者: google官方
4. glide
一句话介绍:glide是一款专注于提供流畅划动能力的“图片加载和缓存框架”
上榜理由:15.9k个star,图片加载类框架排名第一的框架,google 在2014开发者大会上演示的camera app就是基于gilde框架开发的
githubhttps://github.com/bumptech/glide
作者 Bump Technologies团队
使用:
repositories{
mavenCentral()
google()
}
dependencies {
implementation'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor'com.github.bumptech.glide:compiler:4.11.0'
}
4-1.glide-transformations
一句话介绍:为众多著名图片加载框架提供图片形状变幻能力的框架
上榜理由:在榜单靠前的部分已经介绍过glide,Picasso,Fresco等图片加载框架,glide-transformations就是一款为他们提供图片变形能力的框架,使用起来非常简单,因此受到了大家的喜爱,github上有9.3K个star
github:https://github.com/wasabeef/glide-transformations
作者:Daichi Furiya
使用:
implementation'jp.wasabeef:glide-transformations:4.3.0'
//If you want to use the GPU Filters
implementation'jp.co.cyberagent.android:gpuimage:2.1.0'
在Glide里设置变幻效果
Glide.with(this).load(R.drawable.demo) .apply(RequestOptions.bitmapTransform(BlurTransformation(25,3))) .into(imageView)
5.leakcanary
一句话介绍:一款内存检测框架,服务于java和android客户端
上榜理由:方便,简洁是leakcanary最大的特点,只需在应用的apllication中集成,就可以直接使用它;15.5k个star说明了它有多么受欢迎
githubhttps://github.com/square/leakcanary
相关博客 :https://www.cnblogs.com/aademeng/articles/11218921.html
作者 square团队
使用:
dependencies{
debugImplemdebugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'
releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
}
在 Application 中onCreate()中写入
public class App extends Application {
@Override
public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
return;
}
LeakCanary.install(this);
}
}
6.EventBus
一句话介绍:EventBus是一款本地组件间通信框架
上榜理由:组件间通信框架star量第 一:23.2k,在大型项目的Activities,fragments,Threads,Services都可以看到它的使用场景,尽管 EventBus在向未创建的组件传递事件时有些局限,仅适合在“活着的”组件间传递消息,但仍不妨碍它活跃在各个大型项目各个场景里。
官网地址http://greenrobot.org/eventbus/documentation/how-to-get-started/
github:https://github.com/greenrobot/EventBus
作者 greenrobot
使用:
implementation'org.greenrobot:eventbus:3.2.0'
7.zxing
一句话介绍:条码图像处理库
上榜理由:如果你用过二维码,你肯定已经间接使用过大名鼎鼎的zxing了。27.2K的star量,如果你有了解二维码的需求,不妨从了解、修改它源码入手。
githubhttps://github.com/zxing/zxing
作者 Sean Owen
8.picasso
一句话介绍:强力的图片下载、缓存框架
上榜理由:github start 17.9k,本榜单出现的第三款图片类框架,不同的是picasso更强调图片下载,你可以将picasso集成进你的项目中,你也可以结合gilde和UIL与picasso,三者一齐封装至你的项目中,按需所用。
官网地址http://square.github.io/picasso/
githubhttps://github.com/square/picasso
作者 square团队
使用:
compile'com.squareup.picasso:picasso:2.5.2'
9.lottie-android
一句话介绍:一款可以在Android端快速展示Adobe Afeter Effect(AE)工具所作动画的框架
上榜理由:动画类框架第一名,github上 13.3k个star证明了他的优越性,利用json文件快速实现动画效果是它最大的便利,而这个json文件也是由Adobe提供的After Effects(AE)工具制作的,在AE中装一个Bodymovin的插件,使用这个插件最终将动画效果生成json文件,这个json文件即可由 LottieAnimationView解析并生成绚丽的动画效果。而且它还支持跨平台哟。
githubhttps://github.com/airbnb/lottie-android
作者:Airbnb 团队
10.AndroidAutoSize 屏幕适配
一句话介绍:非常方便快捷的屏幕适配方案
上榜理由:github上11.4k个star,今日头条屏幕适配方案终极版,一个极低成本的 Android 屏幕适配方案).
官网地址
https://hub.fastgit.org/JessYanCoding/AndroidAutoSize
作者 JessYanCoding
使用:
step1
dependencies {
implementation'me.jessyan:autosize:1.2.1'
}
step 2 (360 *640 对应ui设计的1080*1920)
<manifest>
<application>
<meta-data
android:name="design_width_in_dp"
android:value="360"/>
<meta-data
android:name="design_height_in_dp"
android:value="640"/>
</application>
</manifest>
11.SlidingMenu
一句话介绍:侧滑菜单栏框架
上榜理由:与Userval-Image- loader 齐名的上古神器框架——为你的app提供侧滑菜单栏的功能;github闪更有11.2k个star,证明了它的经久不衰,即使在Google推出了 NavigationDrawer,仍然没有减少开发者对SildingMenu的拥簇,经典总是经得起考验的,这个上古神兽已经四年没有更新了;有太多 太多的app使用过它,这些都可以在软件的开源许可上看到!
githubhttps://github.com/jfeinstein10/SlidingMenu
作者 Jeremy Feinstein
使用:
在gihub上fork源码,集成进项目中
12. MaterialDrawer
一句话介绍:强大的塑料风格的抽屉框架
上榜理由:11.3K的star数量,作者的持续更新状态,如果你还在犹豫上手SlidingMenu遇到bug没人管的困境,那么你可以入手它作为你的抽屉布局
githubhttps://github.com/mikepenz/MaterialDrawer
作者:Mike Penz
使用: implementation"com.mikepenz:materialdrawer:${lastestMaterialDrawerRelease}"
13.PhotoView
一句话介绍:一款ImageView展示框架,支持缩放,响应手势
上榜理由:10.3k的star数量,位于图 片类框架排行榜第五位,PhotoView与前四位不同的是这次带来的是图片的展示能力,你一定好奇微信的头像点击放大是如何实现的,很多App的图片显 示响应手势按压是如何实现的,了解PhotoView,你一定会开心的!(笔者也不会告诉你ImageView的点击放大效果在Android的 sample也有)
githubhttps://github.com/chrisbanes/PhotoView
作者:chrisbanes
使用:
在app根目录的build.gradle中加入:allprojects { repositories { maven { url"https://jitpack.io"} }}在app的module目录的build.gralde中加入:dependencies { compile'com.github.chrisbanes:PhotoView:latest.release.here'}
PhotoView photoView = (PhotoView) findViewById(R.id.photo_view);photoView.setImageResource(R.drawable.image);
14.XXPermissions
一句话介绍:一句代码搞定权限请求,从未如此简单
上榜理由,1.9k的start数量,简单好用
githubhttps://github.com/getActivity/XXPermissions
作者 :Android轮子哥
使用
android {
//支持 JDK 1.8compileOptions {
targetCompatibilityJavaVersion.VERSION_1_8
sourceCompatibilityJavaVersion.VERSION_1_8}}
dependencies {
https://github.com/getActivity/XXPermissionsimplementation'com.hjq:xxpermissions:9.8'
}
15.AppUpdate
一句话介绍:一个简单、轻量、可随意定制的Android版本更新库
上榜理由,1.2k的start 位于更新类排名第三的位置,简单轻量。
githubhttps://github.com/azhon/AppUpdate
作者 :azhon
使用 implementation'com.azhon:appupdateX:3.0.3'
DownloadManagermanager=DownloadManager.getInstance(this);
manager.setApkName("appupdate.apk") .setApkUrl("https://raw.githubusercontent.com/azhon/AppUpdate/master/apk/appupdate.apk") .setSmallIcon(R.mipmap.ic_launcher) .download();
16.MMKV
一句话介绍:用来替代SharePreference的高性能key-value组件
上榜理由,GitHub 11.9k 的start ,拥有数据加密 多进程共享 匿名内存,效率更高,支持从SP迁移
githubhttps://github.com/Tencent/MMKV
作者 腾讯团队
使用 implementation'com.tencent:mmkv-static:1.2.7'
17 SmartRefreshLayout
一句话介绍:下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动,具有极强的扩展性,集成了几十种炫酷的Header和 Footer
上榜理由 github 22.2k的start,拥有广泛的使用群体,头部可定制刷新动画。
githubhttps://github.com/scwang90/SmartRefreshLayout
作者 scwang90
使用
AndroidX 先在 gradle.properties 中添加,两行都不能少噢~
android.useAndroidX=true
android.enableJetifier=true
implementation 'androidx.appcompat:appcompat:1.0.0' //必须 1.0.0 以上
implementation 'com.scwang.smart:refresh-layout-kernel:2.0.3' //核心必须依赖
implementation 'com.scwang.smart:refresh-header-classics:2.0.3' //经典刷新头
18.XPopup
一句话介绍:XPopup2.0版本重磅来袭,2倍以上性能提升,带来可观的动画性能优化和交互细节的提升!!!功能强大,交互优雅,动画丝滑的通用弹窗!可以替代Dialog,PopupWindow,PopupMenu,BottomSheet,DrawerLayout,Spinner等组件,自带十几种效果良好的动画, 支持完全的UI和动画自定义!
上榜理由:GitHub 5.5K的收藏量,其中的弹窗类型涵盖了99%的应用场景。
github:https://github.com/li-xiaojun/XPopup
作者:li-xiaojun
使用:
dependencies { implementation'com.lxj:xpopup:2.2.23'}
19.fastjson
一句话介绍:一款基于json解析、生成的框架
上榜理由:从它的名字不难看出,快速是它最大的特性,阿里巴巴的出身保证了代码的质量和优越,9.4k的star数量,也是榜单里第一个出现的中国开源框架,涉及网络的app都会用到json,fastjson值得作为你的首选!
githubhttps://github.com/alibaba/fastjson
作者:alibaba
使用:
compile'com.alibaba:fastjson:1.1.58.android'
20 ImmersionBar
一句话介绍:android 4.4以上沉浸式状态栏和沉浸式导航栏管理,适配横竖屏切换、刘海屏、软键盘弹出等问题,可以修改状态栏字体颜色和导航栏图标颜色
上榜理由 :github 9.4k个start, Activity、Fragment、DialogFragment、Dialog,PopupWindow,一句代码轻松实现,以及对bar的其他设置
githubhttps://github.com/gyf-dev/ImmersionBar
作者 gyf-dev
使用
implementation'com.gyf.immersionbar:immersionbar:3.0.0'//基础依赖包,必须要依赖
implementation'com.gyf.immersionbar:immersionbar-components:3.0.0'//fragment快速实现(可选)
20.Material-Animations
一句话介绍:一款提供场景转换过渡能力的动画框架
上榜理由:Android动画框架排行榜第二 名,9.3k个star数量,与动画框架榜单第一名lottie-android不同的是,Material-Animations提供的是场景切换的动 画效果。Android 官网sample中已经提供了部分Transition (转场动画)的展示,作为初学者很难快速拓展到自己项目中,Material-Animations的示例出现为开发者省去了此类麻烦,直接照搬应用到自 己的App中吧。
githubhttps://github.com/lgvalle/Material-Animations
作者:Luis G. Valle
使用:
down源码,修改学习
21.tinker
一句话介绍:它是微信官网的Android热补丁解决方案
上榜理由:9.1k个star,微信在用的热补丁方案,心动不如行动
官网地址http://www.tinkerpatch.com/Docs/intro
githubhttps://github.com/Tencent/tinker
作者:Tencent
22.ViewPagerIndicator
一句话介绍:一款基于ViewPager的页面指示器开源框架
上榜理由:上古神器,尽管已经五年未更新了,但你仍然可以在淘宝等app中看到它的使用场景,8.9K的star量让它不愠不火的在矗立在榜单里
官网地址http://viewpagerindicator.com/
githubhttps://github.com/JakeWharton/ViewPagerIndicator
作者:JakeWharton
使用:
下载 地址https://github.com/JakeWharton/Android-ViewPagerIndicator/zipball/master
23.AndroidSwipeLayout
一句话介绍:非常强大滑动式布局
上榜理由:滑动删除是国产app常见需求,商品详情的上下滑动需求作为开发者的我们也经常遇到,AndroidSwipeLayout在github上拥有12K个star,证明它经受住了检验,各位值得一试
githubhttps://github.com/daimajia/AndroidSwipeLayout
作者:daimajia
使用:
dependencies {
implementation'com.android.support:recyclerview-v7:21.0.0'
implementation'com.android.support:support-v4:20.+'
implementation"com.daimajia.swipelayout:library:1.2.0@aar"}
24.BaseRecyclerViewAdapterHelper
一句话介绍:强大、流畅的Recyvlerview通用适配器
上榜理由:如果你是RecyclerView的拥簇者,你一定要体验这款专门服务该view的适配器,7.7K个star,让这个家伙位于github上Android 适配器排行榜第一,还有很多惊喜等你去探寻!
官网地址:http://www.recyclerview.org/
githubhttps://github.com/CymChad/BaseRecyclerViewAdapterHelper
作者:陈宇明以及他的小伙伴
使用:
allproallprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:3.0.4'
}
25.SuspensionIndexBar
一句话介绍:仿美团选择城市、微信通讯录、饿了么点餐列表的导航悬停分组索引列表。
上榜理由:gitbub 1.8k的start 足以让我们去尝试入手
github:https://github.com/mcxtzhang/SuspensionIndexBar
作者 :mcxtzhang
使用 compile 'com.github.mcxtzhang:SuspensionIndexBar:V1.0.0'
26.CircleImageView
一句话介绍:圆角ImageView
上榜理由:也许你已经听说过无数种展示圆角图片的方法,但如果你不尝试尝试CircleImageView,那么你的知识库会因为少了它黯然失色,有的时候完成需求是开发者优先考虑的,不同实现方法牵扯到的性能差异更值得让人深思,如果你有心在图片性能上有所涉猎,那么CircleImageView绝对不会让你败兴而归。最后别忘了记得去看Romain Guy的建议哟。
githubhttps://github.com/hdodenhof/CircleImageView
作者:Henning Dodenhof
使用:
dependencies {...compile'de.hdodenhof:circleimageview:2.1.0'}
27.logger
一句话介绍:一款让log日志优雅显示的框架
上榜理由:logger作为调试框架,并未给 出很强大的能力,它最大的亮点是优雅的输出log信息,并且支持多种格式:线程、Json、Xml、List、Map等,如果你整日沉迷于汪洋大海般的 log信息不能自拔,logger就是你的指路明灯!6.6k个star让他位列调试框架第二名,屈居facebook的stetho之后
githubhttps://github.com/orhanobut/logger
作者:Orhan Obut
使用:
compile'com.orhanobut:logger:2.1.1'
28.AndroidSlidingUpPanel
一句话介绍:可拖动的滑动面板视图框架
上榜理由:如果你的项目需要一个可拖拽的滑动式面板(展示某些详情信息,播放音乐,地图信息等),那么推荐你使用它,9.2k个star,来自创业公司umano的作品,证明它是用心推出的杰作
githubhttps://github.com/umano/AndroidSlidingUpPanel
作者:umano
使用:
dependencies { repositories { mavenCentral() } compile'com.sothree.slidinguppanel:library:3.4.0'}
29.AppIntro
一句话介绍:一款提供快速制作欢迎页的框架
上榜理由:笔者从未把打算把欢迎页框架纳入排 行榜当中,作为国内开发者,ViewPager开发App的欢迎页已经是手到擒来的需求,为何一个开源的欢迎页框架会在github上拥有6.3k个 star?也许你会不屑一顾,是的,往往就在不屑一顾的瞬间,机遇就悄悄溜走了。
githubhttps://github.com/apl-devs/AppIntro
作者:Paolo Rotolo
allprojects { repositories {...maven { url'https://jitpack.io'} } } dependencies { compile'com.github.apl-devs:appintro:v4.2.0'}
30.recyclerview-animators
一句话介绍:一款为Recyclerview提供扩展动画能力的框架
上榜理由:有一句老话:如果有天你失去对新事 物的兴趣,那就说明你老了。recyclerview已经推出快三年了,还在用listview的人们,是否已经发掘自己渐渐变老;不要灰心,快为你的项 目加入recyclerview-animators框架吧,为“自己”加入新鲜的血液和能量!(笔者备注:6.2K个star)
githubhttps://github.com/wasabeef/recyclerview-animators
作者;wasabeef
使用:
dependencies {// jCentercompile'jp.wasabeef:recyclerview-animators:2.2.6'}
31.uCrop
一句话介绍:一款优雅的图片裁剪框架
上榜理由:5.3K个star,图片编辑模块单独拎出来也是一款优雅的App。
githubhttps://github.com/Yalantis/uCrop
作者:Yalantis
使用:
allprojects { repositories { jcenter() maven { url"https://jitpack.io"} }}compile'com.github.yalantis:ucrop:2.2.1'
32.Luban
一句话介绍:最接近微信的图片压缩框架
上榜理由:好的思路总是可以让你大放异彩,Luban仅以图片压缩单一功能,俘获了4.8K个star,证明了它在图片压缩上的造诣,它可能不是最优秀的,但它是让你我最接近伟大的项目
githubhttps://github.com/Curzibn/Luban
作者:Curzibn
使用:
compile'top.zibin:Luban:1.1.1'
33.Apktool
一句话介绍:一款反编译apk的工具
上榜理由:开源的反编译工具,对于志在了解apk逆向破解的诸位,值得拥有,4.5k个star,逆向破解apk神器!
githubhttps://github.com/iBotPeaches/Apktool
官网地址:https://ibotpeaches.github.io/Apktool/
作者:Connor Tumbleson
34 Linkage-RecyclerView
一句话介绍 android 实现仿美团点菜和京东分类导航 一行代码即可接入,二级联动订餐列表
上榜理由 :github 2.6k的start 足已引起你的注意。
github :https://github.com/KunMinX/Linkage-RecyclerView
作者;KunMinX
使用:
implementation'com.kunminx.linkage:linkage-recyclerview:2.3.5'
35 DKVideoPlayer
一句话介绍:安卓视频播放器,封装MediaPlayer,ExoPlayer,IjkPlayer。模仿抖音并实现预加载,列表播放,悬浮播放,广告播放,弹幕
上榜理由:github 3.3k的start 功能多使用方便
github :https://github.com/Doikki/DKVideoPlayer
作者:Doikki
36DiscreteScrollView
一句话介绍: 制作画廊图片效果控件,简单
上榜理由:一个字,简单好用。github start:5.4k
github:https://github.com/yarolegovich/DiscreteScrollView
作者:Yaroslav
使用:implementation 'com.yarolegovich:discrete-scrollview:1.5.1'
<com.yarolegovich.discretescrollview.DiscreteScrollView
android:id="@+id/picker"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:dsv_orientation="horizontal|vertical" />
37SimpleRatingBar
一句话介绍: 可以自由设置RatingBar 的大小,选中颜色 ,未选中颜色,边框颜色,是否隐藏边框。最重要的一点,就是不会因为设置大小,而影响触摸设置星星。(系统的RatingBar ,除非自定义,否则设置小风格后无法触摸设置星星)
上榜理由: 不在需要繁琐的自定义RatingBar ,并且此控件还可以设置星星圆角。可谓是功能齐全。git start:1k
github :https://hub.fastgit.org/FlyingPumba/SimpleRatingBar
相关博客: 待写
作者:FlyingPumba
使用 compile'com.iarcuschin:simpleratingbar:0.1.5'
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:srb_starSize="12dp" //设置星星的大小
app:srb_numberOfStars="5" //默认星星总数量
app:srb_rating="3" //选中星星数量
app:srb_stepSize="0.5" //星星增长的幅度
app:srb_drawBorderEnabled="false" //是否显示边框
app:srb_starBorderWidth="0.1" //边框尺寸
app:srb_borderColor="@color/merchantRattingProgressTintColor" //边框颜色
app:srb_starCornerRadius="1" //星星 圆角 默认为6
app:srb_fillColor="@color/merchantRattingProgressTintColor" //星星颜色
app:srb_starBackgroundColor="@color/merchantProgressBackgroundTintColor" //未选中星星颜色
app:srb_isIndicator="false" //是否阻止点击
/>
38 Android-PickerView
一句话介绍:年月日三级联动
上榜理由:12.7k start 快速实现年月日,省市区 三级联动 。
GitHub :https://hub.fastgit.org/Bigkoo/Android-PickerView
作者:bigkoo
相关博客: GitHub上介绍和使用已经很详细
使用 :implementation'com.contrarywind:Android-PickerView:4.1.9'
39 PictureSelector
一句话介绍: 头像修改 选择相册和拍照 超简单搞定
上榜理由:10.4Start ,使用简单,可扩展性强。代码量少,几行代码实现单图,多图,裁剪和拍照。
Github :https://hub.fastgit.org/LuckSiege/PictureSelector
作者:LuckSiege
相关博客 :https://blog.csdn.net/Luck_mw/article/details/54020510?spm=1001.2014.3001.5501
使用:implementation'io.github.lucksiege:pictureselector:v2.7.2'
作者:拖小壳儿
链接:https://www.jianshu.com/p/c962d80ca776
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。