一些是项目中用到的,一些是趋势,都在持续学习中…共勉
UI框架
- BaseRecyclerViewAdapterHelper 使用——RecyclerView万能适配器。
- PinnedSectionItemDecoration:强大的粘性标签库
- SmartRefreshLayout:具有极强的扩展性,集成了几十种炫酷的Header和 Footer。
- EasySwipeMenuLayout:仿IOS侧滑删除
- lottie-android:支持播放ae制作的动画库
网络请求
- Retrofit (主流)
- okhttp
图片加载
- Glide
- Fresco
- Picasso (外号:毕加索)
图片框架各有优点,根据项目需要进行取舍。
- Glide体积小,对gif支持不是很好,仅支持内存缓存和Bitmap缓存,缓存不同大小的图片。下载后处理大小再显示,所以加载速度没有picasso慢,但是内存少。
- Fresco体积大,功能全,覆盖广(低版本支持),3级缓存多了文件缓存
- Picasso 比glide弱,占用内存更多。加载一张大图
异步分发
EventBus ,是一个发布、订阅的轻量级事件总线框架,基于观察者模式的实现的线程通信框架。
RxJava, 一个在 Java VM 上使用可观测的序列来组成异步的、基于观察者模式的实现的库。
RxAndroid,函数响应式编程, 把 RxJava 带到 Android 环境中。很多时候,编写 Android 程序,你也可以看成是数据的处理和流动,换一种思想编程,曾经看起来很棘手的问题,瞬间就很优雅的解决了,相信你会被这种build模式的开发会越来越爱。
RxBinding,是 Jake Wharton 的一个开源库,它提供了一套在 Android 平台上的基于 RxJava的 Binding API。所谓 Binding,就是类似设置 OnClickListener 、设置 TextWatcher 这样的注册绑定对象的 API。
注解框架
- Dagger2 :这个框架它的好处是它没有采用反射技术(Spring是用反射的),而是用预编译技术,因为基于反射的DI非常地耗用资源(空间,时间)。
- Butterknife:绑定视图和回调字段和方法。例如,减少了findViewById()的繁琐操作。
数据库
- GreenDao
- ObjectBox
- Realm
权限请求库
- RxPermissions
- AndPermission
项目框架
mvp
mvvp
关键组件:dataBinding
个人觉得:在xml中数据控制的逻辑,不利于维护
android高级进阶
面试资料:
https://github.com/wangpengfei1992/android-interview
NDK传值demo:
https://github.com/wangpengfei1992/NdkBaseDataTransfer
组件化的基本使用: