加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 移动互联 > 正文

戏说移动江湖开拓过程

发布时间:2018-12-25 02:24:08 所属栏目:移动互联 来源:Todo2
导读:大主线 细说移动开拓过程 大技能 组件化开拓 组件路由 组件设置动态加载 组件骨架架构 插件化开拓 静态插件化 动态插件化 细节雕琢 收集层的优化和架构 动态埋点的实现 技能层架构(MVP,MVVM等模式) 媒介 你也许的收成: 领略整个公司移动开拓的基线和主线

题目1的思索,既然实现解耦条约时实现热拔式方案,说白点就是当前模块开关封锁,被其他引用的模块无法感知到这个模块被封锁,即其他模块引用的代码必需不能硬编码此模块的要领和引用类等等,方案就是组件路由,挪用方通过字符串path查询模块的处事和成果。

题目2的思索,代码权限打点一样平常通过git可能svn去实现。

题目3的思索,可以通过gradle剧本实现模块打包上传私服。

题目4的思索,gradle自己题目加上模块多导致编译速率慢,按照营业线的独立性那我们可以通过编写营业模块时给此模块实现App模式,镌汰其他不须要的代码编译和运行。实现方案概略如下:

在模块gradle编译剧本通过标识符来区分是模块照旧可独立运行的App

  1. sourceSets {  
  2.         main {  
  3.             jniLibs.srcDirs = ['libs']  
  4.             if ("true".equals(FINANCE_IS_APPLICATION)) {  
  5.                 manifest.srcFile 'src/main/diff/appmodule/AndroidManifest.xml'  
  6.                 java.srcDirs = ['src/main/java', 'src/main/diff/appmodule/java']  
  7.                 res.srcDirs = ['src/main/res', 'src/main/diff/appmodule/res']  
  8.                 assets.srcDirs = ['src/main/assets', 'src/main/diff/appmodule/assets']  
  9.             } else {  
  10.                 manifest.srcFile 'src/main/diff/libmodule/AndroidManifest.xml'  
  11.                 java.srcDirs = ['src/main/java', 'src/main/diff/libmodule/java']  
  12.                 res.srcDirs = ['src/main/res', 'src/main/diff/libmodule/res']  
  13.                 assets.srcDirs = ['src/main/assets', 'src/main/diff/libmodule/assets']  
  14.             }  
  15.         } } 

这样我们必要单独运行此模块,在gradle.properies把FINANCE_IS_APPLICATION为true然后编译就可以实现营业代码编写和运行。有人问,假如我必要实现主App内里的新营业,那你可以封锁其他无关的模块实现快速编译进步开拓服从。

题目5的思索,跟着项目标增大和多渠道的打包,此时必要举办思量项目周边的营业处事,譬喻提供应测试职员的打包测试,正式版的宣布等等自动化产出题目。

一样平常自动化处事可以通过搭建jenkins处事,可能共同python剧本实现自动化打包成果,其

剧本的成果因公司而异。

戏说移动江湖开拓过程

图三

以是此时急切必要一个认识gradle,python等剧本的同道(gradle自己是grovvy说话)。担保新营业的开拓的环境下整个进程的重构和完美至少必要半年时刻(大公司除外)。

逐步发明,组件化架构无声无息的呈现了,是不是很神奇。

回过甚发明组件化架构已经举办了一小部门,信念十足,继承干,此时必需祭出毛爷爷的红本子,高声的朗读出来,我爱编程,皮肤好好!!

我们发明已经做了营业模块化代码疏散和模块间路由互调通讯以及gradle组件化剧本;

你的生长是成立在公司的生长上,跟着公司营业成长复杂,各种缘由营业陪伴着也会呈现分支独立,必要某些子营业线独立出App提供专业的处事和体验;必要流传种子着花功效,原先的子模块也许酿成独立App,以是发明今朝的架构是没法实现,对,走过来,请在菩提树下思索;其基础缘由就是组件化不完全导致的。个中最大题目就是主项目模块涉及到大量的早年最早的营业代码和成果,此刻最急切题目是必要把主项目标营业剥离酿成一个营业子模块加一个纯粹的项目骨架,个中项目骨架必需上升一级酿成新的主项目模块,此主项目模块包括项目民众营业。说白点,把项目骨架套在其他子模块就是一个独立的App可以运行;

作为比拟,图四为原架构图,图五为主项目模块上升一级为项目骨架的架构图

个中主项目骨架必需包括的成果有:

  1. 项目进级降级成果;
  2. 第三方库的引用和初始化事变;
  3. 实现子模块加载和引入以及初始化事变;
  4. 周边处事或插件的引入和初始化事变;譬喻Tinker和bugly等
  5. 。。。

戏说移动江湖开拓过程

中期架构
戏说移动江湖开拓过程
组件化成型架构

这个时辰组件化概略已经完备成型,此刻独一必要做的就是通过gradle剧本去做粘合器,剧本共同jenkins动态实现模块间和主项目骨架的组合;

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读