《系统分析师教程(第2版)》笔记——第 18 章 移动应用系统分析与设计

发布时间:2026/7/18 23:52:37
《系统分析师教程(第2版)》笔记——第 18 章 移动应用系统分析与设计 第 18 章 移动应用系统分析与设计【版权声明与学习说明】本文系笔者学习《系统分析师教程第2版》第18章后结合个人理解整理的原创学习笔记。文中所有表格、通俗化举例及箭头式总结均为本人消化后重新归纳表述不代表原书官方立场。整理初衷仅为交流学习、备考记录无意侵犯原作者版权。若您认为存在不当引用请通过CSDN私信联系我会第一时间处理。推荐备考的朋友购买正版教材尊重知识成果。移动应用系统是企业信息化的重要载体本章围绕移动应用的全生命周期展开核心涵盖移动应用平台、开发环境、架构设计、开发方式及无代码开发五大板块。从主流开发 / 部署平台的特性对比到开发环境的工具选型再到架构从单体到微服务的演进以及原生、混合、无代码等多种开发模式全面覆盖移动应用开发的核心知识旨在帮助系统分析师掌握移动应用从设计到落地的完整逻辑适配不同业务场景的开发需求。18.1 移动应用平台概述移动应用平台分为开发平台和部署平台前者提供全流程研发支持后者负责应用的发布与运行是移动应用落地的基础支撑。18.1.1 移动端应用开发平台主流开发平台各有侧重有的 “大而全” 覆盖全流程有的 “小而精” 聚焦核心能力核心平台如下EMAS阿里巴巴定位全端场景一站式研发平台支持 App、H5、小程序、PC 应用核心优势基于云原生技术提供 B-Design 设计体系高品质 UI 组件、组件化框架10 分钟搭建超级 App、阿里 Mobile DevOps 最佳实践周粒度迭代关联产品mPaaS源于支付宝云到端一站式解决方案降低技术门槛。FinClip核心能力App 集成其小程序 SDK 后可快速运行小程序实现解耦、模块化开发和动态热更新核心优势跨端运行支持 iOS、Android、Windows、电视等多设备、自研开发工具 FIDE小程序转独立 App、支持灰度发布按地域 / 人群 / 时段投放。EMOP京东定位企业级移动研发平台京东移动中台产品化核心优势支持原生、跨端、H5、小程序四大开发框架组件化方案高效解耦沉淀丰富业务组件网络、扫码、分享等完善 DevOps 流程静态代码扫描、热修复全维度性能监控 智能运营分析。其他平台TMF腾讯大而全覆盖研发全闭环APICloud专注移动研发技术小而精有独特优势。18.1.2 移动端应用部署平台部署平台决定应用的发布渠道和运行环境主流分为小程序和 App 两大类小程序部署平台微信 vs 支付宝对比维度微信小程序支付宝小程序开发差异开发逻辑简约直观生态完善功能复杂商业属性强面向人群开放给个人 企业开发者公测阶段仅面向企业级开发者核心优势生态构建成熟可接入分类丰富依托蚂蚁金服 / 芝麻信用支付、金融能力更强App 部署平台Android vs iOS对比维度AndroidiOS开源属性开源系统开放性高闭源系统审核严格运行机制虚拟机运行程序可互访内存占用易增长沙盒运行应用独立隔离安全性高后台机制退出后仍后台运行需手动清理退出后仅保留界面自动释放内存屏幕响应优先级第三层级先激活应用 / 框架再处理屏幕第一层级优先处理屏幕交互流畅度更高App 审核监管宽松适配性参差不齐严格审核杜绝 “流氓软件”漏洞少18.2 移动应用开发环境开发环境是移动应用开发的 “工具集”按应用类型分为 App、小程序、网页应用三类各自有专属工具和技术要求18.2.1 App 开发环境Android 开发环境核心工具JDKJava 开发核心含编译 / 运行工具、JREJava 运行环境含 JVM、JVMJava 虚拟机实现 “一次编译多处运行”、Android Studio谷歌官方 IDE集成开发 / 调试 / 打包功能辅助工具Eclipse/IDEA可选 IDEEclipse 适合初学者IDEA 功能更强大。iOS 开发环境核心工具Xcode苹果官方 IDE开发 macOS/iOS/tvOS 应用集成设计 / 编译 / 测试 / 调试、iOS SDK开发必需的文档、API、工具集合开发语言Objective-C传统语言、Swift苹果新推语言专门适配 iOS/macOS第三方 SDK极光推送、微信 / 支付宝支付登录等需集成到项目中实现特定功能。18.2.2 小程序开发环境核心技术WXML模板语言类似 HTML、WXSS样式语言类似 CSS、JS逻辑语言、JSON配置文件控制页面顺序、菜单栏核心工具微信开发者工具基于 nw.js支持代码编写、编译、模拟器预览、调试关键组件模拟器模拟多机型效果部分 API 需真机测试、WXML 编译器将 WXML 转为 JS 结构生成函数、JS 预处理ES6 转 ES5、代码压缩。18.2.3 网页应用开发环境核心工具HTML5 开发工具如 DevExtreme关键技术移动设备适配技术浏览器兼容性、响应式设计、开发模式Native App、Hybrid App。18.3 移动应用架构移动应用架构经历了从 “简单集成” 到 “模块化解耦” 再到 “分布式服务” 的演进核心目标是提升可维护性、可扩展性和性能18.3.1 架构演进阶段单体应用架构特点所有功能打包成一个整体如 war 包开发、部署、运维简单性能稳定劣势业务复杂后代码臃肿开发效率低维护成本高。MVC 架构Model-View-Controller核心分层Model模型层封装业务数据和处理逻辑如聊天消息、用户信息View视图层展示数据与用户交互如聊天界面、按钮Controller控制器层协调 Model 和 View处理用户请求如消息发送 / 接收逻辑形象比喻像卡带游戏机 ——Controller 是主机View 是电视 手柄Model 是游戏卡带案例微信Model 定义聊天消息、联系人数据View 展示聊天界面、朋友圈Controller 处理消息发送、联系人管理逻辑。MVP 架构Model-View-Presenter核心改进解决 MVC 中 View 与 Controller 耦合过紧的问题将复杂逻辑移至 Presenter核心分层Model与 MVC 一致封装数据和业务逻辑不依赖 View/PresenterView负责 UI 初始化和交互持有 Presenter 引用如 Android 的 Activity/FragmentPresenter协调 Model 和 View获取 Model 数据并回显到 View响应用户行为案例美食家应用Model 含 SQLite 数据库存储用户 / 菜谱信息和 Retrofit 库网络请求View 是 UI 组件展示美食 / 菜谱Presenter 通过调用 Model 和 View API 实现业务逻辑。MVVM 架构Model-View-ViewModel核心改进进一步解耦ViewModel 负责将 Model 数据转换为 View 可用格式支持数据双向绑定特点View 不直接依赖 Model通过 ViewModel 通信代码更简洁案例Vue.js基于 MVVM 思想通过 Observer 监听数据变化Compile 解析指令Watcher 绑定更新函数实现视图自动更新。微服务架构特点将应用拆分为多个独立服务如用户管理、支付、推荐每个服务独立部署、扩展通过 API 通信核心优势可伸缩性强、容错性高挑战服务通信、数据一致性案例Netflix拆分用户管理服务、视频流服务、推荐系统服务、支付服务、配置管理服务通过 RESTful API 交互独立扩展。18.4 移动应用开发移动应用开发按技术路线分为多种方式适配不同业务场景和跨端需求核心包括开发语言、小程序、原生 App、网页 App、混合 App 五类18.4.1 开发语言不同开发方式对应不同语言核心分类如下开发类型核心语言 / 技术优势劣势原生 AppAndroidJava/KotliniOSObjective-C/Swift性能最优充分利用设备功能成本高需为不同平台单独开发Web App/H5HTML/CSS/JS跨平台一套代码多端运行性能不如原生功能受浏览器限制Hybrid AppHTML/CSS/JS Native API跨平台 原生功能调用成本适中性能略逊于原生页面交互有限桥接 App仅 JS编译为 Java/OC跨平台执行效率高多平台效果无法完全一致Flutter AppDart跨平台性能高多端效果一致Dart 为新语言生态迭代较慢18.4.2 小程序开发方式以微信为例基于微信小程序框架MINA特点新手友好上手快封装微信基础功能文件系统、网络通信提供 JS API快速构建应用。原生开发方式特点使用 Java/OC 等原生语言 微信 SDK可实现高级功能性能更好。网页开发方式特点使用 HTML/CSS/JS 微信 API兼容多平台开发效率高。跨平台开发方式特点使用 React Native/Weex 等跨平台语言一套代码多端运行节省时间。云开发方式特点无需搭建服务器免鉴权调用微信 API支持按量计费快速开发小程序 / 公众号。18.4.3 原生 App 开发方式Android 开发核心要求掌握 Java/Kotlin 语言熟悉 Android 环境和机制掌握 UI 设计、第三方类库调用、网络 / 数据库知识案例滴滴出行技术栈为 Java/Kotlin客户端、Node.js后端、React前端、MySQL数据库架构采用微服务功能模块拆分为独立服务 MVP客户端 敏捷开发2 周迭代周期。iOS 开发核心要求掌握 Objective-C/Swift 语言熟悉 Xcode、Cocoa Touch 框架、硬件 API相机、GPS、CoreData数据库案例知乎 iOS 客户端技术栈为 Swift/Objective-C、RxSwift响应式编程、Alamofire网络请求、Kingfisher图片加载架构采用 MVVM功能模块包括首页、问题、话题、个人中心、消息中心。18.4.4 网页 App 开发方式核心技术HTML5/CSS3/JS前端 Java/PHP/ASP后端特点无需下载安装通过浏览器访问跨平台优势明显但功能受浏览器限制案例去哪儿网网页 App技术栈为 React Native跨平台框架、Redux状态管理、Ant Design MobileUI、Node.jsExpress后端、MongoDB数据库功能包括景点查询、酒店预订、路线规划。18.4.5 混合 App 开发方式核心逻辑结合原生代码提供容器如 WebView和 Web 技术HTML5/CSS/JS实现业务和界面实现 “一次开发多处运行”核心优势跨平台覆盖广、开发 / 维护成本低、兼具原生功能和 Web 灵活性主流框架Ionic、React Native、Flutter案例Uber技术栈为 Ionic混合开发框架、AngularJSWeb 框架、Cordova打包工具、Node.js后端、MongoDB数据库原生代码用 WebView 为 HTML5 提供容器业务逻辑和界面通过 Web 技术实现。18.5 无代码开发无代码开发是 “无需编写代码通过可视化操作构建应用” 的模式降低开发门槛适配快速迭代需求18.5.1 发展阶段第一阶段单一功能代码生成工具如报表 / 表单生成第二阶段面向业务的应用开发平台如 PowerBuilder、Visual Basic第三阶段基于模型驱动的开发平台如 Mendix、OutSystems第四阶段基于低代码 云计算的无代码平台如 Salesforce、Airtable。18.5.2 核心优劣优势降低技术门槛非专业开发者可参与、提高开发效率、缩短周期、降低成本、模块化组件易维护劣势灵活性和可扩展性有限难满足特殊需求、可能存在性能 / 安全性问题、平台依赖度高、长期成本可能高于传统开发。18.5.3 主流平台无代码平台Airtable云表格 数据库、Bubble可视化 Web 应用开发、OutSystems、Mendix、AppSheet、Salesforce Lightning Platform核心能力提供可视化界面、组件库、自定义规则支持拖放操作构建应用。18.5.4 开发流程需求分析明确应用目标、功能和性能需求界面设计用可视化编辑器创建布局和样式逻辑实现拖放组件、配置属性和规则数据管理设置数据库结构、API 调用测试与调优功能测试、性能优化发布与维护发布到目标平台后续更新维护。18.5.5 案例Zapier核心定位连接各类应用程序实现自动化协作开发流程选择触发器如 “收到新邮件”→ 选择动作如 “创建 Trello 卡片”→ 设置参数映射如邮件标题→卡片标题→ 命名并激活 Zap → 后续可停用 / 修改 / 查看运行日志。