1. 项目概述:一个纯安卓的SQLite记事本应用
去年接手公司内部工具开发时,我注意到很多同事还在用系统自带的记事本记录工作事项。这种纯文本记录方式最大的痛点就是无法分类检索,重要信息经常淹没在历史记录中。于是我用Android Studio开发了一个基于SQLite的本地备忘录应用,核心解决三个问题:
- 完全离线运行(避免敏感数据上传云端)
- 支持富文本格式(比系统记事本更强的排版能力)
- 实现多维度检索(按日期/标签/关键词过滤)
这个项目的特殊之处在于:虽然市面上有无数记事本应用,但大多数要么功能过剩(集成云同步、协作编辑等复杂功能),要么就是简单的文本编辑器。我们需要的其实是一个折中方案——比系统记事本强,比Evernote这类专业工具轻量。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 为什么选择SQLite
在数据存储方案选型时,我对比了三种主流方案:
| 方案 | 写入速度 | 查询复杂度 | 存储容量 | 适用场景 |
|---|---|---|---|---|
| SharedPrefs | 快 | 仅键值查询 | <1MB | 简单配置项 |
| 文件存储 | 中等 | 需自行解析 | 无限制 | 大体积非结构化数据 |
| SQLite | 中等 | 支持SQL | GB级 | 结构化数据 |
记事本应用的核心数据是文字内容+元信息(创建时间、标签等),属于典型的结构化数据,且需要以下操作:
- 按日期范围查询(
BETWEEN语句) - 标签过滤(
LIKE或JOIN操作) - 关键词搜索(
FTS虚拟表)
这些需求只有SQLite能完美满足。虽然Room等ORM框架更现代,但考虑到这是一个演示原生SQLite使用的项目,我决定直接使用SQLiteOpenHelper。
2.2 数据库表设计
核心表结构如下(简化版):
sql复制CREATE TABLE notes (
_id INTEGER PRIMARY KE
