献给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,依赖注入库Dagger2rxBinding等,请读者自行斟酌使用(可能在 MVVM架构以及 Kotlin 的 kotlin-android-extensions的功能下Butterknife和 Dagger2用处不很大或不太适用)。rxBinding 可参考《RxBinding系列之RxView(一)》。

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

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值