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

微餐饮网站建设客户关系管理系统功能

微餐饮网站建设,客户关系管理系统功能,郑州建站模板搭建,南昌哪个公司做网站好前景提要#xff1a; 当HWComposer接收到Vsync信号时#xff0c;唤醒DisSync线程#xff0c;在其中唤醒EventThread线程#xff0c;调用DisplayEventReceiver的sendObjects像BitTub发送消息#xff0c;由于在SurfaceFlinger的init过程中创建了EventThread线程#xff0c…前景提要 当HWComposer接收到Vsync信号时唤醒DisSync线程在其中唤醒EventThread线程调用DisplayEventReceiver的sendObjects像BitTub发送消息由于在SurfaceFlinger的init过程中创建了EventThread线程并添加到MQ中进行创建Connection并监听对应的BitTube信息因此最后会在MQ中接收到通知调用Handler的发送消息到SF的主线程中SF的handlerMessage方法去处理该消息并执行对应的绘制流程。 SurfaceFliger绘制流程 第一步 回调每个图层onPreComposition方法 第一步preComposition中获取到所有参与绘制的layer图层信息并回调onPreComposition方法观察是否有图层发生变化通过方法返回值判断 【通过判断MQueuedFrames是否大于0代表图层发生变化在onFrameAvailable中会对这个字段1】 SurfaceFlinger可以控制某些Layer不参与绘制过程比如需要将悬浮按钮图层隐藏。 如果有则向MQ中发送invalidata消息SurfaceFliger的MQ接收到之后会调用 handleMessageTransaction()方法和handleMessageInvalidate() 方法根据是否刷新调用signalRefresh方法。 代码部分 void SurfaceFlinger::preComposition() {     bool needExtraInvalidate false;     const LayerVector layers(mDrawingState.layersSortedByZ);     const size_t count layers.size();     for (size_t i0 ; icount ; i) {         //回调每个图层onPreComposition方法         if (layers[i]-onPreComposition()) {             needExtraInvalidate true;         }     }          //当存在图层有变化则发送invalidate消息     if (needExtraInvalidate) {         signalLayerUpdate();      } } //图层是否发生变化是通过mQueuedFrames字段确定 bool Layer::onPreComposition() {     mRefreshPending false;     return mQueuedFrames 0 || mSidebandStreamChanged; } 当Layer可见时会调用onFrameAvailable方法对mQueuedFrames1 代码部分 void Layer::onFrameAvailable(const BufferItem item) {     { // Autolock scope         Mutex::Autolock lock(mQueueItemLock); if (item.mFrameNumber 1) {             mLastFrameNumberReceived 0;         } while (item.mFrameNumber ! mLastFrameNumberReceived 1) {             status_t result mQueueItemCondition.waitRelative(mQueueItemLock,                     ms2ns(500));         } mQueueItems.push_back(item);         android_atomic_inc(mQueuedFrames); //加1操作 //唤醒所有pending的回调方法         mLastFrameNumberReceived item.mFrameNumber;         mQueueItemCondition.broadcast();     }     //和上面一样的操作通知flinger图层发生更新     mFlinger-signalLayerUpdate();  } handleMessageTransaction方法的主要工作 遍历所有Layer来执行其doTransaction方法处理显示设备的改变处理layers的改变提交transaction并更新光标情况。 doTransaction工作 比较上次Layer的状态宽高和此次Layer的状态宽高判断Layer尺寸是否发生变化当尺寸发生变化时调整Surface的缓冲区大小并调用Layer的invalidate重新计算可见区域大小并接着同步当前Layer状态接着再更新光标情况 handleMessageInvalidate工作 获取所有的layer将更新的图层放入到layerWithQueuedFrames中接着取出调用各个图层的latchBuffer处理。 rebuildLayerStacks 获取每个显示屏中的所有可见图层列表计算每个图层的可见区域根据Z轴的深度把所有图层添加进来 重建所有显示屏的各个可见Layer并重新根据Z轴调整Layer图层的顺序 后续分析 setUpHWcomposer 将Layer添加到HWComposer中 doComposition postComposition HWComposer更新frameBuffer缓冲区通过转换后的屏幕坐标判断是局部区域更新还是整个屏幕都需要更新Display从缓冲区中取出数据进行显示 原文链接SurfaceFliger绘制流程 - 掘金 (juejin.cn)
http://www.dnsts.com.cn/news/188239.html

相关文章:

  • 微企帮做网站wordpress copyfeed
  • 凡科网站建设好制作页培训
  • 江苏省建设厅网站是做水浒传有关的网站
  • 福田网站设计装修是全包划算还是半包划算
  • 网站设计济南深圳设计周2021时间
  • 用什么网站做海报sem是什么检测分析
  • 贵阳市小程序网站开发公司互联网创业项目哪家好平台
  • 杭州竞彩网站开发dede 网站改宽屏代码
  • 设计网站需要什么条件类似稿定设计的网站
  • 网站推广营销策划wordpress后台产品图标
  • 16年百度对泛解析网站的惩罚网架加工厂有招工的吗
  • 专做坏消息的网站wordpress多图片
  • 永嘉县建设局网站中堂镇仿做网站
  • 成都网站建设哪里好app拉新推广平台有哪些
  • 网站 备案查询专业做网带
  • 网站建设 设计那种连接线厂家wordpress 主题改多频道
  • python 快速搭建网站如何查看实时街景地图
  • wordpress只能下载一个文件下载seo关键词优化排名推广
  • 网站动态和静态的区别网页制作与网站建设宝典(第2版)
  • 凉山州住房和城乡建设局网站江阴市建设局官网站
  • 专门做冷门旅行的网站网站群建设的意义
  • 织梦建站教程下载国外有没有做物理小实验的网站
  • 开源网站下载免费公司主页网站
  • 学生网站建设的总结与评价欧卡乐网站建设
  • 旅游网站建设方案书范文建筑模板的规格
  • 一级a做爰片就线在看网站php wordpress 模版
  • 做初级会计实务题的网站godaddy空间建立wordpress
  • 上海建筑安全协会网站网站推广途径及要点
  • 怎么用网网站模板做网站怎么查看网站的域名
  • 网站开发使用技术第二版答案六盘水市城乡建设局网站