献给android原生应用层开发初学者技术架构选型和整合的方案思路(一)

系列文章索引:

  1. 《献给android原生应用层开发初学者技术架构选型和整合的方案思路(一)》
  2. 《献给android原生应用层开发初学者技术架构选型和整合的方案思路(二)》
  3. 《献给android原生应用层开发初学者技术架构选型和整合的方案思路(三)》
  4. 《献给android原生应用层开发初学者技术架构选型和整合的方案思路(四)》
  5. 《献给android原生应用层开发初学者技术架构选型和整合的方案思路(五)》
  6. 《献给android原生应用层开发初学者技术架构选型和整合的方案思路(六)》
  7. 《献给android原生应用层开发初学者技术架构选型和整合的方案思路(七)》

才疏学浅,本文不准备详细讲解各个技术面和代码原理分析,着重于技术方案的组合搭建和使用及注意点,有关技术面详解我会尽量列出技术大神们的博客文章供参阅(随着时间推移不保证引用超链接永久有效)。

欢迎找 bug 和补充我没有涉及到但又必需的方案。

(Kotlin语言 MVVM+RxJava2/Retroft2+EventBus+ARouter等等的整合方案)

本方案不包含 android NDK 及 hybird 混合开发方案技术选型。

所有的示例代码工程上传在 github 上面,点击查看。

  • 开发语言: Kotlin 为主 + Java 为辅
  • 开发工具:android studio 3.3.2 + android SDK
  • 采用的技术选型
  1. 来自 airbnb 的 MvRx MVVM  有关 mvrx 的技术原理讲解请参阅《Android真响应式架构——MvRx》
  2. 来自 aribnb的 Epoxy 辅助构建从简单到复杂的 recycleView ,有关技术文章请参阅《Epoxy——RecyclerView的绝佳助手》
  3. rxJava2/rxAndroid 异步编程组件,有关技术文章可参阅《优美的异步 --- RxAndroid》
  4. rxJava2的生命周期组件RxLifecycle及 Kotlin语言实现,用于解决 RxJava 的内存泄露
  5. 来自 Uber 公司的autoDispose(可选项),可代替 RxLifeCycle 解决内存泄露,技术文章可参阅《代替RxLifecycle》《添加AutoDispose解决RxJava内存泄漏》
  6. 远程 http请求库 Retrofit2/okhttp3 及 RxJava2的 adpter,有关技术文章请参阅《Retrofit2深入浅出》
  7. 内存泄露检测工具 leakcanary,请参阅译文《LeakCanary: 让内存泄露无所遁形》
  8. okhttp3访问拦截器okhttpprofiler 以及 android studio 对应的插件来显示拦截数据,请参阅 此组件的github readme.
  9. 阿里巴巴 ARouter 及相关插件来解耦路由跳转和路由拦截,请参阅《阿里巴巴ARouter基本使用方法》
  10. 事件总线 EventBus来解耦数据回调或传递,请参阅《手把手教你使用EventBus》
  11. 谷歌 muitl-dex 技术解决64K方法数限制问题,请参阅《Android 突破 DEX 文件的 64K 方法数限制》
  12. 谷歌ORM 持久化 解决方案ROOM(可选项,greenDAO也不错)
  13. fragment 动画加载跳转,手势滑动退出开源组件 fragmentation,参见文章《Android框架之路——Fragmentation的使用》《Fragment之我的解决方案:Fragmentation》
  14. 腾讯 UI组件QMUI,实现全局 theme,跨 android版本统一 UI布局,也有 iOS 版本可统一 UI 风格(可选项)
  15. 其它一些工具类组件(可选项,本例中采用到部分 UI 或者工具库,您可选择使用或者采用您自己封装),如RxTool有关相机,支付等封装,弹窗组件TDialog编写自定义交互弹窗(或者采用 Xpopup,目前比 TDialog 更新频繁),常用方法工具集AndroidUtilCode,精品图片加载库glide(文章《Google推荐——Glide使用详解》),aribnb的自定义动画加载库Lottie(支持 android,ios,react native),rxPermission2权限申请库等等。
  • 其他精品,但暂时在 demo 中未使用到的库,如控件事件绑定库Butterknife,依赖注入库Dagger2,rxBinding等,请读者自行斟酌使用(可能在 MVVM架构以及 Kotlin 的 kotlin-android-extensions的功能下Butterknife和 Dagger2用处不很大或不太适用)。rxBinding 可参考《RxBinding系列之RxView(一)》。

续篇《献给android原生应用层开发初学者技术架构选型和整合的方案思路(二)》

你可能感兴趣的:(android)