1、当项目越来越大时app的业务越來越复杂,会出现业务功能复杂混乱各功能块、页面相互依赖,相互调用太多导致耦合度高而采用组件化开发,我们就可以将功能模塊合理的划分降低功能耦合度。
2、不采用组件化开发时编译速度缓慢,修改一个页面布局编译一下还得等几分钟使用组件开发后,烸次修改只需要编译对应的模块即可
3、有利于团队协作开发,开发人员之间职责明确每一个开发人员只需要关注和负责自己的功能点,互不干扰提高效率。
4、在多渠道或者合作方需求不一致时可以快速拼接功能模块打包相应的App
组件化就是要将项目的各个功能拆成多個模块,可分为app主模块登录注册模块,个人中心模块功能模块等。
1、主工程模块主要是APP壳,里面不涉及任何逻辑代码只有权限等配置写在app模块下的..PONENTS) { // 实例化后,调用各个组件的 set 方法
经过这样的处理上面第二步最后“该在哪里set 跳转服务”的问题就解决了。总结本篇实現的组件间跳转原理如下:
在应用启动的时候它的APP壳组件的Application类会进行初始化,在这里我们通过反射的方式初始化了其他各组件的Application类而各组件的Application类在初始化时,又会通过set操作把自己的跳转服务注册到common组件这样的话,通过common组件get对应的服务即可实现跳转。
我们来试一下茬B组件里,跳转到A组件就可以这么写了;
这样B组件就不依赖A组件也可以进行跳转,实现了我们的期望
采用路由来实现页面跳转,比较成熟的有:
组件化项目的Java代码混淆方案采用在集成模式下集中在app壳工程中混淆各个业务组件不配置混淆文件。集成开发模式下在app壳工程中build.gradle文件的release构建类型中开启混淆属性其他buildTypes配置方案跟普通项目保持一致,Java混淆配置文件也放置在app壳工程中各个業务组件的混淆配置规则都应该在app壳工程中的混淆配置文件中添加和修改。
之所以不采用在每个业务组件中开启混淆的方案是因为 组件茬集成模式下都被 Gradle 构建成了 release 类型的arr包,一旦业务组件的代码被混淆而这时候代码中又出现了bug,将很难根据日志找出导致bug的原因;另外每個业务组件中都保留一份混淆配置文件非常不便于修改和管理这也是不推荐在业务组件的 build.gradle 文件中配置 buildTypes (构建类型)的原因。
library属性不可鉯独立运行,一般是Android程序依赖的库文件
更多后续欢迎关注有任何建议可以私信沟通,期待与你的交流
美国为何就突然接受了华为5G
洲國家,这次当然不会说“偷窃”技术因为欧洲人还是比较聪明。美国换用另外一招就是”低级红”,说华为威胁其安全利用人们的恐惧心理,开始发起攻势事实上,欧洲并不买账尤其是英国运营商,明确要采用华为5G设施部网;
眼看这第一招失灵了于是就开启第②招,就是同归于尽
美国亚利桑那州3月12日举行健康峰会上,一位名叫托马斯·考恩的医生在演讲中声称,是5G导致了新冠病毒的传播
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。