Android开发必备开源库大汇总

前言

(此文源自https://github.com/codepath/android_guides/wiki/Must-Have-Libraries,作者对其小部分内容做了一些修改)对于Android应用开发而言,有很多三方的开源库。其中一些开源库为“必备”的,它们非常流行,几乎所有的Android应用项目都在使用。每一个都有不同的目的,但是所有的都能够让开发变得简单而有效率。下面分类列出主要的一些库:


标准库

下面列出的“标准包”是非常流行的而且被广泛应用的,这些库应该被使用在大部分的Android应用当中。

Retrofit, 类型安全的有效率的Http客户端,利用注解极大加速了开发效率。

Picasso,强大的图像加载库。

Butter Knife,利用注解简化一些常用的任务。

Parceler,简化Parcelable的代码。

IcePick,自动保存Instance State,不必手动去写代码。

Hugo,简化用Log的代码。

LeakCanary,调试内存泄漏的工具。

Espresso,UI自动化测试工具。

Robolectric,高效单元测试工具。


高级库

以下的几个库的用法更高级,并且在一些顶级的开发人员中非常流行。这些库可能不适合初学者。

Dagger 2,快速的依赖注入库。

RxAndroid,完全基于函数响应式的框架。

Otto,组件间的通信框架。

AndroidAnnotations,强大的注解工具,用来减少代码量。

值得一提的是这些库有时并不是能够很好地组合使用,以下是一些常见的问题。

ButterKnife和Parceler

使用ButterKnife和Parceler会导致重复声明javax.annotation.processing.Processor这个类,在这样的情况下需要在app/build.gradle中排除这哥情况

packagingOptions {
        exclude 'META-INF/services/javax.annotation.processing.Processor'  // butterknife
    }

ButterKnife和自定义View

你可能会发现,在构造函数中使用ButterKnife或者Dagger的注入会导致Android Studio不能预览你的自定义View。你可能会看到一个需要定义isEditMode()函数的错误。这个函数本质上是使编译器能够执行到你渲染界面的代码而不去执行那些在你预览界面中看不到的代码。

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);

以下是一些更加普遍的库的分类,包含以上提到的。


方便开发

Dagger,依赖注入的框架,由Square公司开发,上文中提到的Dagger 2由Google接手做了改进。

AutoParcel,Google开发的自动生成Parcelable的库。

Akatsuki,用注解自动保存Instance State。

Hugo,使得Log更加简单。

Logger,使Log变得更加整洁,使你更加容易跟踪信息。

Trikita Log,Log的另一种改进版。

LeakCanary,快速捕获内存泄漏。

AndroidAnnotations,简化繁琐的工作,使你集中在真正重要的事情上,与此同时也使得你的代码变得容易维护。

RoboGuice,强大的Android扩展工具,提高开发效率。

Calligraphy,简化自定义字体。

EasyFonts,预先读取自定义字体到你的App中。

AndroidViewAnimations,使得开发动画变得便捷。

AboutLibraries,自动生成关于我们的部分。

SDK Manager Plugin,帮助你下载项目中缺少的SDK,API,以及支持库等。


功能扩展

Otto,增强的基于Guava的Event Bus,强调Android Support。

EventBus,优化过的EventBus,简化组建之间的通信。

Tape,为Android和Java设计的对象队列。

Rxjava,Java虚拟机的消息响应扩展。

Priority Job Queue,简单的后台任务管理器。

ACRA,使得报告崩溃变得简单和免费,参考安装源代码


网络请求

Retrofit,类型安全的有效率的Http客户端,利用注解极大加速了开发效率。

Okhttp,Square公司的底层网络请求库,支持异步任务。

Picasso,强大的图像加载库。

Ion,强大的异步网络请求库。

Android Async HTTP,异步Http客户端。

Chronos,用来操作Android异步任务。

Volley,Google使用的Http库,方便网络请求的开发以及使得网络请求更加有效。

Glide,Google推出的类似Picasso的图像加载工具。

IceNet,Android网络请求包,是Volley,Okhttp和Gson的结合。

Android Universal Image Loader,流行的类似Picasso和Glide的图像加载库。

Fresco,Facebook使用的图片加载库。


ListView

EasyListViewAdapters,使得开发不同行的Listview更加方便整洁。

GridListViewAdapters,轻松构建无尽的GridView。

StickyListHeaders,方便开发需要在顶端设置标题的ListView。

PinnedListView,可以对元素进行分组的ListVeiw。

ListVeiwAnimations,方便对ListView的动画效果的开发。

Cardslib,ListView和GridView的卡片效果。

PullToRefresh ListView,方便简洁的下拉更新的ListVeiw。

QuickReturn,根据滚动方向显示或隐藏标题或者底部。

Paginated Table,动态分页的表格,可以在列中添加图标,例如按钮勾选框等。


RecyclerView

UltimateRecyclerView,RecyclerView的扩展,支持刷新、加载更多、动画等等许多特性。

Android Parallax RecyclerView,用于完成一些并行效果的适配器。

Sticky Headers RecyclerView,方便开发需要在顶端设置标题的RecyclerView。

FastAdapter,加快Recyclerview的加载速度。

ItemAnimators,对元素的增减移动添加动画效果。


导航

PagerSlidingTabStrip,Material效果的标题导航页面切换。

ViewPagerIndicator,兼容Android Support库和ActionbarSherlock的ViewPager。

JazzyViewPager,可以添加动画效果的ViewPager。

ParallaxPager,具有并行滚动效果的ViewPager。

ParallaxHeaderViewPager,另一个具有并行效果的ViewPager。

ParallaxPagerTransformer,在页面切换时有特殊并行效果的ViewPager。

SlidingMenu,使得开发者能够轻易创建滑动菜单。

SateliteMenu,Android放射菜单。

ArcMenu,弧线以及放射菜单。

SlidingUpMenu,Android上拉面板。

Draggable Panel,可以被拖动的面板。

Material Drawer,Material风格的Drawer。


UI组件

Crouton,用于替代Toast的组件,可以设置各种样式。

BetterPickers,多样化的Picker。

Android Shape ImageView,各种形状的ImageView。

Rounded ImageView,圆形的ImageView。

Android SlackBlur,Android动态模糊图片工具。

Android Bootstrap,Android上Bootstrap组件。

PhotoView,支持根据触摸手势放大缩小的ImageView。

ShowcaseView,高亮你App最好的部分。

FadingActionBar,渐变的ActionBar。

AndroidViewAnimations,通用的View的动画。

ProgressView,更好的ProgressBar。

SmoothProgressBar,水平的自定义ProgressBar。

CircularFillableLoaders,可填充的圆形加载图标。

Rebound,弹簧动态库。

AndroidImageSlider,各种图片切换特效。

FloatingActionButton,FloatingActionButton的另一种实现。

FourSquare CollectionPicker,选取器。

NexusDialog,生成类似HTML的表格。

Dialogplus,对话框的扩展。

Iconify,方便在App中加入各种图标。

Android StepsView,Android中的显示步骤的View。

PhotoView,Android中根据手势缩小放大照片的ImageView。

Android Iconics,可以改变图标的任何尺寸和颜色。

Scissors,轻便快捷的图片切割工具。


画图工具

Leonids,简单有效的颗粒效果库。

MP Android Chart,强大的Android图表工具。

AChartEngine,另一个图表工具。

HoloGraphLibrary,新的画图工具。

EazeGraph,另一个强大的图表工具。

AndroidCharts,容易使用的图标工具。

AndroidGraphView,另一个图表工具。

AndroidPlot,Android Plot工具。

WilliamChart,灵活的图表工具,支持动画。

HelloCharts,支持缩放、滚动、动画的图表工具。


扫描图形

Zxing,条码或者OR码扫描器。

Zxing Android Embedded,另一个扫描器。

BarcodeScanner,zxing的替代。

zxscanlib,zxing的替代。

Android Quick Response Code,zxing的另一个替代。


数据存储

ActiveAndroid

GreenDao

SugarORM

SQLBrite,轻量的基于相应函数的SQLiteOpenHelper支持框架。

Cupboard

Realm

NexusData

Hawk,加密存储。

Poetry,将Json转换为SQL存储。

DBFlow,强大、轻便、高效的Android数据存储库。


调试

Stetho,基于Chrome的Android App调式工具,包括但不限于网络请求、数据库、Javascrip命令等。


后记

以上许多开源库的作者都是Jake Wharton,目前是Square公司的Android工程师,许多我们常用的Android开源框架皆出自他手。如果你是一个Android应用工程师,或者即将转向Android应用开发,那么建议你关注一下他。与此同时,此文也会不断地更新,以跟踪最新的Android开源库动态。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值