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

三水网站制作合肥网站设计高端公司

三水网站制作,合肥网站设计高端公司,母婴的网站建设,微信公众平台怎么做微网站吗概要介绍 SurfaceControlViewHost是一个工具类, 用于帮助在其他进程中显示本进程的view。 SurfaceControlViewHost 为绘制进程持有,其中的SurfacePackage 交给另外的显示进程,在显示进程中的SurfaceView中通过SurfaceView.setChildSurface…

概要介绍

SurfaceControlViewHost是一个工具类, 用于帮助在其他进程中显示本进程的view。 

SurfaceControlViewHost 为绘制进程持有,其中的SurfacePackage 交给另外的显示进程,在显示进程中的SurfaceView中通过SurfaceView.setChildSurfacePackage(SurfacePackage) 将绘制进程中的界面与surfaceview关联并进行显示。绘制进程和显示进程中传递的实际上为surfacecontrol。   

具体实现

参照下面类图:

成员变量 

  •        WindowlessWindowManager mWm, 构造时传入,或者构造时创建。为IWindowSession 子类, 该类并不将一个view加入到wms中作为窗口管理, 而是将该view作为一个子surface加入到另一个父surface中。构造时创建时, 使用本类的mSurfaceControl作为参数, 作为WindowlessWindowManager的mRootSurface。 WindowlessWindowManager类的addToDisplay是按照 WindowManager.LayoutParams 创建一个surfacecontrol, 该surfacecontrol 对应SurfaceFlinger的buffer Layer, 分配具体的绘制buffer, 绘制进程的view 即绘制在该surface上。 该surface 存入WindowlessWindowManager.State.mSurfaceControl, mRootSurface为其parent。 WindowlessWindowManager类的relayout()中按照输入高宽及LayoutParams调整WindowlessWindowManager.State.mSurfaceControl的参数。 
  •        ViewRootImpl mViewRoot;  在SurfaceControlViewHost类构造时创建, 传入的参数为WindowlessWindowManager, 构造时会调用ViewRootImpl.forceDisableBLAST(),即绘制buffer在surfaceFlinger侧分配管理, 而不是在app侧。 
  •        SurfaceControl mSurfaceControl;  //构造时创建, 名字为“SurfaceControlViewHost”, 对应SurfaceFlinger中的ContainerLayer, 作为整个绘制surface的根。 其子layer 为在WindowlessWindowManager.addToDisplay中创建的buffer layer。 mSurfaceControl也作为根layer通过SurfacePackage传递给远端显示进程。 

    成员函数       

  • getSurfacePackage() :创建SurfacePackage:  new SurfacePackage(mSurfaceControl, mAccessibilityEmbeddedConnection); 其中SurfaceControlViewHost.mSurfaceControl 也作为SurfacePackage的mSurfaceControl, 会加入到显示进程中的SurfaceView中。
  • setView(View, ......): 最终调用的是mViewRoot.setView(view, attrs, null),进而调用WindowlessWindowManager.addToDisplay() 和relayout(), 将该view内容与WindowlessWindowManager.State.mSurfaceControl关联。 该mSurfaceControl即为buffer  layer。

示例代码

  • host端即绘制进程

参见: /frameworks/base/core/java/android/service/autofill/InlineSuggestionRenderService.java:170  

    final SurfaceControlViewHost host = new SurfaceControlViewHost(this, getDisplay(),hostInputToken);host.setView(suggestionRoot, lp);aidlClass.aidlFunction(host.getSurfacePackage());  //通过aidl接口将SurfacePackage交给显示进程即client端。 


    

  • client端即显示进程
 SurfaceHolder.Callback.surfaceCreated() {从远程host中获取SurfaceControlViewHost.SurfacePackage。 可以绘制进程调用aidl接口从绘制进程获取,或绘制进程调用aidl传入到显示进程。SurfaceView.setChildSurfacePackage(SurfacePackage);
}

http://www.yayakq.cn/news/343024/

相关文章:

  • 国内做的好看的网站微网站 html5
  • 怎么做网站广告苏州app制作
  • 东莞营销网站建设哪家好做第三方网站注意什么意思
  • 网站建设 连云港网站建设服务标准
  • 网站怎么做发送邮件的超链接网站空间续费一年多少钱
  • 西安 网站建设 培训班装修公司走心文案
  • 深圳网站推广哪家好有没有做推广的平台
  • 网站源码超市四川法制建设网站
  • 怎么做资源网站联合建设官方网站
  • 怎么建立一个网站推广重庆seo网站设计
  • 商城网站前端更新商品天天做吗wordpress 去掉发布者
  • 做时时的网站研发一个app费用
  • 桓台网站建设公司网站托管套餐
  • 电商应该怎么做如何从零做起潍坊网站的优化
  • 辽宁网站建设推广哪家便宜企业建设网站的比例
  • 可以做网站二维码吗网站顶部flash下载
  • 昆山规模的网站建设公司有哪些广告推广赚钱在哪接
  • 网站建设mrd文档模板英文网站建设平台
  • WordPress仿站培训在哪找做调查赚钱的网站好
  • 网站开发速成培训机构天津网站建设方案优化
  • 做网站的教程网站免费建站广告机
  • 十堰网站整站优化公司线上网课
  • 绵阳阡陌网站建设站酷设计官网
  • 网站 免备案前方网络网站建设合同
  • 莱西建设局官方网站网络品牌公关
  • 做网站需要的手续wordpress全站
  • 织梦网站地图怎么做零基础网站建设视频教程
  • 安丘市建设局官方网站徐州人才招聘网官网
  • 网站建设开发客户山东专业网站建设公司
  • 网站权重到底是什么广西建设行政主管部门官方网站