Android ContentProvider如何在内部工作

Android ContentProvider如何在内部工作,android,android-contentprovider,Android,Android Contentprovider,各位,我在看android源代码。但我找不到对我有价值的东西。实际上,我想知道ContentProvider是否像AIDL一样工作。你知道,AIDL可以实现两个独立应用程序之间的通信 所以,我只想看看ContentProvider如何在内部工作。来自ContentProvider 内容提供商是Android的主要构建模块之一 应用程序,为应用程序提供内容。它们封装数据 并通过单个ContentResolver将其提供给应用程序 接口。仅当您需要共享时才需要内容提供商 多个应用程序之间的数据。例如

各位,我在看android源代码。但我找不到对我有价值的东西。实际上,我想知道
ContentProvider
是否像
AIDL
一样工作。你知道,
AIDL
可以实现两个独立应用程序之间的通信

所以,我只想看看
ContentProvider
如何在内部工作。

来自ContentProvider

内容提供商是Android的主要构建模块之一 应用程序,为应用程序提供内容。它们封装数据 并通过单个ContentResolver将其提供给应用程序 接口。仅当您需要共享时才需要内容提供商 多个应用程序之间的数据。例如,联系人数据是 由多个应用程序使用,并且必须存储在内容中 供应商。如果您不需要在多个用户之间共享数据 可以通过直接使用数据库的应用程序 android.database.sqlite.SQLiteDatabase


根据这一点以及我发给你的链接中的信息,ContentProvider没有使用AIDL。。。它正在使用ContentResolver接口。

内容提供商在内部使用IPC绑定。“事实上,intent和ContentProvider只是Binder的一个更高层次的抽象”

这可能会有帮助哦,谢谢你的回复..是的,它说ContentProvider是基于AIDL的,这对我很有用!如果答案能在源代码中更多地解释ContentProvider如何在内部工作,那就更好了。无论如何,非常感谢!据我所知,恰恰相反。嗨,Liorry。谢谢你的回复。我同意你的说法,ContentProvider正在使用ContentResolver接口。但是它是如何实现将数据公开给其他应用程序的呢?根据这个[链接](stackoverflow.com/a/8591438/444324),我认为这是AIDL。但我不太确定。你觉得怎么样?@user1727934与AIDL不同,contentProvider不允许应用程序之间的通信。它只允许数据共享。我认为它的基础与您共享共享引用的方式相同(Activity.MODE\u WORLD\u可读/写)。它只是一个标志,告诉系统您允许公共访问此文件/SQL db。和安卓一样,安卓本身也会显示联系人、书签等。。。他们使用内容提供者。