你必知的Android开源库

你必知的Android开源库,不知道的话,赶紧学习并在项目中实践吧!

译自http://guides.codepath.com/android/Must-Have-Libraries)

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相关

8 组件RecyclerView相关

9 简单的导航菜单

10 UI组件

11 绘制相关

12 图片处理相关

13 扫描相关

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 兼容性相关

16 滚动和视差相关

下面列出了一下比较流行的滑动和视差库:

17 调试相关

  • Stetho:调试Android应用程序可用于多种用途,不局限于网络检查、数据库检查和JavaScript控制台
  • Bugfender:为您的应用程序云存储日志信息,跟踪用户的行为,发现在您的移动应用程序的问题

18 资源提供相关

posted @ 2017-05-04 12:42  天涯海角路  阅读(407)  评论(0)    收藏  举报