博客遭遇 CDN 供应链投毒攻击:排查与修复全记录
2025-12-22最近发现博客在手机上浏览时会自动跳转到第三方诈骗网站,经过排查发现是使用的 CDN 遭受了供应链投毒攻击。本文记录整个排查和修复过程。 问题现象 手机浏览博客时,页面会自动跳转到诈骗网站 主要影响移动端用户 PC 端偶尔也会出现跳转 问题根因 cdn.staticfile.net 供应链攻击 经过排...
Signals.dart使用介绍
2025-10-14本文旨在为 Dart 和 Flutter 开发者提供 Signals.dart 框架的全面介绍。Signals.dart 借鉴了现代前端响应式系统(如 SolidJS 或 Vue 3)的核心理念,提供了一种基于 Pull-Based(拉取式) 架构的、高效且极简的状态管理方案。 文档重点阐述了框架的...
Android Flutter 插件第三方 aar 库依赖方式对比分析
2025-09-29背景说明 在开发 Flutter 插件时,我们经常需要集成第三方 Android 库。然而,将本地 AAR 文件直接添加到 Flutter 插件模块中,是无法自动将 AAR 的依赖关系和内容正确传递给宿主 App 的。 尤其需要注意的是: AGP 7.0+ 的明确限制:Android Gradle ...
Git Merge+Revert 与 Reset+Cherry-pick 对比
2025-05-17日常使用 git 开发管理分支非常方便,但是偶尔也会出现一些问题,比如这次就遇到了回滚合并导致后续合并丢失部分内容这样的情况,本文介绍一下如何处理这种情况,分析事故原因。 Merge+Revert 方案在复杂合并和回滚时容易引入副作用,可能导致部分内容被意外撤销;而 Reset+Cherry-pic...
Android 架构模式一览
2023-12-15Android 的架构依次有: MVC MVP MVVM MVI Clean Architecture 上述架构循序渐进,当前主流设计模式是 MVVM,MVI 和 Clean Architecture,这三者的着重点各有不同,可以根据项目规模大小递进选择。 [图片] MVC MVC,Model-Vi...
Flutter 动画分析之 CustomPaint
2022-08-29本文讨论的 Flutter 动画主要限定在:随着每一帧的变化,修改 Flutter Widget 的大小、颜色、位置等属性,使之看起来从一种状态渐变为另外一种状态 这一范围。 根据之前的分析,关于 Flutter 中的 Widget 动画,大体可以分为三大类: 隐式动画,以 ImplicitlyAn...
本文讨论的 Flutter 动画主要限定在:随着每一帧的变化,修改 Flutter Widget 的大小、颜色、位置等属性,使之看起来从一种状态渐变为另外一种状态 这一范围。 在之前的文章中,我们将 Flutter 中动画的实现分为 底层实现 和 封装好的 Widget 两大部分,目前已经分析了底层...
Flutter 动画分析之 AnimationController
2022-08-21本文讨论的 Flutter 动画主要限定在:随着每一帧的变化,修改 Flutter Widget 的大小、颜色、位置等属性,使之看起来从一种状态渐变为另外一种状态 这一范围。 Flutter 中关于动画的类有很多,为了便于分析,将其分为两大类: Flutter 框架底层实现动画的各个类,比如 Ani...
Flutter 动画分析之 Tween&Curve
2022-08-21在上篇文章中,我们分析了 Flutter 中主要由AnimationController控制动画的开始、结束,但是默认情况下其只能产生线性变化的 double 类型的 value,如果想随时间变化,让 Widget 产生 Size、Offset 等属性的变化,亦或者控制这些值变化的速度快慢,这时候就...
Flutter 动画分析之 Hero
2022-08-14Flutter 中的 Hero 动画是指可以在切换页面时自动跨页面实现 Widget 放大缩小、位移的动画,在用户看起来好像是当前页面的 Widget“飞”入到另外一个页面,底层基于 Overlay 实现。 本文对其原理和应用做一简单分析,主要是对官方介绍的理解与分析,感兴趣的可以直接阅读官方文档。...
Flutter 图片加载方案分析之 power_image
2022-08-02Flutter 默认提供了Image用于从网络、文件等加载图片,并且使用ImageCache统一管理图片缓存,但有时候并不能满足使用需求(比如网络图片没有磁盘缓存,导致每次 ImageCache 清除缓存之后又要从网络下载),所以又出现了fluttercachednetworkimage、exten...
Flutter 图片加载方案分析之 extended_image
2022-08-01Flutter 默认提供了Image用于从网络、文件等加载图片,并且使用ImageCache统一管理图片缓存,但有时候并不能满足使用需求(比如网络图片没有磁盘缓存,导致每次 ImageCache 清除缓存之后又要从网络下载),所以又出现了fluttercachednetworkimage、exten...
Flutter 图片加载方案分析之 Image
2022-07-27Flutter 默认提供了Image用于从网络、文件等加载图片,并且使用ImageCache统一管理图片缓存,但有时候并不能满足使用需求(比如网络图片没有磁盘缓存,导致每次 ImageCache 清除缓存之后又要从网络下载),所以又出现了fluttercachednetworkimage、exten...
Flutter 滑动分析之 NestedScrollView
2022-07-19Flutter 中的 scrollable widget 根据实现方式的不同,可以分为两大类: 基于 RenderBox 的 box protocol 实现的,主要基于 Size 实现布局。常见的有SingleChildScrollView。 基于 RenderSliver 的 sliver pro...
Flutter 滑动分析之 Scrollview
2022-07-16Flutter 中的 scrollable widget 根据实现方式的不同,可以分为两大类: 基于 RenderBox 的 box protocol 实现的,主要基于 Size 实现布局。常见的有 SingleChildScrollView。 基于 RenderSliver 的 sliver pr...
Flutter 滑动分析之 SingleChildScrollView
2022-07-15Flutter 中的 scrollable widget 根据实现方式的不同,可以分为两大类: 基于 RenderBox 的 box protocol 实现的,主要基于 Size 实现布局。常见的有 SingleChildScrollView。 基于 RenderSliver 的 sliver pr...
Flutter APP 绘制过程简析
2022-06-25本文基于 Flutter 3.0 Flutter App 基于 Dart 语言编写,提供了一套简单易用的 API,可以让开发者在 Flutter 中快速开发出一个精美的 APP。那么在 Flutter 中是如何绘制一个 APP 呢,runApp 是怎么将我们编写的 Widget 等添加到手机上的呢?...
Dart event loop
2022-06-11本文基于 Dart 2.17 Dart App 中所有的代码都在一个 isolate 中运行(各个 isolate 之间的代码运行时是隔离的),一个 isolate 有自己的 heap,维持有一个消息队列 eventloop,处理两种消息: 1. 执行用户点击、屏幕刷新、绘制,一般的 Future、...
Dart 读取文件过程分析
2022-06-02Dart 读取文件时,先在 Dart 代码创建 File 引用,通过与跨通信(先通过 IO Service 而发送请求到 native 端,等到 native 执行完操作之后再回调结果)从而实现对文件的读写。 实现一个简单的读取文件的代码如下: 整个过程如下: [图片] 过程分析 Dart 端发起文...
Dart VM
2022-06-02本文是对 Dart 官方 VM 的介绍的总结摘要,推荐直接阅读官方原文。 Dart VM is a collection of components for executing Dart code natively. Notably, it includes the following: Runti...