一款 100% 纯离线、基于 Kotlin + Jetpack Compose + Room 的本地账号密码管理 APP。
- 🔐 纯本地存储:Room 数据库,数据永不离开手机,无任何网络权限
- 🤖 Autofill 自动填充服务:系统级自动填充,在任意 App/网页登录框直接弹出账号气泡
- 🎯 精准匹配:支持“关联应用”绑定包名 + 网页域名清洗匹配(
http(s)://、www.、端口、路径自动剔除),只展示当前页面匹配的账号 - 🔑 指纹 / 锁屏密码解锁填充:开启隐私保护后,点击气泡需先通过系统级生物识别或锁屏验证(官方标准
BiometricPrompt) - 💾 自动保存与改密覆盖:登录新账号自动建卡;账号相同但密码改变时自动覆盖更新,完全相同则去重跳过
- 📎 关联应用:编辑账号时可为卡片绑定已安装 App(图标 + 名称 + 包名搜索),填充时精准置顶
- 🔍 实时搜索:按自定义名称实时过滤账号
- 📝 动态扩展栏:每条记录支持自定义键值对(邮箱、恢复码等)
- 📥 智能批量导入:
- 剪贴板导入 / TXT 文件导入
- 分号(
;)分隔格式智能解析 - 关键字优先匹配(
账号:/密码:等),防止密码含@误判 - 未识别内容自动收集 + 一键复制反馈
- 📤 批量导出 TXT:批量管理模式下一键导出所选账号(UTF-8,多行格式,含全角分号分隔符)
- 🔀 多模式排序:按最新修改时间 / 按名称 A-Z(持久化记忆)
- 🗂️ 批量管理:多选、全选、批量删除(带确认弹窗)
- 🧲 可拖动悬浮按钮:FAB 支持全屏自由拖动且防越界
- 👁️ 隐私保护:系统级生物识别 / 锁屏密码验证(
BiometricPrompt),冷启动与后台切回自动锁定 - ⚡ 性能优化:R8 + 资源压缩(APK 仅 ~2.6MB)、LazyColumn 硬件加速、高刷新率(90/120Hz)适配
| 组件 | 说明 |
|---|---|
| Kotlin | 100% Kotlin |
| Jetpack Compose | Material Design 3 现代化 UI |
| Room | 本地数据库(fallbackToDestructiveMigration) |
| MVVM | ViewModel + Repository + StateFlow |
| Coroutines | 全部 IO 操作后台异步 |
| Biometric | 系统级指纹 / 人脸 / 锁屏密码 |
# Debug 构建
./gradlew assembleDebug
# Release 构建(R8 优化 + 资源压缩)
./gradlew assembleReleaseAPK 输出路径:app/build/outputs/apk/release/app-release.apk
- Android 8.0 (API 26) 及以上
- 完全离线运行,无需任何网络
本项目基于 MIT License 开源。
- 应用本身不联网、无任何网络权限,数据仅保存在本地 SQLite 数据库中
- 隐私保护开关启用后,每次冷启动/后台切回需要系统级生物识别验证
- Autofill 填充同样受隐私保护控制:开启后点击气泡会先要求指纹/锁屏验证,验证通过才填入
- 请定期备份数据库文件(
/data/data/com.example.passwordmanager/databases/password_manager_database)