你必知的Android开源库
你必知的Android开源库,不知道的话,赶紧学习并在项目中实践吧!
译自(http://guides.codepath.com/android/Must-Have-Libraries)
- 1 概述
- 2 普通开发框架
- 3 高级开发框架
- 4 比较方便的库
- 5 其他开源框架
- 6 网络相关
- 7 组件ListView相关
- 8 组件RecyclerView相关
- 9 简单的导航菜单
- 10 UI组件
- 11 绘制相关
- 12 图片处理相关
- 13 扫描相关
- 14 数据持久化相关
- 15 兼容性相关
- 16 滚动和视差相关
- 17 调试相关
- 18 资源提供相关
1 概述
这篇文章中将会提及很多Android第三方开源库,而且它们中的很多是“必知”库哦!因为它们非常流行并且被很多Android项目所使用。每个项目有不同的功能而且每一个项目都会使你在开发中乐趣无穷。主要的开源库已经分类列出。
2 普通开发框架
下面列出的“普通开发框架”是相当流行的,大部分应用都使用到了这些:
- Retrofit:用于Android的类型安全的REST客户端,它可以使用注解将API映射到客户端界面
- Picasso:用于Android的功能强大的图片加载和缓存库
- ButterKnife:使用Java注解,通过简单通用的任务更好的开发Android
- Parceler:通过代码生成使得Android序列化更简单
- IcePick:一个使得获取Android实例状态更简单的库
- LeakCanary:一个用于捕获APP内存泄漏的库
- Espresso:一个强大的Android集成测试库
- Robolectric:一个用于Android单元测试库
3 高级开发框架
下面列出的“高级开发框架”是额外的库,有更先进的使用方法,在一些最好的安卓团队的比较受欢迎。这些库也许并不适合你的第一个APP。这些库包括:
- Dagger 2:一个为管理对象的快速依赖注解库
- RxJava:一个为Android开发全响应式组件的库
- AndroidAnnotations:一个用于减少冗余代码的强大注解库
- Retrolambda:一个为Android带来lambda支持的库
注意:
这些开源库组合起来使用对每一个人并不一定玩的很开心的事情,下面列出其中存在的问题。
3.1 Parceler和IcePick
注意:不能在使用IcePick的同时保存Parceler对象的状态。看这些Github问题了解为什么它们是不能在一起使用的。在使用IcePick时你需要使用明确的Parceler对象。你可以考虑使用AutoParcel替代Parceler因为它跟IcePick之间互不影响。
3.2 ButterKnife和Parceler
在使用Butterknife的同时使用Parceler会造成javax.annotation.processing.Processor多重声明。在这种情况下,你需要在app/build.gradle文件中进行如下的配置:
|
1
2
3
|
packagingOptions {
exclude 'META-INF/services/javax.annotation.processing.Processor' // butterknife
}
|
3.3 ButterKnife和Custom Views
你经常会发现在使用Butterknife或Dagger注解定义的构造函数阻止Android Studio预览您的自定义视图布局。你可能会看到需要isEditMode()这样的错误。一般情况下,在执行一系列代码之前,这个方法会使你的代码短路,可以用于运行时,但不能在预览窗口中执行。
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
public ContentEditorView(Context context, AttributeSet attrs) {
super(context, attrs);
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
inflater.inflate(R.layout.view_custom, this, true);
// short circuit here inside the layout editor
if(isInEditMode()) {
return;
}
ButterKnife.bind(this);
|
4 比较方便的库
- Dagger:一个用于Android和Java的快速依赖注入库,可以查看Square的视频讲解。
- Spork:Spork是一个注解配置库用于加速Android项目开发。它允许你写更少的冗余代码使得项目更可读、稳定。
- AutoParcel:使用序列化生成代码,Google为Android自动值的端口。
- Hugo:一个简单的Log信息打印库。
- Logger:一个更清洁和简单的logcat信息追踪库。
- LeakCanary:一个轻松捕获内存泄漏发生时信息的库。
- AndroidAnnotations:加速Android开发。这个框架在意于管道,让你专注于真正重要的东西。通过简化你的代码,它有利于维护。
- Calligraphy:一个简单实现自定义的库。
- EasyFonts:一个简单的用于预加载自定义字体的库。
- AndroidViewAnimations:一个使得常用属性动画实现变得简单的库。
- AboutLibraries:自动生成应用的关于界面,用于展示应用使用到的库。
- SDK Manager Plugin:对项目集有特别帮助的插件,如果你已经不记得SDK版本,没有下载的一个API版本,或者你支持的库被更新。
- EasyDeviceInfo:通过一个超级简单的方式获取设备信息。
5 其他开源框架
- RxJava:JVM上响应式扩展。
- EventBus:优化的事件总线,简化了组件之间的通信。
- Tape:Tape是一个集Android和java队列相关的类
- Priority Job Queue:简单的后台任务
- ACRA:使得奔溃信息轻松反馈的框架。
6 网络相关
- Retrofit:一个Android和Java相关的类型安全REST客户端,聪明地将一个API映射到客户端界面通过注解的方式。
- Picasso:一个功能强大的图片下载和缓存Android库。
- Ion:功能强大的异步网络请求库。
- Android Async HTTP:异步网络请求客户端为加载远程服务器内容比如json。
- Volley:Google网络请求库,使得Android应用网络请求更简单、重要、快捷。
- OkHttp:Square基础网络库用于支持异步网络请求。
- Glide:Picasso的图像加载替代谷歌支持。
- Android Universal Image Loader:流行的图片加载库用于替代Picasso或Glide。
- Fresco:来自Facebook的图片管理库。
- Fast Android Networking:Fast Android Networking是一个功能强大的库,在Android应用中可以进行任何类型的网络请求,它组成了OkHttp最顶部的网络层。
7 组件ListView相关
- EasyListViewAdapters:简单、轻松构建ListView不同类型条目的开源库
- GridListViewAdapters:轻松构建无限制的Grid卡如同play-store
- StickyListHeaders:一个在头部添加View的ListView
- PinnedListView:ListView分区开发库
- ListViewAnimations:轻松实现ListView条目动画
- Cardslib:为List和Grid实现卡片UI的库
- PullToRefresh-ListView:简单、好用的ListView下拉刷新框架
- QuickReturn:ListView在滑动时,动态的显示头部和尾部
- Paginated Table:这是一个允许对任何对象列表进行动态分页的表。图标可以添加到列,以及自定义的项目,如复选框和按钮
8 组件RecyclerView相关
- UltimateRecyclerView:包含RecyclerView下拉刷新、加载更多、动画和其他特性
- AdvRecyclerView:继承自RecyclerView回退消失,可以拖拽或扩张条目
- android-parallax-recyclerview:一个适配器被用来在RecyclerView实现视差的库
- sticky-headers-recyclerview:在Android的RecyclerView头部添加粘性效果
- FastAdapter:简单和快速的将数据填充到RecyclerView
- ItemAnimators:RecyclerView动画效果库,包括:添加、删除、移动
- GreedoLayout:RecyclerView的全方位的LayoutManager
- RecyclerViewHelper:为RecyclerView提供了大部分功能,包括:滑动回退、拖拽、UI分割,当item被选中与否的事件,以及item点击事件
9 简单的导航菜单
- JazzyViewPager:为添加更多的动画
- ParallaxPager:为ViewPager添加视差效果
- ParallaxHeaderViewPager:为ViewPager添加视差效果
- ParallaxPagerTransformer:为Android添加视差效果的变化器
- SlidingMenu:允许开发者使用抽屉菜单简单创建应用的库,类似于Google+、YouToBe、FaceBook这些流行的APP
- Android Satellite Menu:配置类似于应用path的菜单
- ArcMenu:替代应用path菜单
- AndroidSlidingUpPanel:滑动面板
- DraggablePanel:可以拖拽的面板
- MaterialDrawer:简单添加Material Dessign风格的抽屉菜单
10 UI组件
- SparkButton:创建类似于twitter“心”像的动画
- Crouton:上下文敏感,比Toast更好的配置修改通知
- BetterPickers:简单的输入选择
- android-shape-imageview:自定义Android圆角图片,包括:气泡、星、心、钻石
- RoundedImageView:用这个流行的库实现圆角或椭圆的图片
- Android StackBlur:动态模糊图片库
- Android Bootstrap:Bootstrap UI组件
- PhotoView:支持图片触摸手势的库
- ShowcaseView:高亮显示App优点的库
- FadingActionBar:炫酷的ActionBar消失效果
- AndroidViewAnimations:简单使用通用动画库
- ProgressWheel:更好用的ProgressBar
- SmoothProgressBar:水平方向不确定的进度显示
- CircularFillableLoaders:漂亮的填充加载动画
- Rebound:简单的弹簧动力效果库
- AndroidImageSlider:图片变换动画
- FloatingActionButton:简单的Material design风格的悬浮按钮
- Foursquare-CollectionPicker:如同Foursquare的条目选择器
- NexusDialog:简单的创建对话框表格
- dialogplus:简单、轻松的Dialog
- Iconify:简单的将图片植入应用
- Android StepsView:为Android创建步骤视图的库
- PhotoView:一个用于处理图片的伸缩、双击事件的库
- Android-Iconics:为应用添加许多对称和风格多样的icon
- Scissors:由Lyft开发的简单的图片剪切库
- Material-SearchView:漂亮、简单的Material Design风格的搜索视图
- PersistentSearchBar:实现一个持续的搜索条
11 绘制相关
- MPAndroidChart:一个功能强大的Android图表库,支持线、栏、饼、雷达、气泡和烛台图表,以及缩放,拖动和动画
- HoloGraphLibrary :比较新的图表库
- EazeGraph:另一个潜在的比较新的图表库
- AndroidCharts:很容易上手的图表库
- AndroidGraphView:创建灵活、好看的图表库
- AndroidPlot:Android绘制库
- WilliamChart:可以动态显示的图表库
- HelloCharts:支持缩放,滚动和动画的Android图表库
- Leonids:简单、轻松的实现颗粒效果
- AChartEngine:为Android应用提供的图表软件库
12 图片处理相关
- AndroidPhotoFilters:为你选择的图片创建有趣的效果,配置预制简单的效果
- android-gpuimage:流行的GPU图片处理
- android-image-filter:比较久的图片过滤库
- picasso-transformations:通过Picasso对图片进行处理
- glide-transformations:使用Glide对图片进行处理
- ImageEffectFilter:简单的图片处理代码
- VidEffects:将操作效果应用到视频中
13 扫描相关
- ZXing:条码或QR扫描库
- ZXing Android Embedded:替代的Android扫描库
- barcodescanner:扫码的新选择
- CamView:ZXing替代
- android-quick-response-code:扫码的另一个选择
14 数据持久化相关
- ActiveAndroid:使用activeandroid ORM使得管理客户端模型非常容易
- DBFlow:一个使用注解处理的非常健壮、强大、简单的数据持久化数据库
- greenDAO:一个轻量级、简单的将对象映射进数据库的数据库
- SugarORM:在Android中极其简单的使用数据库
- RxCache:响应式数据缓存框架
- ORMLite:支持Android和SQLite的轻量级的Java数据持久化工具
- SQLBrite:轻量级的封装SQLiteOpenHelper
- Cupboard:流行的SQL封装
- StorIO:新的轻量级的SQL封装
- Realm:为移动端而生的数据库,替代SQLite和ORMs
- NexusData:是Android对象结构持久化框架
- Hawk:可靠的键值对持久化库
- Poetry:直接存储JSON的数据持久化库
- JDXA:Android持久化框架,简单、非侵入、灵活
15 兼容性相关
- NineOldAndroids:完全兼容所有Android版本的动画库
- HoloEverywhere:给Android 4.2到Android 2.1的系统安装holo主题
- CropImage:简单兼容的图像剪裁intent
16 滚动和视差相关
下面列出了一下比较流行的滑动和视差库:
- QuickReturn:在列表滚动方向显示或隐藏列表头部或底部
- ParallaxPagerTransformer:为Android实现视差效果的页面变化器
- ParallaxHeaderViewPager:另一个实现ViewPager页面视差效果的库
- Android-ObservableScrollView:观察滑动事件或滑动块的库
- Scrollable:当实现滑动tab时,自动实现滑动逻辑
- ParallaxPager:为ViewPager实现滑动视差的库
- android-parallax-recyclerview:一个被用来在RecyclerView实现视差效果的适配器
17 调试相关
- Stetho:调试Android应用程序可用于多种用途,不局限于网络检查、数据库检查和JavaScript控制台
- Bugfender:为您的应用程序云存储日志信息,跟踪用户的行为,发现在您的移动应用程序的问题
18 资源提供相关
- Android Arsenal:为Android应用开发者提供了工具、开发库、应用的网址
- Wasabeef Core Libraries:Android核心开源库整理项目
- Wasabeef UI Librariess:Android UI/UX开源库整理项目
- Snowdream Android Library Repository:来自Github和其他网站的开发包
- Android-Libs.com:Android开发库和开发工具门户网站
- http://androidlibs.org/
- http://appdevwiki.com/wiki/show/HomePage:Android应用开发wiki
- http://www.libtastic.com:在排名靠前的Android应用中发现使用的开源库

浙公网安备 33010602011771号