ContentProvider所提供的接口中只有query是基于共享内存的,其他都是直接使用bind

  • Android早期(2.2之前)所有操作都通过Binder
  • 随着数据量增长,发现Query性能瓶颈明显
  • 从Android 2.3开始,Cursor数据通过共享内存传输

这种设计体现了按需优化的思想:

  1. 80/20原则:优化最常见的大数据传输场景(Query)
  2. 简单性原则:小数据保持简单直接的Binder传输
  3. 性能平衡:在复杂性和性能间取得最佳平衡

这也是为什么在Android开发中,建议合理设计Query,避免返回过多不必要的数据,因为这个优化机制虽然在传输上高效,但创建和管理共享内存区域本身也有成本。

#Android#
全部评论

相关推荐

游戏客户端劝退第n人...:已经有她力量举报了,还被隔壁班盒出来是谁了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务