provider 内容提供者 应用间共享数据的出口
provider 是应用把内部数据"开放"给外部的那个
ContentProvider(简称 provider)是 Android 四大组件中最不常见、最不"烦人"的那类——它的作用是把应用内部的数据(数据库、文件、配置等)以标准化的接口暴露给其他应用。
典型的 provider 使用场景:
- 通讯录应用把联系人数据开放给短信应用读取
- 文件管理器通过 provider 让别的应用能访问它索引的文件
- 日历应用把日程数据开放给桌面小组件读取
- 输入法把词库数据开放给编辑器
关掉 provider 会怎样
效果很直接:其他应用读不到这个应用开放的数据了。影响通常不大,只有当你依赖某个跨应用数据共享功能时才会出问题。
和 activity、service、receiver 不同,provider 不是"耗电大户"也不是"广告入口"——它主要负责数据读写,不主动启动后台任务。所以大多数情况下 provider 是可以放心关掉的,除非你确定某个功能依赖它。
怎么辨认 provider
在 Blocker 里进应用详情,切到 provider tab。provider 的数量通常比其他三类少得多,名字也比较好认——常含 Provider、Provider2 后缀。
关掉前想想:你有没有在用这个应用和别的应用的数据互通?比如某个文件管理器和云盘应用之间的联动、某输入法的云同步词库。如果没有,直接关就行。
Provider 为什么值得关注
虽然 provider 不是耗电元凶,但恶意应用也可能通过 provider 读取你的敏感数据——比如通讯录、短信、位置信息。Bloker 列出所有 provider 后,你可以看到哪些应用开放了什么数据接口,对可疑的直接关掉,等于在数据共享层面加了一道墙。