Flutter性能剖析:帧、内存、启动与并发优化 发表于 2025-10-12 更新于 2025-10-13 分类于 跨平台框架 本文字数: 11k 阅读时长 ≈ 41 分钟 1. 从感知到数据驱动性能问题,往往是从“感觉”开始的。比如——滑动列表时明显掉帧、点击按钮后界面迟迟不响应、应用启动时间漫长、或突然出现 OOM(内存溢出)从而导致崩溃。这些“感知问题”是用户最先接触到的体验信号,也是性能优化的出发点。但“感觉”并不等于“原因”。一个卡顿,可能是因为主线程被阻塞,也可能是图片解码过慢,甚至只是动画过渡时 CPU 和 GPU 同时被抢占。 阅读全文 »
Flutter路由、导航与多端协同:嵌套路由与多端差异处理 发表于 2025-10-08 更新于 2025-10-09 分类于 跨平台框架 本文字数: 7.1k 阅读时长 ≈ 26 分钟 1. 为什么要声明式导航在 Flutter 的早期开发中,我们几乎都是通过 Navigator.push() 来完成页面跳转的。这种方式直观、易上手,但当应用体量一旦变大、业务流程变复杂,命令式导航(imperative navigation)就会开始暴露出一系列问题。 阅读全文 »
Flutter状态管理与项目架构:模块化、DI与可维护性实践 发表于 2025-10-04 更新于 2025-10-12 分类于 跨平台框架 本文字数: 11k 阅读时长 ≈ 39 分钟 1. 从“能跑”到“可扩展、可维护”平时开发中,很多开发者虽然能把视图(Widgets)按页面或组件拆成不同的文件,但业务逻辑和状态处理往往直接写在 Widget 内部,依赖 setState 或零散的单例/全局变量来管理。这种“分文件但逻辑内聚”的灵活方式虽然能在小项目里能快速迭代、方便验证想法,但不讲究长期维护,就像临时搭建的一间小屋。 阅读全文 »
Flutter约束与布局:RenderObject、CustomPaint 与 Sliver 协议 发表于 2025-09-29 更新于 2025-10-09 分类于 跨平台框架 本文字数: 7.1k 阅读时长 ≈ 26 分钟 1. 为什么要自定义 RenderObject在 Flutter 中,我们平时开发中最常打交道的是 Widget。它们像是 UI 的“配置表”,描述界面要长什么样。但 Widget 并不真正负责绘制,它只是告诉框架“我要一个红色的方块”或者“我要一个可滚动的列表”。真正负责把这些需求落到屏幕上的,是底层的 RenderObject。 阅读全文 »
从Widget到Layer:Flutter引擎与渲染管线解析 发表于 2025-09-25 更新于 2025-10-13 分类于 跨平台框架 本文字数: 14k 阅读时长 ≈ 52 分钟 1. 概述1.1 为什么要理解 Flutter 渲染原理可能很多人刚接触 Flutter 时,往往只关心“怎么写 Widget”。但是当项目复杂度增加,就会遇到各种疑惑:为什么页面会掉帧?为什么某个布局报错“RenderBox was not laid out”?为什么同样的动画,有的流畅,有的卡顿?这些问题的根源,几乎都藏在 Flutter 的渲染机制里。 阅读全文 »
A3C 算法原理与超级马里奥实践(下) 发表于 2025-08-29 更新于 2025-09-21 分类于 强化学习 , 深度学习 本文字数: 9k 阅读时长 ≈ 33 分钟 1. 项目背景与目标1.1 为什么选择 A3C 来玩超级马里奥?超级马里奥是一个经典的横版过关游戏,玩法是简单,但是环境比较复杂:玩家要面对敌人、陷阱、跳跃平台,还要在有限时间内快速决策。所以在强化学习中,它被认为是一个很好的 实验case: 状态空间是高维的(游戏画面本身就是像素矩阵) 行动结果对未来奖励有长远影响(跳跃错过管道可能直接失败) 游戏场景变化多端,能充分考察智能体的泛化能力 阅读全文 »
A3C 算法原理与超级马里奥实践(上) 发表于 2025-08-22 更新于 2025-09-21 分类于 强化学习 , 深度学习 本文字数: 5.4k 阅读时长 ≈ 20 分钟 1. AC 算法1.1 策略梯度在强化学习中,如果我们想让智能体学会这样一个 策略(在不同状态下选什么动作): 一个动作能带来高奖励,就要让它以后更可能被选上 一个动作只能带来低回报,就要减少使用它的频率 而策略梯度就是一个这样的工具,“根据奖励信号,调整策略参数,让好动作更可能被选中,坏动作少被选上。” 阅读全文 »
DQN(Deep Q-Network)系列算法解析与实践 发表于 2025-08-14 更新于 2025-09-21 分类于 强化学习 , 深度学习 本文字数: 7.4k 阅读时长 ≈ 27 分钟 1. 任务与背景介绍在 Gym/Gymnasium 的 MountainCar-v0 环境中,有这样一个场景:一辆小车被困在两个山坡之间,目标是到达右侧山坡顶端的红旗位置。 乍一看,这似乎只需要踩油门往右冲就行,但现实并非如此,小车的发动机动力不足,单次加速无法直接登顶,它会在半途滑落回谷底。正确的策略是先向左加速爬上左坡,然后顺势向右冲下去,再反复摆动、积累动能,最终才能冲上右侧山顶。 阅读全文 »
PPO算法在连续与离散动作空间中的案例实践 发表于 2025-07-30 更新于 2025-09-21 分类于 强化学习 , 深度学习 本文字数: 9k 阅读时长 ≈ 33 分钟 1.PPO算法与动作空间类型概览1.PPO(Proximal Policy Optimization)简介PPO(近端策略优化)是OpenAI于2017年提出的强化学习算法,通过创新的”剪切目标函数”设计,在保证训练稳定性的同时实现高效策略优化。其核心思想是通过约束策略更新幅度,防止策略突变导致的性能崩溃,解决了传统策略梯度方法(如TRPO)的工程实现复杂性问题。 阅读全文 »
强化学习 — PPO策略优化算法 发表于 2025-07-22 更新于 2025-09-21 分类于 强化学习 本文字数: 8.3k 阅读时长 ≈ 30 分钟 1.PPO 算法概述1.PPO 的提出背景我们还是以智能体如何控制飞船落地的小游戏为例,智能体的目标是通过一系列操作(如向左移动或向右移动)实现平稳着陆。在训练初期,智能体并不知道应该如何操作,它需要通过反复的试探操作,从环境中不断获得反馈并调整策略,最终掌握一套“高奖励”操作方式。 阅读全文 »