安卓的内容提供者底层用binder实现,binder已经实现了进程间通信,为啥还需要内容提供者?

ContentProvider的底层是采用Android中的Binder机制,既然已经有了binder实现了进程间通信了为什么还会需要contentProvider?

原因:主要是效率问题,传输大量数据的时候使用binder来完成会非常低效,而以binder为底层的ContentProvider能做的更加高效。

解释:ContentProvider是基于binder和匿名共享内存来实现的。首先把需要在进程间传输的数据都写到共享内存中去,然后只通过Binder进程间通信机制来传输一个共享内存的打开文件描述符给对方,对方拿到打开文件描述符就可以对共享内存的数据进行读写。

PS:就相当于我要和你沟通,想告诉你非常非常多的话,如果通过邮差一个字一个字地转给你就太低效了,我把要告诉你的内容写成一本书放在某个地方,邮差他只要告诉你书的位置就可以了。

需要更方便使用,可以理解成基础库,和多态库

可以理解为基础工具和库,安卓底层那些都是学过的,但这些库做了更好的封装与实现,便利了开发者,同时避免了大量重复造轮子的过程。

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^