细说移动开发历程复制代码
组件化开发 组件路由 组件配置动态加载 组件骨架架构 插件化开发 静态插件化 动态插件化 细节雕琢 网络层的优化和架构 动态埋点的实现 技术层架构(MVP,MVVM等模式)复制代码
后续按照大技术块各个技术点深刻浅出的分享出来,请订阅关注。
复制代码
本文阅读须要8分钟。
你可能的收获:
理解整个公司移动开发的基线和主线
学会移动开发组开发过程碰到问题和解决方案
学会移动开发过程各个技术的细枝末叶
但愿能给读者开发项目有点启发和思索复制代码
我理解的技术开发人员,除了业务和技术的热爱,其同时也需具有独立思考的能力。复制代码
1.成长期
2.混沌期
3.统一期
4.分化期
成长期通常在公司的第1~2年;
混沌期通常在公司的第2~3年;
统一和分化期在公司第3年之后;其中统一和分化期有可能屡次迭代进行。复制代码
此时开发技术选型都是以我的因素为走向,所以前期项目选型和架构都是我的技术喜好占主导,本身熟悉的技术和框架才是最快最有效的,能够快速追遇上线进度。譬如喜欢rxjava,喜欢mvp模式很快就会在这个项目就起主导方案和技术架构。甚至有些开发同仁直接从网上所谓架构好的现成项目开干怼。此时段公司的惟一宗旨就是首战市场产出产品,快速迭代占据每一个开发人员的脑海中,细节等一切能够忽略,要啥自行车。java
一、Bug的可视化实时监控和统计;
二、引用内存未释放致使crash的bug;
三、内存泄漏致使crash的bug;
四、进入市场机型问题引发的bug;
五、网络访问慢的反馈;
六、奇葩未知的bug;
七、。。。复制代码
问题2的思考,引入Eventbus解决回调地狱问题和回调引发泄漏未释放问题;python
问题5的思考,略;git
关于公司指定的线上bug指标,是否完成也是须要多版本迭代现网运行后才能统计;既然是现网bug就有轻重之分,若是重大bug通常当即发布新版本更新,轻微的bug放到下一个版本迭代修复,那有没有现网bug热修复方案,确定有的,成熟的有tinker等第三方库;github
图(一)编程
图(二)安全
1. 模块间的调用进行解耦合实现模块热拔式方案
2. 是时候加上代码权限管理
3. 模块打包AAR实现模块间引入
4. 解决编译速度慢问题
5. 自动化打包问题
6. 。。。。复制代码
sourceSets {
main {
jniLibs.srcDirs = ['libs']
if ("true".equals(FINANCE_IS_APPLICATION)) {
manifest.srcFile 'src/main/diff/appmodule/AndroidManifest.xml'
java.srcDirs = ['src/main/java', 'src/main/diff/appmodule/java']
res.srcDirs = ['src/main/res', 'src/main/diff/appmodule/res']
assets.srcDirs = ['src/main/assets', 'src/main/diff/appmodule/assets']
} else {
manifest.srcFile 'src/main/diff/libmodule/AndroidManifest.xml'
java.srcDirs = ['src/main/java', 'src/main/diff/libmodule/java']
res.srcDirs = ['src/main/res', 'src/main/diff/libmodule/res']
assets.srcDirs = ['src/main/assets', 'src/main/diff/libmodule/assets']
}
}
}
复制代码
通常自动化服务能够经过搭建jenkins服务,或者配合python脚本实现自动化打包功能,其脚本的功能因公司而异。bash
图(三)网络
慢慢发现,组件化架构无声无息的出现了,是否是很神奇。回过头发现组件化架构已经进行了一小部分,信心十足,继续干,此时必须祭出毛爷爷的红本子,大声的朗读出来,我爱编程,皮肤好好!!架构
一、项目升级降级功能;
二、第三方库的引用和初始化工做;
三、实现子模块加载和引入以及初始化工做;
四、周边服务或插件的引入和初始化工做;例如Tinker和bugly等
五、。。。复制代码
图(四)app
图(五)
1. 全局配置文件的分离,实现配置文件根据子模块业务走,例如网络地址的配置和网络请求地址的分离;
2. 业务配置文件的分离,配合服务端一块儿实现模块化分离;
3. 各个子模块的公共业务动态加载块;
4. 耦合代码的分离和重构;
5. 。。。复制代码
一、例如上面提到的bug中出现网络性能慢,这个就能够深刻挖掘各个实现,例如腾讯就这个小点实现了Mars开源框架;
二、业务UI框架的封装(减小重复开发以及性能问题);
三、性能监控;
四、配置管理中心;
五、动态埋点;
六、各个业务核心点的优化;
七、编写的组件化的重构和优化;
八、技术层架构(MVP,MVVM等模式)
九、分布式架构;
十、。。。。复制代码
以上过程实际上是一个分久必合合久必分的过程。当项目走向作到极致的时候仍是无法应付庞大用户群和业务群,请转行养猪。。。复制代码
插件化路由实现,源码详见,以为好请点击star:个人路由