当前位置: 首页 > news >正文

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

第 18 章 移动应用系统分析与设计

【版权声明与学习说明】
本文系笔者学习《系统分析师教程(第2版)》第18章后,结合个人理解整理的原创学习笔记。文中所有表格、通俗化举例及箭头式总结,均为本人消化后重新归纳表述,不代表原书官方立场。
整理初衷仅为交流学习、备考记录,无意侵犯原作者版权。若您认为存在不当引用,请通过CSDN私信联系,我会第一时间处理。
推荐备考的朋友购买正版教材,尊重知识成果。

移动应用系统是企业信息化的重要载体,本章围绕移动应用的全生命周期展开,核心涵盖移动应用平台、开发环境、架构设计、开发方式及无代码开发五大板块。从主流开发 / 部署平台的特性对比,到开发环境的工具选型,再到架构从单体到微服务的演进,以及原生、混合、无代码等多种开发模式,全面覆盖移动应用开发的核心知识,旨在帮助系统分析师掌握移动应用从设计到落地的完整逻辑,适配不同业务场景的开发需求。

18.1 移动应用平台概述

移动应用平台分为开发平台和部署平台,前者提供全流程研发支持,后者负责应用的发布与运行,是移动应用落地的基础支撑。

18.1.1 移动端应用开发平台

主流开发平台各有侧重,有的 “大而全” 覆盖全流程,有的 “小而精” 聚焦核心能力,核心平台如下:

  1. EMAS(阿里巴巴)
    • 定位:全端场景一站式研发平台(支持 App、H5、小程序、PC 应用);
    • 核心优势:基于云原生技术,提供 B-Design 设计体系(高品质 UI 组件)、组件化框架(10 分钟搭建超级 App)、阿里 Mobile DevOps 最佳实践(周粒度迭代);
    • 关联产品:mPaaS(源于支付宝,云到端一站式解决方案,降低技术门槛)。
  2. FinClip
    • 核心能力:App 集成其小程序 SDK 后,可快速运行小程序,实现解耦、模块化开发和动态热更新;
    • 核心优势:跨端运行(支持 iOS、Android、Windows、电视等多设备)、自研开发工具 FIDE(小程序转独立 App)、支持灰度发布(按地域 / 人群 / 时段投放)。
  3. EMOP(京东)
    • 定位:企业级移动研发平台,京东移动中台产品化;
    • 核心优势:支持原生、跨端、H5、小程序四大开发框架;组件化方案高效解耦,沉淀丰富业务组件(网络、扫码、分享等);完善 DevOps 流程(静态代码扫描、热修复);全维度性能监控 + 智能运营分析。
  4. 其他平台
    • TMF(腾讯):大而全,覆盖研发全闭环;
    • APICloud:专注移动研发技术,小而精,有独特优势。

18.1.2 移动端应用部署平台

部署平台决定应用的发布渠道和运行环境,主流分为小程序和 App 两大类:

  1. 小程序部署平台(微信 vs 支付宝)

    对比维度微信小程序支付宝小程序
    开发差异开发逻辑简约直观,生态完善功能复杂,商业属性强
    面向人群开放给个人 + 企业开发者公测阶段,仅面向企业级开发者
    核心优势生态构建成熟,可接入分类丰富依托蚂蚁金服 / 芝麻信用,支付、金融能力更强
  2. App 部署平台(Android vs iOS)

    对比维度AndroidiOS
    开源属性开源系统,开放性高闭源系统,审核严格
    运行机制虚拟机运行,程序可互访,内存占用易增长沙盒运行,应用独立隔离,安全性高
    后台机制退出后仍后台运行,需手动清理退出后仅保留界面,自动释放内存
    屏幕响应优先级第三层级(先激活应用 / 框架,再处理屏幕)第一层级(优先处理屏幕交互,流畅度更高)
    App 审核监管宽松,适配性参差不齐严格审核,杜绝 “流氓软件”,漏洞少

18.2 移动应用开发环境

开发环境是移动应用开发的 “工具集”,按应用类型分为 App、小程序、网页应用三类,各自有专属工具和技术要求:

18.2.1 App 开发环境

  1. Android 开发环境
    • 核心工具:JDK(Java 开发核心,含编译 / 运行工具)、JRE(Java 运行环境,含 JVM)、JVM(Java 虚拟机,实现 “一次编译,多处运行”)、Android Studio(谷歌官方 IDE,集成开发 / 调试 / 打包功能);
    • 辅助工具:Eclipse/IDEA(可选 IDE,Eclipse 适合初学者,IDEA 功能更强大)。
  2. 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 架构演进阶段

  1. 单体应用架构
    • 特点:所有功能打包成一个整体(如 war 包),开发、部署、运维简单,性能稳定;
    • 劣势:业务复杂后,代码臃肿,开发效率低,维护成本高。
  2. MVC 架构(Model-View-Controller)
    • 核心分层:
      • Model(模型层):封装业务数据和处理逻辑(如聊天消息、用户信息);
      • View(视图层):展示数据,与用户交互(如聊天界面、按钮);
      • Controller(控制器层):协调 Model 和 View,处理用户请求(如消息发送 / 接收逻辑);
    • 形象比喻:像卡带游戏机 ——Controller 是主机,View 是电视 + 手柄,Model 是游戏卡带;
    • 案例(微信):Model 定义聊天消息、联系人数据;View 展示聊天界面、朋友圈;Controller 处理消息发送、联系人管理逻辑。
  3. MVP 架构(Model-View-Presenter)
    • 核心改进:解决 MVC 中 View 与 Controller 耦合过紧的问题,将复杂逻辑移至 Presenter;
    • 核心分层:
      • Model:与 MVC 一致,封装数据和业务逻辑,不依赖 View/Presenter;
      • View:负责 UI 初始化和交互,持有 Presenter 引用(如 Android 的 Activity/Fragment);
      • Presenter:协调 Model 和 View,获取 Model 数据并回显到 View,响应用户行为;
    • 案例(美食家应用):Model 含 SQLite 数据库(存储用户 / 菜谱信息)和 Retrofit 库(网络请求);View 是 UI 组件(展示美食 / 菜谱);Presenter 通过调用 Model 和 View API 实现业务逻辑。
  4. MVVM 架构(Model-View-ViewModel)
    • 核心改进:进一步解耦,ViewModel 负责将 Model 数据转换为 View 可用格式,支持数据双向绑定;
    • 特点:View 不直接依赖 Model,通过 ViewModel 通信,代码更简洁;
    • 案例(Vue.js):基于 MVVM 思想,通过 Observer 监听数据变化,Compile 解析指令,Watcher 绑定更新函数,实现视图自动更新。
  5. 微服务架构
    • 特点:将应用拆分为多个独立服务(如用户管理、支付、推荐),每个服务独立部署、扩展,通过 API 通信;
    • 核心优势:可伸缩性强、容错性高;
    • 挑战:服务通信、数据一致性;
    • 案例(Netflix):拆分用户管理服务、视频流服务、推荐系统服务、支付服务、配置管理服务,通过 RESTful API 交互,独立扩展。

18.4 移动应用开发

移动应用开发按技术路线分为多种方式,适配不同业务场景和跨端需求,核心包括开发语言、小程序、原生 App、网页 App、混合 App 五类:

18.4.1 开发语言

不同开发方式对应不同语言,核心分类如下:

开发类型核心语言 / 技术优势劣势
原生 AppAndroid:Java/Kotlin;iOS:Objective-C/Swift性能最优,充分利用设备功能成本高,需为不同平台单独开发
Web App/H5HTML/CSS/JS跨平台,一套代码多端运行性能不如原生,功能受浏览器限制
Hybrid AppHTML/CSS/JS + Native API跨平台 + 原生功能调用,成本适中性能略逊于原生,页面交互有限
桥接 App仅 JS(编译为 Java/OC)跨平台,执行效率高多平台效果无法完全一致
Flutter AppDart跨平台,性能高,多端效果一致Dart 为新语言,生态迭代较慢

18.4.2 小程序开发方式(以微信为例)

  1. 基于微信小程序框架(MINA)
    • 特点:新手友好,上手快,封装微信基础功能(文件系统、网络通信),提供 JS API,快速构建应用。
  2. 原生开发方式
    • 特点:使用 Java/OC 等原生语言 + 微信 SDK,可实现高级功能,性能更好。
  3. 网页开发方式
    • 特点:使用 HTML/CSS/JS + 微信 API,兼容多平台,开发效率高。
  4. 跨平台开发方式
    • 特点:使用 React Native/Weex 等跨平台语言,一套代码多端运行,节省时间。
  5. 云开发方式
    • 特点:无需搭建服务器,免鉴权调用微信 API,支持按量计费,快速开发小程序 / 公众号。

18.4.3 原生 App 开发方式

  1. Android 开发
    • 核心要求:掌握 Java/Kotlin 语言,熟悉 Android 环境和机制,掌握 UI 设计、第三方类库调用、网络 / 数据库知识;
    • 案例(滴滴出行):技术栈为 Java/Kotlin(客户端)、Node.js(后端)、React(前端)、MySQL(数据库);架构采用微服务(功能模块拆分为独立服务)+ MVP(客户端)+ 敏捷开发(2 周迭代周期)。
  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 Mobile(UI)、Node.js+Express(后端)、MongoDB(数据库);功能包括景点查询、酒店预订、路线规划。

18.4.5 混合 App 开发方式

  • 核心逻辑:结合原生代码(提供容器,如 WebView)和 Web 技术(HTML5/CSS/JS,实现业务和界面),实现 “一次开发,多处运行”;
  • 核心优势:跨平台覆盖广、开发 / 维护成本低、兼具原生功能和 Web 灵活性;
  • 主流框架:Ionic、React Native、Flutter;
  • 案例(Uber):技术栈为 Ionic(混合开发框架)、AngularJS(Web 框架)、Cordova(打包工具)、Node.js(后端)、MongoDB(数据库);原生代码用 WebView 为 HTML5 提供容器,业务逻辑和界面通过 Web 技术实现。

18.5 无代码开发

无代码开发是 “无需编写代码,通过可视化操作构建应用” 的模式,降低开发门槛,适配快速迭代需求:

18.5.1 发展阶段

  1. 第一阶段:单一功能代码生成工具(如报表 / 表单生成);
  2. 第二阶段:面向业务的应用开发平台(如 PowerBuilder、Visual Basic);
  3. 第三阶段:基于模型驱动的开发平台(如 Mendix、OutSystems);
  4. 第四阶段:基于低代码 + 云计算的无代码平台(如 Salesforce、Airtable)。

18.5.2 核心优劣

  • 优势:降低技术门槛(非专业开发者可参与)、提高开发效率、缩短周期、降低成本、模块化组件易维护;
  • 劣势:灵活性和可扩展性有限(难满足特殊需求)、可能存在性能 / 安全性问题、平台依赖度高、长期成本可能高于传统开发。

18.5.3 主流平台

  • 无代码平台:Airtable(云表格 + 数据库)、Bubble(可视化 Web 应用开发)、OutSystems、Mendix、AppSheet、Salesforce Lightning Platform;
  • 核心能力:提供可视化界面、组件库、自定义规则,支持拖放操作构建应用。

18.5.4 开发流程

  1. 需求分析:明确应用目标、功能和性能需求;
  2. 界面设计:用可视化编辑器创建布局和样式;
  3. 逻辑实现:拖放组件、配置属性和规则;
  4. 数据管理:设置数据库结构、API 调用;
  5. 测试与调优:功能测试、性能优化;
  6. 发布与维护:发布到目标平台,后续更新维护。

18.5.5 案例(Zapier)

  • 核心定位:连接各类应用程序,实现自动化协作;
  • 开发流程:选择触发器(如 “收到新邮件”)→ 选择动作(如 “创建 Trello 卡片”)→ 设置参数映射(如邮件标题→卡片标题)→ 命名并激活 Zap → 后续可停用 / 修改 / 查看运行日志。
http://www.cnnetsun.cn/news/3499270.html

相关文章:

  • 用 Skill 精读 OCRBench v2 是什么体验?
  • 大家好,我是UWA GPM「小Q」,今天是我加入项目的第一天
  • 告别 Agent 大循环:后端工程师从脚本原型到可维护架构的进阶指南
  • 西门子S7-1200PLC通过CB1241插件板RS485通讯控制变频器
  • codex 逆向 带壳 apk
  • 2026年优质3D超写实数字人服务商深度横评
  • Luckfox Pico Ultra W实现摄像头识别功能
  • 企业微信数据保障计划深度解析:12项可恢复范围与实战要点
  • Python从入门到精通(六):高级并发、底层原理与系统级架构设计
  • FastAPI + Pydantic 模型终极实战手册:从能跑就行到固若金汤,这些技巧你一定用得上
  • 基于 XDP 极速抓取 SIP 音频流,赋能 AI 实时翻译与对话
  • 解决echarts饼图---legend显示/隐藏饼图不重新计算的问题
  • 如何让闲置屏幕变身优雅翻页时钟:FlipIt屏保完全指南
  • GPT-5.6 Sol上线数天即曝删库行为 OpenAI定性为“诚实错误”
  • 计算机毕业设计之网上书店管理系统
  • API集成能力在2026年项目管理中究竟有多重要?
  • 把极空间变成私有云后台:1Panel、AList和远程访问一次跑通
  • 【Bug已解决】False positive cybersecurity flag. 解决方案
  • AI Agent 入门(一):OpenClaw 与 Hermes(openclaw输出篇)
  • react native项目配置eslint+prettier
  • 储能电池就这么选性价比高I好用的电池回收信息对接平台
  • 【Coding生态】从代码托管到 AI 能力底座:与Coding一起共建 AI 研发生态
  • 嘉准专利柔性红尾套线缆:上万次往复折弯不断线,告别每周停机换线
  • 一种欠定盲源分离方法及其在模态识别中的应用附Matlab代码
  • 2026年科研检测行业 难溶样品卡尔费休辅助溶剂选择解析
  • 题解:洛谷 B4359 [GESP202506 三级] 分糖果
  • HarmonyOS ArkUI Marquee 跑马灯与 Gauge 仪表盘:公告滚动与数据展示
  • 【计算机毕业设计】本科生学习资源整合功能设计与实现
  • 【AI大模型微调】第 3 章 微调整体流程
  • 为什么你的团队还没启用Gemini会议助手?——来自Google Cloud认证架构师的3个致命认知盲区