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

设计好看的网页怎么做优化

设计好看的网页,怎么做优化,wordpress主题——b5,网站模板英文概要介绍 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/4997.html

相关文章:

  • 公司建设网站费用属于什么费用培训机构需要哪些证件
  • 给公众号做头像的网站怎样做百度推广网页
  • 百度推广 做网站百度关键词点击排名
  • 短租网站开发优化设计四年级上册数学答案
  • 提供邢台网站优化搜索关键词排名提升
  • 网站建设规划怎么写线上培训机构
  • 如何网站开发如何网络媒体推广
  • 和平东路网站建设免费域名注册查询
  • 网站保留密码 怎么做域名查询ip
  • 用bootstrap做网站南宁推广软件
  • 会计培训网站google浏览器下载安装
  • 网站做英文版有用吗中国北京出啥大事了
  • 抖音代刷网站推广快速学网络营销
  • 杭州做产地证去哪个网站seo哪里可以学
  • wordpress做微信支付win10一键优化工具
  • 免费b站推广网站入口2023孩子出牙会发烧吗seo排名优化是什么意思
  • 网站文件权限广告宣传
  • 迁移WordPress后无法访问名词解释搜索引擎优化
  • 西宁做网站君博先进友链交换网站
  • 做淘宝网站需要什么深圳最新疫情
  • 什么是b2b模式苏州seo建站
  • 我想建一个网站怎么建建一个企业网站多少钱
  • 论坛seo网站电商关键词查询工具
  • 做打鱼网站的代理厦门网站seo
  • 国际贸易英文网站简述网站制作的步骤
  • 阿里云增加网站uv推广平台
  • 李青青做网站 公司主要做应用领域优化算法
  • 溧阳网站建设价格西安关键词排名推广
  • 正在建设中的网站可算违规最近三天的新闻大事国内
  • 郑州做网站公司+卓美百度快照手机版