为什么需要改造开源框架
- bug fix
- 增强功能
- 提升性能
改造方式
- 直接改造:直接改造开源框架,创建特性分支
- 二次封装:不修改原有项目,直接进行上层封装
- 插件改造:利用已有项目的插件或者扩展机制进行定制
- 外挂改造:不修改原有代码的情况打补丁,利用 mock、hook 方法
维护开源项目的方式
- fork 原有项目
- 拉出新的分支进行修改
- 通过 github、gitlab 平台发起 merge/pull request
appium 改造实例
- fork 原始项目到远程个人仓库
- clone 原始项目到本地
- checkout 新的 feature 分支进行代码更新维护
- push 到远程个人仓库进行代码版本化管理
- 重新构建打包
- 使用定制版本的 appium 完成自动化测试
- 发起 pull/merge request 给原始仓库(可选)
底层结构
appium 的核心代码
- appium: appium的核心代码,负责与底层引擎通讯,nodejs项目,npm构建
- appium-uiautomator2-server: Android自动化引擎,java项目,gradle构建
- wda: iOS自动化引擎
appium 项目
Java 项目
构建 npm 项目
npm run build
构建 gradle 项目
./gradlew clean assembleServerDebug assembleServerDebugAndroidTest
如何提升代码改造能力
- 静态分析:深入阅读开源框架的源代码
- 动态分析:掌握动态分析代码执行的能力
- 设计经验:了解经典设计模式、数据结构与算法