美文网首页Android
寻找 ContentProvider 过程

寻找 ContentProvider 过程

作者: 朱兰婷 | 来源:发表于2021-12-08 17:16 被阅读0次

    前言

    本文代码基于 Android S 。

    概述

    ContentResolver 查找对应 URI 的 ContentProvider 步骤简单概要为:

    1. ContentProvider 的提供方在其 AndroidManifest 中注册 authority;
    2. AMS 缓存各个 userId 对应的 [authority, IContentProvider];
    3. ContentResolver 从 URI 中取出其 authority 并在 AMS 中获取对应的 IContentProvider。

    ContentProvider 提供方注册 authority

    注册 Authority

    AMS 缓存所有 ContentProvider 的 IContentProvider

    AMS 缓存 ContentProvider 主要分为三步:

    1. 开机时缓存所有系统进程中的 ContentProvider;
    2. 解锁后缓存所有正在运行进程的 ContentProvider;
    3. 进程启动后主动向 AMS 发布其 ContentProvider;比如,ContentResolver 中当前查找的 ContentProvider 进程没有启动,AMS 会先启动该进程,并等待该进程发布其 ContentProvider;
    AMS 缓存 ContentProvider

    ContentResolver 通过 URI 中的 authority 查找 AMS 对应的 ContentProvider

    ContentResolver 查找 ContentProvider

    总结

    ContentResolver 寻找正确的 ContentProvider

    原创文章,欢迎转载,但请注明出处。

    相关文章

      网友评论

        本文标题:寻找 ContentProvider 过程

        本文链接:https://www.haomeiwen.com/subject/lafjtrtx.html