ContentProvider
的底层是采用Android中的Binder机制,既然已经有了binder实现了进程间通信了为什么还会需要contentProvider?
安卓的内容提供者底层用binder实现,binder已经实现了进程间通信,为啥还需要内容提供者?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
- 江上小渔民 2023-01-28 23:02关注
原因:主要是效率问题,传输大量数据的时候使用binder来完成会非常低效,而以binder为底层的ContentProvider能做的更加高效。
解释:ContentProvider是基于binder和匿名共享内存来实现的。首先把需要在进程间传输的数据都写到共享内存中去,然后只通过Binder进程间通信机制来传输一个共享内存的打开文件描述符给对方,对方拿到打开文件描述符就可以对共享内存的数据进行读写。
PS:就相当于我要和你沟通,想告诉你非常非常多的话,如果通过邮差一个字一个字地转给你就太低效了,我把要告诉你的内容写成一本书放在某个地方,邮差他只要告诉你书的位置就可以了。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 Macbookpro 连接热点正常上网,连接不了Wi-Fi。
- ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
- ¥15 linux驱动,linux应用,多线程
- ¥20 我要一个分身加定位两个功能的安卓app
- ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
- ¥15 IAR程序莫名变量多重定义
- ¥15 (标签-UDP|关键词-client)
- ¥15 关于库卡officelite无法与虚拟机通讯的问题
- ¥15 目标检测项目无法读取视频
- ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析