哪种数据库适合替换安卓通讯录中的数据存储?
- 内容介绍
- 文章标签
- 相关推荐
从使用者痛点来看,为什么现有的通讯录存储方案让人抓狂?其实,
在实际项目中。开发者经常遇到以下难题:
- 数据结构不清晰程序级 SQLite 数据库内部表众多,关联关系错综复杂。
- 备份与迁移困难缺乏统一的导出/导入接口,跨设备同步经常出错。
- 权限与安全限制读写 contacts2.db 需要特殊权限,导致调试成本高。
- 性能瓶颈大量增删改操作时原生 ContentProvider 的封装层会带来额外开销。
Android 通讯录的数据存储位置一览
程序将联系人信息统一托管在以下方法:
/data/data/com.android.providers.contacts/databases/contacts2.db
从其中主要包含来看,
- contacts聚合后的联系人视图。
- raw_contacts每个账号对应的一条原始记录。
- data实际的字段值,通过 mime_type 区分不同数据类型。
- call_log 通话记录,一样位于 contacts2.db 中。怎么说呢,
- sms 短信存放在 /data/data/com.android.providers.telephony/databases/mmssms.db 的 sms 表中。
从使用者痛点来看,为什么现有的通讯录存储方案让人抓狂?其实,
在实际项目中。开发者经常遇到以下难题:
- 数据结构不清晰程序级 SQLite 数据库内部表众多,关联关系错综复杂。
- 备份与迁移困难缺乏统一的导出/导入接口,跨设备同步经常出错。
- 权限与安全限制读写 contacts2.db 需要特殊权限,导致调试成本高。
- 性能瓶颈大量增删改操作时原生 ContentProvider 的封装层会带来额外开销。
Android 通讯录的数据存储位置一览
程序将联系人信息统一托管在以下方法:
/data/data/com.android.providers.contacts/databases/contacts2.db
从其中主要包含来看,
- contacts聚合后的联系人视图。
- raw_contacts每个账号对应的一条原始记录。
- data实际的字段值,通过 mime_type 区分不同数据类型。
- call_log 通话记录,一样位于 contacts2.db 中。怎么说呢,
- sms 短信存放在 /data/data/com.android.providers.telephony/databases/mmssms.db 的 sms 表中。

