BluetoothDemo.zip
Android开发蓝牙与ble设备的通讯,实现扫描、连接、读写功能。
引入VIewModel 减轻对P对V的操作 protected fun <T : BaseViewModel> vmProviders(modelClass: Class<T>): T { val viewModel: BaseViewModel if (mContext is FragmentActivity || mContext is Fragment) { viewModel = if (mContext is BaseActivity) { ViewModelProviders.of(mContext as FragmentActivity).get(modelClass) } else { ViewModelProviders.of(mContext as Fragment).get(modelClass) } } else { viewModel = ViewModelProvider.AndroidViewModelFactory.getInstance(App.getInstance()).create(modelClass) } // 监听viewModel被销毁时 也销毁presenter viewModel.setClearedListener(object : BaseViewModel.ViewModelClearedListener { override fun onCleared() { onDestroy() } }) initCommon(viewModel) return viewModel
组件化开发 微信登录 微信支付、支付宝支付等模块整合 MVP 主体架构 MVVM 双向绑定 Rxjava2 retrofit2 rxlifecycle2 生命周期绑定 arouter 路由 leakcanary 内存泄露检查 logger 漂亮的日记 takephoto 照片选择器 PickerView 地址选择器 rxpermissions 权限请求
组件化开发 随着APP版本不断的迭代,新功能的不断增加,业务也会变的越来越复杂,APP业务模块的数量有可能还会继续增加, 而且每个模块的代码也变的越来越多,这样发展下去单一工程下的APP架构势必会影响开发效率,增加项目的维护成本, 每个工程师都要熟悉如此之多的代码,将很难进行多人协作开发,而且Android项目在编译代码的时候电脑会非常卡, 又因为单一工程下代码耦合严重,每修改一处代码后都要重新编译打包测试,导致非常耗时,最重要的是这样的代码想要 做单元测试根本无从下手,所以必须要有更灵活的架构代替过去单一的工程架构。 经过组件化架构,可以将每个组件单独做为一个app开发,有可以组合不同的组件进行开发。 是否进行模块化开发 控制开关 isModule=false/true