190 字
1 分钟
通讯录性能战:contacts 双库与工具层封装

为什么两个通讯录库#

contacts_service_plus: 0.0.2
fast_contacts: 5.0.1

fast_contacts 名字就写明用途:快。系统通讯录几千条时,常规读取(带头像、带全字段)能卡出 ANR;fast 版只取必要字段做列表,详情页再按需补全。contacts_service_plus 兜底写操作。读用快的,写用全的

统一收口 contacts_utils#

lib/utils/contacts_utils.dart # 唯一出口:权限、读取、搜索、格式化
lib/pages/contacts_page.dart # 通讯录页面
lib/kit_root/logics/root_tab4_logic.dart # Tab4 业务调用

业务方(Tab4)不直调插件,全走 contacts_utils:权限申请(permission_handler)、拼音搜索、脱敏展示,一处封装。插件升级只改 utils,页面不动。

通讯录三坑:权限被拒、大数据量卡顿、隐私合规(读通讯录必须在隐私政策里写用途,上架现在严查)。