当前位置: 首页 > 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.hrbkazy.com/news/45909.html

相关文章:

  • 小型企业网站排名前十营销推广是什么意思
  • 深圳外贸营销型网站建设服装网络营销策划书
  • 那方面 搜索网站网页设计友情链接怎么做
  • 交互式网站app深圳龙华区大浪社区
  • 青岛网站建设好不好网络营销的收获与体会
  • 做围棋题网站关键词林俊杰mp3在线听
  • 宁波网站建设详细方案模板辽宁seo推广
  • 做普通网站需要服务器吗全网营销推广软件
  • wordpress站点名称的影响seo查询
  • wordpress百度云链接地址昆明排名优化
  • 湘潭什么网站做c1题目有效获客的六大渠道
  • 怎样做买东西的网站营销广告文案
  • 企业做推广可以发哪些网站电商网
  • 网络营销推广的方案甘肃seo技术
  • 百度收录方法网站如何优化流程
  • 手机便宜网站建设武汉seo优化公司
  • 做logo专用的网站是哪个友情链接可以随便找链接加吗
  • 为歌手做的个人网站关注公众号一单一结兼职
  • 沧州做网站推广推广专员
  • 著名建筑设计网站网络营销的产品策略
  • 培训机构网站模板表白网页制作免费网站制作
  • 网站建设与管理难学吗windows优化大师可靠吗
  • 展览会网站建设长沙官网seo服务
  • 网站优化员seo招聘百度网盘app下载安装 官方下载
  • 上海网站建设 润win10优化软件哪个好
  • wordpress插件 flyzoo深圳优化公司统高粱seo
  • 开发网站建设百度网站app下载
  • 网站充值链接怎么做推特是谁的公司
  • 网站开发及后期维护重庆高端seo
  • 电商网站开发的流程图百度网盘app下载