一行代码快速解耦Application逻辑,让Application更简洁好维护

简介: 版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/23b9ba9b685d转载请标明出处:https://www.jianshu.com/p/23b9ba9b685d本文出自 AWeiLoveAndroid的博客【前言】很多人在开发中使用了大量的第三方的库,或者自己封装的库,很多库都是需要在Application里面配置的,如果配置过多,导致Application过于臃肿,代码不好维护,可读性比较差。

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/23b9ba9b685d

转载请标明出处:
https://www.jianshu.com/p/23b9ba9b685d
本文出自 AWeiLoveAndroid的博客


【前言】很多人在开发中使用了大量的第三方的库,或者自己封装的库,很多库都是需要在Application里面配置的,如果配置过多,导致Application过于臃肿,代码不好维护,可读性比较差。下面是我写的一个简单的库,帮你快速解耦Application,让你的Application显得更简洁,更好维护。

使用场景: Application里面配置的过多的时候,可以使用这个库。

注意事项:
1.目前只适用于普通开发,组件化插件化没做兼容处理。
2.线程切换也没做考虑,因为一般的第三方库的使用基本都是在主线程,所以没做线程切换,后续有时间会慢慢完善的。
3.进程有关的也没做处理,因为目前用到的三方库没有这方面的需求,所以没考虑这一块。

1.首先来一张调用的图,如下,是不是很简单:
调用方式
2.下面看一下ApplicationHelper这个类做了什么事情:

这是一个单例的类,调用init方法传入上下文,然后调用init开头的方法,比如initNetWork()就表示初始化网络操作的一些逻辑。

ApplicationHelper这个类简单介绍
3.ApplicationHelper实现了IInitMethods接口,这个接口主要用来规范有哪些逻辑要处理,它是初始化的所有方法的顶层接口,用于规范有哪些逻辑需要做,比如网络库,图片库等。
IInitMethods接口
4.ApplicationHelper类调用了InitWrapperImpl这个类,通过InitWrapperImpl.getInstance()返回一个实例对象,然后调用了init(mContext)方法,传入一个上下文,最后调用execute(XX,XX,XX)执行库的初始化的具体操作。
InitWrapperImpl这个类的一个简单说明
5.InitWrapperImpl这个类里面用到了常量类Contants,主要保存type类型,和库的名字的信息。
常量类Contants

6.InitWrapperImpl这个类它是实现了IInitWrapper接口,规范了具体的执行过程公用的一些接口方法。
IInitWrapper接口

到此,这个库基本就介绍完了,是不是很简单?想要源码的可以下面的链接获取。

ApplicationHelper这个库,轻松实现Application的隔离型框架


在这里也欢迎各位多提意见。感谢大家的支持。


觉得不错的朋友们 点赞 或者 打赏 支持一下吧。

【好消息】我的微信公众号正式开通了,关注一下吧!
关注一下我的公众号吧
相关文章
|
监控 关系型数据库 Linux
|
11月前
|
Java Kotlin
Kotlin学习教程(七)
Kotlin学习教程(七)
209 0
|
存储 固态存储 虚拟化
【vSAN分布式存储服务器数据恢复】VMware vSphere vSAN ESXi超融合HCI分布式存储数据恢复案例
近期,我司处理了一个由10台华为OceanStor存储组成的vSAN超融合架构,其中一台存储闪存盘出现故障,用户取下后用新的闪存盘代替,然后对该闪存盘所在的磁盘组进行重建,导致集群中一台使用0置备策略的虚拟机数据丢失。
277 6
|
存储 芯片 块存储
计算机组成原理(1)----存储器相关(1)
计算机组成原理(1)----存储器相关
410 4
|
Java API 开发工具
解决 Android 依赖冲突
解决 Android 依赖冲突
460 0
|
前端开发 JavaScript UED
【专栏:交互与用户体验篇】CSS 滚动效果与视差滚动
【4月更文挑战第30天】本文探讨了CSS滚动效果和视差滚动在提升网页用户体验中的作用。CSS滚动效果通过`transition`和`animation`属性实现元素动态变化,包括平滑滚动、元素跟随和滚动触发动画。视差滚动则利用不同元素滚动速度差异营造立体感,适用于长页面设计、故事讲述和创意展示。实现方法包括纯CSS和结合JavaScript。这些效果能增强吸引力、提升沉浸感并引导用户注意力,但需注意性能优化、适度使用和兼容性测试。案例分析展示了它们在实际项目中的应用和影响。
167 2
|
Java Spring
Spring5源码(29)-Pointcut和Advisor以及静态普通方法名匹配切面
Spring5源码(29)-Pointcut和Advisor以及静态普通方法名匹配切面
167 0
|
Java 关系型数据库 数据库连接
SpringBoot(二)【整合第三方技术】
SpringBoot(二)【整合第三方技术】
|
Kubernetes 数据可视化 Linux
3款免费又好用的 Docker 可视化管理工具
3款免费又好用的 Docker 可视化管理工具
641 0
|
Android开发
Android中 Download Manager系统下载管理器在Android 10系统中无法使用的情况
Android中 Download Manager系统下载管理器在Android 10系统中无法使用的情况
524 0