当前位置: 首页 > news >正文

【Android知识笔记】FrameWork中的设计模式

一、FrameWork中有哪些设计巧妙之处

例如:

  • Binder调用,模糊进程边界: 屏蔽跨进程IPC通信的细节,让开发者把精力放在业务上面,无需关心进程之间的通信。
  • Bitmap大图传输,高性能: 只传递Binder句柄,到目标进程后做内存映射,不用做大量数据拷贝,速度非常快。
  • Zygote创建进程,资源共享: Zygote预加载一些进程资源,在创建新进程后,新的进程直接继承这些资源,比较快,省事。
  • Intent解耦,模糊进程: 应用只需表达意图,无需关心目标在哪个进程,由AMS来解析Intent,比如广播,可能接受者是在同一个进程内,也可能是在不同进程内,但是应用发起端无需care。
  • Handler消息循环机制:既可以满足应用的开发需求,也能为系统的使用开绿灯(屏障消息),还能处理应用死锁如ANR之类。

在这里插入图片描述

binder实体对象在经过binder驱动之后会自动转换为binder代理对象,而binder代理对象在经过binder驱动之后又会自动还原为binder实体对象,到了应用层拿到的永远是接口引用对象。

http://www.lryc.cn/news/175774.html

相关文章:

  • 机器学习西瓜书+南瓜书吃瓜教程第三章学习笔记
  • JUnit5单元测试提示“Not tests were found”错误
  • C++ -- IO流
  • uniapp:如何修改组件默认样式
  • Lombok @Accessors(chain = true) 导致 FastJson parsObject()对父类属性失效
  • Aztec交易架构解析
  • 商品秒杀系统整理
  • C语言实现八种功能的通讯录(添加、删除、查找、修改、显示、排序、退出、清空)
  • 视频监控/视频汇聚/安防视频监控平台EasyCVR配置集群后有一台显示离线是什么原因?
  • 【RabbitMQ实战】02 生产者和消费者示例
  • Linux下ThinkPHP5实现定时器任务 - 结合crontab
  • 3dsmax模型烘焙光照贴图并导入unity流程详解
  • 安卓生成公钥和md5签名
  • pwndbg安装(gdb插件)
  • SpringBoot 学习(二)配置
  • 西门子828d授权密钥破解经验分享 I7I54833762
  • 06贪心:跳跃游戏
  • 鄙视测试,理解测试,成为测试
  • MySQL数据库基础知识要点总结
  • 基础运维(一)YUM仓库
  • 递归算法讲解,深度理解递归
  • 网络通信(套接字通信)(C/C++)
  • anaconda navigator启动时一直卡在 loading applications 页面
  • 力扣刷题-链表-删除链表的倒数第N个节点
  • Blender DreamUV插件使用简明教程
  • AI在线工具分享
  • Matlab批量处理测试数据的方法:以VCO的调谐测试曲线处理为例
  • VScode断点调试vue
  • 20吨屠宰鸡鸭鹅一体化污水处理设备加工厂家
  • android被杀以后fragments缓存重建问题和测试方法