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

戏说移动江湖开发历程

发布时间:2018-12-31 08:13:18 所属栏目:移动互联 来源:Todo2
导读:副标题#e# 大主线 细说移动开发历程 大技术 组件化开发 组件路由 组件配置动态加载 组件骨架架构 插件化开发 静态插件化 动态插件化 细节雕琢 网络层的优化和架构 动态埋点的实现 技术层架构(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.         } } 

(编辑:PHP编程网 - 湛江站长网)

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