系列文章导航:
之前的文章总结了一下自己从实习到现在摸索出的一点应用框架设计的经验,更多的是从整体框架设计上来说分层和模块划分的,这两天整理项目代码,可以从更细的方面总结一下一个应用框架应该具备哪些基本的要素。
建议在开发中尽可能遵循 Android开发最佳实践
0.框架和技术的选择
其实现在Android应用开发应该说是比较简便了,大量的开源库使得开发者能够快速在这些开源库的基础之上快速搭建一个功能强大的应用框架。我们都在说,不要重复造轮子,那么应该说,熟悉常用的开源框架就是一个初学者进阶的必经之路了。这里说一下我在应用框架搭建中使用的第三方框架:
内存泄漏分析:LeakCanary
基础网络库:OKHttp3
JSON序列化/反序列化:Gson
异步网络调用框架:volley、Retrofit2,如果选择Retrofit的话一般是配合RxJava来使用的
组件间通信:EventBus
图片框架的话,如果应用对图片管理的需求并不高,用Glide,如果经常加载图片或者说要做图片处理则使用Fresco。
视频相关目前并没有找到什么比较强悍的框架,原生调用相机录制视频比较蛋疼的地方就在于其视频质量只有2档,要么糊的不能看,要么拍出来的文件大的不能看。如果项目有视频录制的需求还是建议自己实现较好。
我自己目前在项目中是基于Retrofit + RxJava实现整个调用链,整体简化了应用内异步调用的处理,RxJava目前来说学习曲线还是比较陡峭,而且配合Retrofit使用的时候也会有一些隐含的Bug,如果没有什么经验支撑的话建议还是不要初学就在公司项目上使用比较好,不然没人填坑就麻烦了=。=