跨端性能与架构

共 25 题
#

1. Taro Next 的 Webpack5/Rspack 适配与跨端产物治理

A Taro Next 适配 Webpack5 并支持 Rspack 加速构建,跨端产物需按端裁剪并通过分包与体积预算治理 ✓ 正确答案
B Taro Next 只能使用 Webpack4
C Rspack 与 Webpack 在性能上没有区别
D 跨端产物体积无需治理
#

2. 小程序分包加载、预加载与骨架屏如何组合优化首屏,分包体积如何治理?

A 分包只会增加首包体积
B 预加载规则对所有页面都会生效
C 骨架屏可以真正加快网络请求
D 分包加载减小首包、预加载提前下载分包、骨架屏降低感知白屏,并需通过按需引入与构建分析治理分包体积 ✓ 正确答案
#

3. 小程序 setData 优化与长列表性能

A setData 只更新逻辑层数据,无性能开销
B setData 每次调用都序列化跨线程传输,需通过路径式更新、节流与虚拟列表等手段优化 ✓ 正确答案
C 长列表直接渲染所有节点性能最好
D setData 的数据量越大性能越好
#

4. Lynx 与原生渲染在跨端首屏的工程价值

A Lynx 首屏仍需等待 WebView 初始化
B Lynx 与 WebView 渲染性能没有差别
C Lynx 不支持前端 DSL 开发
D Lynx 以原生渲染免去 WebView 开销,逻辑与渲染并行执行,首屏性能接近原生但能力集是 Web 子集 ✓ 正确答案
#

5. 小程序分包预下载与 setData 数据量优化量化手段,数据序列化开销与渲染层通信瓶颈的测量

A 分包预下载与 setData 优化应通过命中率、setData 耗时与传输字节数等指标量化,并固化为性能预算 ✓ 正确答案
B 优化效果只能凭主观感受评估
C setData 的传输量无法测量
D 性能预算只在开发环境有效
#

6. Electron 28+ 默认 sandbox 渲染进程与 BrowserWindow 安全策略的工程价值

A Electron 28+ 默认关闭渲染进程 sandbox
B 远程内容可以无条件加载
C 渲染进程沙箱开启后仍可直接访问 Node 全局
D Electron 28+ 默认开启 sandbox 与 contextIsolation,配合 CSP 与导航白名单形成纵深防御 ✓ 正确答案
#

7. Electron 主进程 / 渲染进程 / 预加载脚本的 IPC 与 sandbox 工程价值

A 渲染进程默认拥有完整 Node 能力
B 主进程不负责窗口管理
C IPC 只能使用 send 单向通信
D preload 通过 contextBridge 暴露受限 API,敏感操作由主进程代理,sandbox 下渲染进程无 Node 能力 ✓ 正确答案
#

8. contextBridge 安全隔离与 contextIsolation/nodeIntegration/Sandbox 三件套

A contextIsolation 开启后页面可以直接访问 Node
B nodeIntegration=true 配合 contextIsolation=true 是安全配置
C contextBridge 在隔离世界与主世界间暴露白名单 API,nodeIntegration=false、contextIsolation=true、sandbox=true 需同时开启 ✓ 正确答案
D sandbox 与 contextIsolation 作用相同,开一个即可
#

9. 微信原生组件与自定义组件的渲染层性能边界

A 原生组件与普通组件渲染机制完全相同
B 视频组件必须用自定义组件实现
C 自定义组件没有渲染成本
D 原生组件由系统原生层渲染性能高但定制受限,自定义组件灵活但受渲染线程与 setData 成本约束 ✓ 正确答案
#

10. 跨端框架的发布与版本管理(热更新/灰度)如何做,发版事故如何回滚?

A 热更新发布后无法回滚
B 跨端发布需包与热更新双层配合,灰度放量 + 可观测性决策,热更新可秒级回滚且需维护双向版本兼容 ✓ 正确答案
C 灰度必须对所有用户同时放量
D 回滚不需要版本记录
#

11. RN 新架构下 JSI 同步调用的性能特征,TurboModules 懒加载与 Fabric 渲染的帧率影响

A JSI 免序列化同步调用降低延迟,TurboModules 懒加载减少启动开销,Fabric 按优先级调度渲染稳定帧率 ✓ 正确答案
B JSI 调用仍需 JSON 序列化
C TurboModules 在启动时全量初始化
D Fabric 只影响启动速度
#

12. 跨端方案的包体积治理,Hermes 字节码、ICU 裁剪与按需引入的工程实践

A Hermes 字节码会显著增大包体积
B ICU 数据永远不会被裁剪
C Hermes 字节码压缩、ICU 裁剪与按需引入是包体积治理的主要手段,但各有边界需权衡 ✓ 正确答案
D 按需引入会增加包体积
#

13. 跨端框架的调试与 DevTools 集成

A 各跨端框架基于统一调试协议提供 DevTools 面板,真机与远程调试链路需与日志、抓包协同定位问题 ✓ 正确答案
B 跨端框架只能通过 console.log 调试
C 发布版本必须保留完整调试功能
D 原生层问题与框架层无关,无需联动排查
#

14. 进程间通信 IPC(ipcMain+ipcRenderer)

A invoke 的 handler 抛错不会传回渲染进程
B 所有 IPC 消息都自动可信
C IPC 可以传输函数引用
D Electron IPC 有 invoke/handle 与 send/on 两类模式,数据经结构化克隆传输,需校验消息来源与参数 ✓ 正确答案
#

15. Electron 多进程模型(主进程、渲染进程、预加载脚本)

A 渲染进程可以访问完整 Node 环境
B 窗口关闭即应用退出
C Electron 主进程管理系统能力与生命周期,渲染进程负责 UI,preload 在页面执行前通过 contextBridge 暴露受限 API ✓ 正确答案
D 渲染进程崩溃无法恢复
#

16. Electron 禁用 remote 模块后的 IPC 设计模式(ipcRenderer.invoke/handle、主进程统一管理窗口与状态)

A remote 模块可以让渲染进程安全调用主进程
B 主进程不应集中管理窗口
C 共享状态可以各自维护在不同窗口
D 禁用 remote 后,渲染层通过 invoke/handle 请求主进程统一管理窗口与状态,形成单一权限校验点 ✓ 正确答案
#

17. 主进程 app 生命周期与 BrowserWindow 窗口管理

A app 生命周期事件驱动窗口创建与退出,macOS 保留应用惯例,窗口管理需注册表、状态持久化与引用清理 ✓ 正确答案
B window-all-closed 时所有平台都立即退出
C BrowserWindow 创建后无需管理引用
D 第二实例启动不需要处理
#

18. Electron 渲染进程开启 sandbox 后 Node 能力的替代方案(preload 白名单暴露、主进程代理执行)

A sandbox 下渲染进程仍可直接读写文件
B preload 可以包含完整业务逻辑
C sandbox 渲染进程通过 preload 白名单暴露受限 API,敏感操作由主进程代理执行并做权限校验 ✓ 正确答案
D 主进程不需要校验渲染层请求
#

19. Electron 多窗口状态同步架构(BroadcastChannel、共享 store、主进程中枢广播)的取舍

A 多窗口状态同步可按状态重要性组合使用 BroadcastChannel、主进程共享 store 与中枢广播 ✓ 正确答案
B BroadcastChannel 可以跨窗口持久化状态
C 共享 store 不需要 IPC
D 主进程广播无法做权限校验
#

20. 小程序敏感数据处理与网络请求安全

A 加密密钥可以安全地放在小程序前端代码中
B 小程序安全需密钥后移到服务端、请求走白名单 HTTPS 并验签,敏感数据脱敏展示 ✓ 正确答案
C 请求域名无需配置白名单
D 本地存储可以存放明文敏感数据
#

21. Reanimated 工作线程与 React 渲染在动画性能的工程价值

A Reanimated 的动画在 JS 线程逐帧执行
B Reanimated 通过 worklet 在 UI 线程执行动画,共享值不触发 React 重渲染,从而保证帧率稳定 ✓ 正确答案
C 共享值每次变化都会重渲染整个组件树
D worklet 可以使用全部 JS API
#

22. Flutter 引擎 Skia/Impeller 在跨端渲染一致性的工程取舍

A Skia 在各平台的绘制结果完全一致
B Impeller 在各平台的渲染结果没有差异
C Impeller 预编译统一着色器使跨平台绘制结果更可预测,字体与纹理等平台差异仍需适配治理 ✓ 正确答案
D Flutter 渲染依赖系统控件
#

23. nativeImage/Image 模块在跨平台图标与 Dock Badge 的工程价值

A nativeImage 只能加载本地文件
B Dock Badge 在所有平台行为完全一致
C nativeImage 支持从 buffer/dataURL 创建多尺寸图标,Dock Badge 与托盘图标需按平台差异适配与能力检测 ✓ 正确答案
D 托盘图标不需要多分辨率资源
#

24. protocol.registerSchemesAsPrivileged 自定义协议

A registerSchemesAsPrivileged 可以在 ready 之后调用
B 自定义协议自动视为可信内容
C 自定义协议须在 app ready 前注册并声明 standard/secure 等特权属性,处理器需处理全部请求且遵循安全边界 ✓ 正确答案
D 协议处理器不需要返回 MIME 类型
#

25. Offscreen Rendering 与 BrowserView

A Offscreen Rendering 用于屏幕共享需要手动捕获帧
B BrowserView 自动管理层级与尺寸
C Offscreen Rendering 在不可见窗口输出帧供录制/缩略图使用,BrowserView 用于嵌入内容且已被 WebContentsView 演进替代 ✓ 正确答案
D offscreen 渲染与正常渲染性能完全一致