- Published on
【开源项目】Photo Saver:一个在保存时分类图片的安卓应用
- Authors

- Name
- E2hang
- https://info.huajishe.fun/
一、项目背景
试想这样一个情景:当你和朋友聊的正欢,打开相册想找一个很切合聊天内容的表情包时,发现自己很早之前保存的表情包早已不知去了哪里。去相册里翻之前保存的照片?还是想想这个照片是从哪里保存的?无论哪种方式,照片都很难在短时间内被找到。这样,一个很合适的使用表情包的机会就会被一略而过。其实不仅仅是表情包,很多未被分类的照片都难以在短时间内找到。既然如此,那么我们为何不寻找一种能够让我们随时随地对保存/拍摄的图片进行分类的方法呢?
经过我的观察,很多同龄人并没有随手整理相册的习惯,这就导致了很多曾经保存过的照片无法得到及时的分类,以至于在想用的时候找不到。其实仔细想一下,分类图像的时机只有两个,一个是在保存的时候,另一个是在保存之后的某个时间点。在保存之后的某个时间点进行分类,对于大部分人来讲都并非轻松,成百上千张的照片让人们无法在短时间内有效分类完全,同时分类的效率低下,还有错误(如手滑或没看见等失误)分类的问题,现在主流的方式是通过AI进行分类,但是这样有一些弊端,如隐私泄露、分类不完全、错误分类等严重问题。结合亲身感受,我在这里推出Photo Saver -- 一个在保存时分类图片的安卓应用。
二、项目介绍
Photo Saver是一款专为 Android 平台设计的轻量化开源应用,核心定位是在图片被保存到手机的瞬间,完成人工可控、精准、无隐私风险的分类归档,从源头解决相册杂乱、查找困难、后期整理成本高的痛点。
与传统相册管理软件 “先保存、后整理” 的逻辑不同,本应用采用 “保存即分类”的核心流程:当用户通过社交软件、浏览器、截图、相机等渠道获取图片并触发保存行为时,Photo Saver 会以轻量弹窗、快捷浮窗或系统分享入口的形式介入,让用户在1-3秒内 完成图片归类,无需退出当前使用场景,也不打断正常操作流程。
应用本身不依赖云端 AI 分析、不上传任何图片数据,所有分类规则、存储路径、相册文件夹均由用户本地自定义,从根本上杜绝隐私泄露风险。同时,它支持预设常用分类(如表情包、工作资料、截图、证件照、生活随拍等),用户可自由增删改分类名称、目标存储目录,也可针对不同应用(微信、QQ、小红书、抖音等)设置自动关联分类,进一步减少重复操作。
简单来说,Photo Saver 做的不是 “帮你整理相册”,而是让你的相册从一开始就不会变乱,用最低的操作成本,实现最高效、最安全、最贴合个人使用习惯的图片管理方式。
三、项目目标
(一)即时分类触发机制
Photo Saver 支持多场景触发分类流程,覆盖用户获取图片的全场景,确保 “保存即分类” 不遗漏:
- 系统保存拦截:通过监听 Android 系统的媒体存储广播(MediaStore.ACTION_IMAGE_CAPTURE、ACTION_MEDIA_SCANNER_SCAN_FILE),当图片被保存到默认相册时,自动弹出极简分类弹窗,用户选择分类后直接移动文件至对应目录,避免默认相册堆积冗余图片;
- 应用分享入口:集成系统分享框架,用户在微信、浏览器等应用中长按图片选择 “分享” 时,可直接选择 “Photo Saver 分类保存”,跳过默认保存步骤,一步完成分类归档; 快捷浮窗触发:支持开启悬浮窗功能,用户截图、下载图片后,浮窗自动提示 “分类保存”,点击即可快速选择分类,无需等待系统广播响应,操作更高效;
- 相机直拍分类:关联系统相机及第三方相机应用,用户拍摄照片后,可通过应用内预设的 “拍摄后自动弹窗” 功能,即时对照片进行分类,适合旅行、工作等需要快速归档拍摄素材的场景。
(二)灵活分类管理体系
分类体系完全由用户自定义,兼顾通用性与个性化需求:
- 多级分类支持:支持创建一级分类(如 “工作”“生活”)和二级子分类(如 “工作 - 方案文档”“生活 - 旅行照片”),最多支持 3 级分类嵌套,满足复杂分类场景;
- 分类属性自定义:每个分类可设置独立属性,包括目标存储路径(支持自定义文件夹位置,如手机内置存储、SD 卡指定目录)、分类图标(内置 10 + 图标样式,也可自定义图片作为图标)、是否允许自动关联应用;
- 应用自动关联:用户可设置 “应用 - 分类” 关联规则,例如指定 “微信下载的图片自动归入表情包分类”“小红书保存的图片自动归入穿搭灵感分类”,关联后无需手动选择,系统自动完成分类,进一步降低操作成本;
- 分类批量管理:支持分类的批量增删、排序、重命名,以及分类数据的导出 / 导入(以 JSON 格式存储本地),方便用户备份分类规则或迁移至新设备。
(三)本地隐私安全保障
隐私保护是应用核心设计原则,所有功能均围绕 “本地处理、数据不外流” 展开:
- 全本地数据存储:分类规则、关联配置、文件路径等所有数据均存储在手机本地(/data/data/包名/files/ 目录),不涉及任何云端上传、同步操作,图片文件直接存储在用户指定的本地目录,应用仅获取文件读写权限,无网络权限,从根源杜绝隐私泄露;
- 文件无损迁移:分类过程中采用文件移动(File.renameTo())而非复制模式,避免占用双倍存储空间,且不修改图片原始格式、分辨率、EXIF 信息,确保图片质量无损; 权限最小化设计:仅申请 “文件读写权限”“悬浮窗权限”“媒体库访问权限”,无通讯录、定位、相机等无关权限,减少隐私泄露风险;
- 分类加密可选:支持对敏感分类(如证件照、财务票据)设置密码保护,需输入密码才能查看该分类下的图片,进一步保障隐私安全。
(四)相册整理辅助功能
除了源头分类,应用还提供轻量整理工具,帮助用户处理历史未分类图片:
- 批量分类工具:用户可选择指定文件夹(如默认相册),应用按图片拍摄时间、文件大小等维度排序,支持手动批量勾选图片并分配分类,快速整理历史素材;
- 重复图片检测:本地扫描重复图片(基于文件 MD5 值比对),提示用户删除冗余文件,节省存储空间;
- 分类统计可视化:通过图表展示各分类下的图片数量、占用存储空间,帮助用户了解图片存储结构,优化分类体系。
四、实现难点
- 保存劫持:Root后易实现,未Root手机实现困难。现在的策略是:将要保存的图片分享到PhotoShareAPP,然后通过APP选择保存地址
- 部分APP不支持分享图片,如哔哩哔哩,加入分享模块依旧需要Root并且安装相应的XPosed模块
对于上述问题有解决方法,或者对此感兴趣、想讨论相关问题,请联系huajishe@gmail.com
五、发布页面
Release: https://huajishe.fun/git/e2hang/HuajisheTools/releases/
阅读发布描述,根据手机处理器选择,下载相应的安装包。(绝大部分都是arm64的)