目前我们在Android开发中,不可避免地要用到大量的开源项目,本文对常用的开源项目进行一些推荐。
首先是如何选择开源项目?建议优先选择github上比较活跃的开源项目,尽量避免从网页上零散的拷贝代码。选择开源项目的原则有下面这些:
- Stars, Issues, Pull Requests
- 文档和Demo,典型用户
- 弄清楚原理
- 结合实际业务场景
推荐Android开源项目汇总,基本上常见UI效果都能找到
https://github.com/Trinea/android-open-project
下面我把常用的框架分为下面几类,分别推荐
UI框架和自定义控件
网络请求框架
图片缓存框架
数据存储框架
事件总线框架
插件化和热部署
1. UI框架和自定义控件
- View注入框架
Butter Knife专注于Android 系统View 的注入框架,结合Android Studio插件使用 - 下拉刷新和加载更多
Android-PullToRefresh,android-Ultra-Pull-to-Refresh,Android-PullToRefreshRecyclerView - 侧边栏菜单
推荐官方Design支持库自带的
SlidingMenu,通过拖动屏幕边缘滑出菜单,支持屏幕左右划出,支持菜单 Zoom、Scale、Slide Up 三种动画样式出现 - base-adapter-helper
对传统的BaseAdapter ViewHolder 模式的一个封装,主要功能就是简化书写 AbsListView 的 Adapter 的代码,如 ListView,GridView
MPAndroidChart图表库
2. 网络请求框架
目前推荐使用Volley + OKHTTP,
参考我们自己的脚手架项目,新安卓项目要求使用。
3. 图片缓存框架
推荐使用谷歌官方建议的Glide,备选Facebook的Freso
4. 数据存储框架
无特殊需求推荐使用DBFlow ORM框架。
5. 事件总线框架
推荐使用EventBus。
手机App项目根据需求决定是否用EventBus;安卓平板项目,主要基于Fragment实现UI,需要使用EventBus。
6. 插件化和热部署
这块我们只进行了一些实验,没有实际部署。
插件化推荐DroidPlugin
热部署推荐androidFix