Skip to content

鼠标光标刀光闪烁,用水果忍者的方式释放 Chrome 浏览器闲置内存;剑影如风,给你丝滑的浏览体验,再也不怕找不到光标了

Notifications You must be signed in to change notification settings

yehlv/Memory-Ninja

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🥷 Memory Ninja - 内存忍者

用水果忍者的方式释放 Chrome 浏览器内存

一个创新的 Chrome 扩展,将枯燥的内存管理变成有趣的游戏体验。当标签页闲置时,它们会变成水果飞上屏幕,挥动鼠标切割它们,释放内存!

Version Chrome License


✨ 特性

🎮 游戏化内存管理

  • 水果忍者风格:闲置标签页变成水果,挥动鼠标切割释放内存
  • 真实物理引擎:重力、抛物线、旋转动画,完全还原水果忍者体验
  • 华丽视觉效果:果汁飞溅、3D阴影、发光刀光、粒子特效

🚀 智能内存优化

  • 自动监控:每分钟检查闲置标签页(默认 15 分钟无操作视为闲置)
  • 双水果模式:每次抛出 2 个水果,切中任意一个释放对应内存
  • 无限制生成:取消每小时水果数量限制,有闲置标签就生成
  • 内存回收:每切割一个标签页可释放 30-500MB 系统内存

🎨 极致体验

  • 超长刀光轨迹:80 个采样点,0.8 秒淡出,前粗后细渐变效果
  • 智能轨迹采样:快速滑动自动插值,确保丝滑无断点
  • 中心区域抛出:水果从屏幕中央 30%-70% 区域抛出,向中心汇聚
  • 鼠标手势切割:无需点击,快速滑动鼠标即可切割

💾 超低资源占用

  • 智能游戏循环:无水果时自动暂停,CPU < 0.1%
  • Canvas 上下文缓存:避免重复创建,内存占用 < 8MB
  • 自动内存清理:完整的 DOM 清理和引用释放机制

📸 截图

游戏界面

        🍎
            🍊
    ————————————————> (刀光轨迹)
_________________________
   闲置标签页变成水果飞上来!

控制面板

  • 📊 统计数据:已释放标签数、切割成功数、释放内存量
  • ⚙️ 设置选项:启用/禁用监控、自定义闲置阈值
  • 🎮 快捷操作:立即检查、重置统计

🚀 安装

方法 1:从源码安装(推荐)

  1. 克隆仓库

    git clone https://github.com/yehlv/Memory-Ninja.git
    cd Memory-Ninja
  2. 打开 Chrome 扩展页面

    • 访问 chrome://extensions/
    • 开启右上角的「开发者模式」
  3. 加载扩展

    • 点击「加载已解压的扩展程序」
    • 选择项目文件夹
  4. 开始使用

    • 扩展图标会出现在工具栏
    • 打开多个标签页,等待闲置标签变成水果!

方法 2:从 Chrome 网上应用店安装

🚧 即将上线 Chrome Web Store


📖 使用指南

基本使用

  1. 安装后自动监控

    • 插件会自动监控所有标签页
    • 默认 15 分钟无操作的标签页会被标记为闲置
  2. 水果出现

    • 每分钟检查一次闲置标签
    • 闲置标签会变成水果从屏幕底部抛出(每次 2 个)
    • 水果上显示标签页标题和预估内存占用
  3. 切割水果

    • 无需点击,快速滑动鼠标光标即可
    • 切中水果后会分成两半,果汁飞溅
    • 对应的标签页被卸载,内存立即释放
  4. 查看效果

    • 点击工具栏图标打开控制面板
    • 查看已释放的标签数和内存量
    • 被卸载的标签页标题会变灰,点击可恢复

高级设置

自定义闲置阈值

1. 点击扩展图标打开控制面板
2. 找到「闲置阈值」设置
3. 输入 1-1440 分钟之间的数值
4. 点击「应用」按钮

立即检查闲置标签

1. 打开控制面板
2. 点击「立即检查闲置标签」按钮
3. 如果有闲置标签,水果会立即出现

重置统计数据

1. 打开控制面板
2. 点击「重置统计数据」按钮
3. 所有计数器归零

🎮 游戏机制

水果生成规则

  • ✅ 标签页闲置时间 ≥ 设定阈值(默认 15 分钟)
  • ✅ 总标签数 ≥ 5 个
  • ✅ 不包括:当前活动标签、已卸载标签、固定标签
  • ✅ 系统页面(chrome://, edge:// 等)无法生成水果

物理系统

// 真实的物理参数
重力加速度: 0.4 px/frame²
初始上抛速度: -28 px/frame
水平速度: 智能向屏幕中心靠拢
旋转速度: ±5 /frame

轨迹系统

// 刀光轨迹参数
轨迹点数量: 80 
淡出时间: 800ms
采样间隔: 8px
渐变效果: 前粗后细(8px  2px)
透明度: 前深后淡(100%  30%

切割检测

  • 检测半径:80px
  • 速度阈值:0.3 px/ms(防止误触发)
  • 算法:线段与圆形的碰撞检测

🛠️ 技术栈

核心技术

  • Manifest V3:最新的 Chrome 扩展 API
  • Canvas API:高性能轨迹绘制和粒子系统
  • requestAnimationFrame:60fps 游戏循环
  • Chrome Tabs API:标签页监控和卸载

关键算法

  1. 物理引擎:重力、速度、抛物线运动
  2. 碰撞检测:线-圆相交算法
  3. 插值采样:贝塞尔曲线和线性插值
  4. 粒子系统:30 个果汁粒子独立物理模拟

性能优化

  • Canvas 上下文缓存
  • 智能游戏循环(无活动时自动暂停)
  • DOM 元素和引用完全清理
  • 过期轨迹点自动删除

📁 项目结构

Memory-Ninja/
├── manifest.json           # 扩展配置文件
├── background.js           # 后台服务:监控标签页
├── content.js              # 内容脚本:游戏逻辑和物理引擎
├── styles.css              # 样式:水果、特效、动画
├── popup.html              # 控制面板 UI
├── popup.js                # 控制面板逻辑
├── icons/                  # 图标资源
│   ├── icon16.png
│   ├── icon48.png
│   └── icon128.png
└── README.md               # 项目文档

🔧 开发

本地开发

# 1. 克隆仓库
git clone https://github.com/yehlv/Memory-Ninja.git
cd Memory-Ninja

# 2. 在 Chrome 中加载扩展
# chrome://extensions/ → 开发者模式 → 加载已解压的扩展程序

# 3. 修改代码后刷新扩展
# chrome://extensions/ → 点击扩展的刷新按钮

调试技巧

调试 Background Script

// background.js 中查看日志
chrome://extensions/ → 背景页 → 检查视图
console.log('🔍 调试信息');

调试 Content Script

// 在任意网页打开开发者工具
F12  Console
console.log('🎮 游戏逻辑');

快速测试

// 在控制台手动触发检查
chrome.runtime.sendMessage({ action: 'manualCheck' });

自定义配置

修改 content.js 中的配置:

const CONFIG = {
  fruitSize: 150,              // 水果大小
  gravity: 0.4,                // 重力强度
  initialVelocityY: -28,       // 抛出速度
  mouseTrailLength: 80,        // 轨迹长度
  mouseTrailFadeTime: 800,     // 轨迹淡出时间
  // ... 更多配置
};

📊 版本历史

v2.4.2 (2025-01-18) - 当前版本

  • ✨ 超长刀光轨迹(80 点,0.8秒淡出)
  • ⚡ 每次抛出 2 个水果
  • 🎯 水果从中央区域抛出,轨迹向中心汇聚
  • 🔧 默认闲置阈值调整为 15 分钟

v2.4.0 (2025-01-18)

  • ✨ 多水果生成:每次抛出 2 个不同的水果
  • 🎮 智能时间间隔:200-400ms 错开

v2.3.0 (2025-01-18)

  • 🎯 优化水果抛出位置:集中在屏幕中央 30%-70% 区域
  • 🧮 智能水平速度:自动向屏幕中心靠拢

v2.2.0 (2025-01-18)

  • 🚀 移除每小时水果生成限制
  • 💾 内存优化:智能游戏循环、Canvas 缓存
  • 🎨 前粗后细渐变轨迹

v2.1.0 (2025-01-18)

  • ⚡ 提升物理参数:水果飞到屏幕中央以上
  • 🖱️ 鼠标手势切割:无需点击按钮

v2.0.0 (2025-01-18)

  • 🎮 完全重写:真实物理引擎
  • 🍎 150px 大水果(提升 188%)
  • ✨ 水果分裂、果汁飞溅、3D 视觉效果

v1.1.0 (2025-01-17)

  • ⚙️ 自定义闲置阈值设置
  • 📊 增强的日志和调试功能

v1.0.0 (2025-01-17)

  • 🎉 初始版本
  • ✅ 基础的标签页监控和卸载功能

🤝 贡献

欢迎贡献代码、报告问题或提出建议!

报告问题

  • Issues 页面创建新问题
  • 请详细描述问题和重现步骤
  • 附上截图或录屏更佳

提交 PR

  1. Fork 本仓库
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

💡 FAQ

Q: 为什么水果没有出现?

A: 检查以下条件:

  • 总标签数 ≥ 5 个
  • 有标签页闲置时间 ≥ 15 分钟
  • 当前页面不是系统页面(chrome://, edge:// 等)
  • 扩展已启用(点击图标查看控制面板)

Q: 切割水果后标签页去哪了?

A: 标签页被卸载但没有关闭:

  • 标签页标题会变灰色
  • 点击标签页会自动重新加载
  • 可以在 Chrome 历史记录中找到

Q: 会影响浏览器性能吗?

A: 不会!

  • 无水果时 CPU < 0.1%
  • 内存占用 < 8MB
  • 智能游戏循环自动暂停

Q: 可以恢复被卸载的标签页吗?

A: 可以!

  • 方法 1:直接点击被卸载的标签页
  • 方法 2:使用 Chrome 历史记录恢复

Q: 支持其他浏览器吗?

A: 目前仅支持 Chrome 和基于 Chromium 的浏览器(Edge, Brave 等)

Q: 能释放系统内存吗?

A: 能!

  • 卸载标签页会释放 Chrome 占用的系统内存
  • 每个标签页可释放 30-500MB
  • 操作系统会立即回收这些内存
  • 其他应用程序可以使用释放的内存

🔮 未来计划

  • 添加音效(切割声、成功声)
  • 成就系统(连击、完美切割等)
  • 自定义主题和水果皮肤
  • 一键释放所有闲置标签
  • 白名单功能(永不释放特定网站)
  • 自动清理浏览器缓存
  • Chrome 应用商店发布

📄 开源协议

本项目采用 MIT License 开源协议。


🙏 致谢

  • 灵感来源:Fruit Ninja 经典游戏
  • 感谢所有贡献者和用户的支持

📧 联系方式

  • 项目主页:GitHub
  • 问题反馈:Issues
  • 作者:Memory Ninja Team

☕ 支持作者

如果这个项目对你有帮助,欢迎请作者喝杯咖啡 ☕

微信赞赏码 | 支付宝收款码

微信赞赏码      支付宝收款码

扫码支持开发者

如果觉得有用,也请给个 ⭐ Star 支持一下!


🥷 释放内存,就像忍者一样!

Made with ❤️ by Memory Ninja Team

⬆ 回到顶部

About

鼠标光标刀光闪烁,用水果忍者的方式释放 Chrome 浏览器闲置内存;剑影如风,给你丝滑的浏览体验,再也不怕找不到光标了

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published