GitHub上那些好用的开源项目

异步操作

1、异步的基于事件的响应式扩展库——RxJava(RxAndroid)

https://github.com/ReactiveX/RxJava
https://github.com/ReactiveX/RxAndroid

新手入门最佳教程:给 Android 开发者的 RxJava 详解

国内RxJava教父——大头鬼Bruce
GitHub:https://github.com/lzyzsd/Awesome-RxJava
博客:http://blog.csdn.net/lzyzsd/article/details/41833541

RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。这就是 RxJava ,概括得非常精准。

网络请求

1、最火android网络请求框架——Retrofit

https://github.com/square/retrofit

参考文章:
Retrofit2 完全解析 探索与okhttp之间的关系
30分钟上手最火android网络请求框架Retrofit
RxJava 与 Retrofit 结合的最佳实践

Retrofit与okhttp共同出自于Square公司,retrofit就是对okhttp做了一层封装。把网络请求都交给给了Okhttp,我们只需要通过简单的配置就能使用retrofit来进行网络请求了。

依赖注入

1、google依赖注入框架——Dagger 2

http://square.github.io/dagger/

参考文章:Android常用开源工具(1)-Dagger2入门

Dagger2是源码级注解框架,所有不用担心注解会影响程序效率。

事件总线(事件发布 / 订阅)

1、EventBus

https://github.com/greenrobot/EventBus
参考示例文章:http://blog.csdn.net/lmj623565791/article/details/40794879

优点:零耦合
缺点:主要是通过反射实现,牺牲了一点点效率。

通俗的理解:在一个单例内部维持着一个map对象,register会把当前类中匹配的方法存入这个map,post无非就是根据参数去查找方法,进行反射调用。

日志

1、简单、功能强大的logger

https://github.com/orhanobut/logger(这个是老外写的)

特点:可以打印xml、json格式

2、国产功能强大的LogUtils

https://github.com/pengwei1024/LogUtils

特点:
支持直接打印数据集合,如List、Set、Map、数组等
全局配置log输出
不需要设置tag
准确显示调用方法、行,快速定位所在文件位置
支持android系统对象Intent、Bundle打印

性能监控

1、轻量级非侵入式的性能监控组件——BlockCanary

https://github.com/moduth/blockcanary

参考文章:BlockCanary — 轻松找出Android App界面卡顿元凶

阿里内多个Android项目接入并使用BlockCanary来优化Android应用的性能。

异常监测

1、自动探测内存泄露的开源项目:leakcanary

https://github.com/square/leakcanary
参考文章:http://blog.csdn.net/watermusicyes/article/details/46333925

2、ANR监测程序:ANR-WatchDog

https://github.com/SalomonBrys/ANR-WatchDog

实现原理:
ANR-WatchDog创建一个监测线程,该线程不断往UI线程post一个任务,然后睡眠固定时间,等该线程重新起来后检测之前post的任务是否执行了,如果任务未被执行,则生成ANRError,并终止进程。

数据存储

1、一个使用比较广泛的ORM框架:ORMLite

到现在为止,Android中ORM框架也已经有很多,比如ORMLite,Litepal, androrm,SugarORM, GreenDAO,ActiveAndroid, Realm等等。对于他们之间的对比,可能各有长短,所谓存在即为合理。其中,ORMLite应该是使用较为广泛的一个。
缺点:ORMLite是基于运行时的注解框架,对程序运行时的效率会有一点影响。
jar包下载地址:http://ormlite.com/releases/
参考文章:http://blog.csdn.net/lmj623565791/article/details/39121377

UI

1、一个好用的动画类库NineOldAndroids

https://github.com/JakeWharton/NineOldAndroids/

android3.0之后出了新的animation API,但是android3.0以下的不支持
这个库完成了这个兼容性,使得ValueAnimator、ObjectAnimator等新的动画api能不改一行代码,只修改import的包名就完全兼容到新的api。
比较常用的几个动画类是:ValueAnimator、ObjectAnimator和AnimatorSet,其中ObjectAnimator继承自ValueAnimator,AnimatorSet是动画集,可以定义一组动画。

你可能感兴趣的:(Android基础)