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

微信小程序哪里找网站过度优化

微信小程序哪里找,网站过度优化,门头广告设计软件,图片手机网站模板目录 前言 一、Android 进程间通信方式 二、Binder架构图 三、Binder涉及角色 3.1 Binder驱动 3.2 Binder实体 3.3 Binder引用 3.4 远程服务 3.5 ServiceManager守护进程 四、涉及源码 前言 这是本人第N次看Binder 相关知识了#xff0c;其实每次看都有新的收获其实每次看都有新的收获终于下决心做个专题整理由于个人系统知识面欠缺加上Binder本身就错综复杂如有什么不对或者纰漏欢迎一起讨论指出。 一、Android 进程间通信方式 1. 使用Bundle实现序列化Parcel接口底层基于Binder机制 2. 使用文件共享 前提是多个进程都具备操作文件的读写权限 3. 使用Messenger 底层基于Binder机制 4. 使用AIDL底层基于Binder机制不同于Messenger除了数据传输, 还有RPC 能力; 5. 使用ContentProvider可以通过标准接口来操作跨进程数据包括增、删、改、查等 6. 使用SocketLinux中也常用的 对于大部分开发者来说一个矛盾体尤其是对于想在Android中想更上一层楼的小伙们来说这个IPC是既爱又恨爱的是它极大方便了我们的开发恨的是它为啥那么复杂而又繁琐呢但是又不得不学好Binder因为它是迈向Android高阶开发的必经之路。 当然AOSP 一直在迭代, 从Android 8.0 开始Binder机制被拆分成了Binder(System分区 进程间通信)、HwBinder(支持System/Vendor分区进程间通信)、VndBinder(Vendor分区进程间通信)。目前我们还是重点关注Binder部分其他的后续再补充。   借用gityuan之前总结一句话: 无Binder不Android。 二、Binder架构图 Binder通信采用传统的C/S架构清晰明朗Server端与Client端相对独立稳定性较好。 Binder架构中设计4类角色Binder驱动ServiceManager(后续简称SMgr)Server和Client。其中ServerClientSMgr运行于用户空间驱动运行于内核空间 --架构图引用gityuan  Binder机制的实现具有两层含义 (1)IPC(Inter-Process Communication)即实现进程间通信。 (2)RPC(Remote Procedure Call),是一种远程过程调用手段 在上图中Binder框架中也实现了如上两层调用 1) Client先和Server先建立进程间IPC通信 2) Client在和Server建立IPC通信之后就能如果实现本地服务一样通过RPC调用使用远端Server 这四个角色的关系和互联网非常类似Server是服务器Client是客户终端SMgr是域名服务器DNS驱动是路由器。其中四者之间关系有点类似下面的网络关系图 参考一次HTTPS请求的过程 三、Binder涉及角色 3.1 Binder驱动 Binder 驱动就如同路由器(DNS)一样是整个通信的核心Binder驱动是Android专用的但底层的驱动架构与Linux驱动一样。binder 驱动在以misc设备进行注册作为虚拟字符设备没有直接操作硬件只是对设备内存的处理。该驱动负责进程之间 Binder 通信的建立数据在各进程之间的传递Binder 引用计数管理数据包在进程之间的传递和交互等一系列底层支持。 3.2 Binder实体 Binder实体是各个Server以及ServiceManager在内核中的存在形式。Binder实体实际上是内核中binder_node结构体的对象它的作用是在内核中保存Server和ServiceManager的信息(例如Binder实体中保存了Server对象在用户空间的地址)。简言之Binder实体是Server在Binder驱动中的存在形式内核通过Binder实体可以找到用户空间的Server对象。 如上图中Server和ServiceManager在Binder驱动中都对应的存在一个Binder实体。 3.3 Binder引用 说到Binder实体就不得不说Binder引用。所谓Binder引用实际上是内核中binder_ref结构体的对象它的作用是在表示Binder实体的引用。换句话说每一个Binder引用都是某一个Binder实体的引用通过Binder引用可以在内核中找到它对应的Binder实体。 如果将Server看作是Binder实体的话那么Client就好比Binder引用。Client要和Server通信它就是通过保存一个Server对象的Binder引用再通过该Binder引用在内核中找到对应的Binder实体进而找到Server对象然后将通信内容发送给Server对象。 Binder实体和Binder引用都是内核(即Binder驱动)中的数据结构。每一个Server在内核中就表现为一个Binder实体而每一个Client则表现为一个Binder引用。这样每个Binder引用都对应一个Binder实体而每个Binder实体则可以多个Binder引用(多个进程持有)。 3.4 远程服务 Server都是以服务的形式注册到ServiceManager中进行管理的。如果将Server本身看作是本地服务的话那么Client中的远程服务就是本地服务的代理。如果你对代理模式比较熟悉的话就很容易理解了远程服务就是本地服务的一个代理通过该远程服务Client就能和Server进行通信。 3.5 ServiceManager守护进程 ServiceManager是用户空间的一个守护进程。当该应用程序启动时它会和Binder驱动进行通信告诉Binder驱动它是服务管理者对Binder驱动而言它则会新建ServiceManager对应的Binder实体并将该Binder实体设为全局变量。 四、涉及源码 1)binder驱动                        /kernel/drivers/android/* 2)servicemanager              /frameworks/native/cmds/servicemanager/* 3)libbinder                           /frameworks/native/libs/binder/* 4)JAVA层                             /frameworks/base/core/java/android/os/*
http://www.w-s-a.com/news/939866/

相关文章:

  • 建站公司合肥做精品课程网站需要啥素材
  • 成都三合一网站建设网站建设教程自学网
  • 门户网站跳出率wordpress火车头采集教程
  • 天津做网站的网络公司wordpress免费的模板
  • 有哪些关于校园内网站建设的法律如何申请免费网站空间
  • 玉溪市网站建设龙口网页定制
  • 网站开发都用什么软件上海景观设计公司10强
  • 网站建设氵金手指下拉十二深圳网站建设售后服务
  • 上海网站设计价青海企业网站制作
  • 静态网站做新闻系统深圳外贸网站建设哪家好
  • 网站如何做词360免费wifi老是掉线怎么办
  • 网站建设分金手指排名十八iis10 wordpress
  • 成都网站优化公司哪家好网站建设帮助中心
  • 做外单什么网站好佛山市建设企业网站服务机构
  • 哪些网站是单页面应用程序北京门头沟山洪暴发
  • 织梦(dedecms)怎么修改后台网站默认"织梦内容管理系统"标题关键词优化收费标准
  • 网站设计和备案企业官网网站建设免费
  • 公司概况-环保公司网站模板搜索引擎营销的基本流程
  • 门户网站建设经验天津市建设银行租房网站
  • 百度推广 帮做网站吗怎样修改网站的主页内容
  • 网站怎么做dns解析公司官网改版方案
  • 湛江市住房和城乡建设局网站杭州网站公司哪家服务好
  • 设计网站公司湖南岚鸿设计镜像的网站怎么做排名
  • 你注册过哪些网站微信app下载安装官方版2019
  • 杭州滨江的网站建设公司人才招聘网网站策划方案
  • 门户网站是指提供什么的网站网站优化需要工具
  • 和小男生做的网站代理公司注册步骤
  • 天猫网站建设的目标是什么seo有些什么关键词
  • 网站前端建设都需要什么莱芜信息港网页
  • 如何做360网站优化网站建设培训教程新手入门到精通