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

湛江市seo网站设计联系方式wordpress添加二维码弹窗

湛江市seo网站设计联系方式,wordpress添加二维码弹窗,大背景 网站,做网站的策划需要做什么背景#xff1a; hi#xff0c;粉丝朋友们#xff1a; 大家好#xff01;近期分享了surfaceflinger相关的一些blog#xff0c;有同学就对相关的一些内容产生了一些疑问。 比如#xff1a;vsync查看问题#xff0c;即怎么才可以说是vsync到来了。 比如perfetto中surfac…背景 hi粉丝朋友们 大家好近期分享了surfaceflinger相关的一些blog有同学就对相关的一些内容产生了一些疑问。 比如vsync查看问题即怎么才可以说是vsync到来了。 比如perfetto中surfaceflinger的VSYNC脉冲经典图如上图所示的看到一个的小方块上升下降的方波形那么通过看这些方块了解真实的vsync信号到来呢 大部分同学常规方法 第一种方法 方波方块确定vsync这个很多同学不了解原理的或者属于自己看trace同学看到一个方块的脉冲然后测量一下方块刚好耗时是16ms左右任务一个方块就代表一个vsync周期 哈哈这种想法其实一开始很多新手自己看vsync都是这样的属于自己想当然情况随便一个脉冲就可以反驳比如如下 所以这种方式其实不准确哈很多时候不便于理解 第二种方式 判断变脉冲方波变化的上升下降的瞬间代表vsync来临方式。 这种思路和观点其实已经基本上已经算正确了因为vsync本身是一个信号属于瞬时的动作上升和下降代表这个时候的vsync是有变化的。但是有一些场景有问题比如如下这种 上面问题是课程学员提出的相关framework干货课程看这里 更多framework干货课程优惠获取相关可以Vandroidframework007 视频https://www.bilibili.com/video/BV1ah411d7Y3 真实的vsync理解方法 这个情况就可以看到如果按照上升下降理论确实这个同学说的是对的。但其实这个上升下降理解也还是缺少点理论支持最好可以结合代码来验证一下。首先看看这个VSYNC-app信号是在哪里 打印这个VSYNC-app信号的代码如下 frameworks/native/services/surfaceflinger/Scheduler/DispSyncSource.cpp void DispSyncSource::onVsyncCallback(nsecs_t vsyncTime, nsecs_t targetWakeupTime,nsecs_t readyTime) {VSyncSource::Callback* callback;{std::lock_guard lock(mCallbackMutex);callback mCallback;}if (mTraceVsync) {//正常都进行tracevsyncmValue (mValue 1) % 2;//这里就是trace的值所以只有0和1}if (callback ! nullptr) {callback-onVSyncEvent(targetWakeupTime, {vsyncTime, readyTime});} }上面大家可能有疑问这里 mValue (mValue 1) % 2 明明就是对 mValue只是个简单赋值哪来的TRACE打印。哈哈这里你得知道c的符号重载可以看看mValue的源码就了解了 class TracedOrdinal { public:static_assert(std::is_samebool, T() || (std::is_signedT() std::is_integralT()) ||std::is_samestd::chrono::nanoseconds, T(),Type is not supported. Please test it with systrace before adding it to the list.);TracedOrdinal(std::string name, T initialValue): mName(std::move(name)),mHasGoneNegative(std::signbit(initialValue)),mData(initialValue) {trace();}T get() const { return mData; }operator T() const { return get(); }TracedOrdinal operator(T other) { //对赋值进行重载mData other;mHasGoneNegative mHasGoneNegative || std::signbit(mData);trace();//打印TRACEreturn *this;}private:void trace() {if (CC_LIKELY(!ATRACE_ENABLED())) {return;}if (mNameNegative.empty()) {mNameNegative mName Negative;}if (!std::signbit(mData)) {ATRACE_INT64(mName.c_str(), to_int64(mData));if (mHasGoneNegative) {ATRACE_INT64(mNameNegative.c_str(), 0);}} else {ATRACE_INT64(mNameNegative.c_str(), -to_int64(mData));ATRACE_INT64(mName.c_str(), 0);}}const std::string mName;std::string mNameNegative;bool mHasGoneNegative;T mData; };所以说mValue (mValue 1) % 2的这个赋值操作就是打印trace了也就是说系统执行到了 DispSyncSource::onVsyncCallback就代表有vsync到来上升和下降那种理论就说的过去了因为上升下降代表mValue确实有变化了。但是上面方法二那个同学疑问怎么解释呢 这里大家要注意看这个信号图 关注VSYNC-appSf这一栏信号是不是发现第一个绘制第一个信号value为0在这个第一个信号绘制以前图形中其实并没有看到有任何的value。 相当于这个信号在我们这个trace中属于第一次有value情况。 那么结合我们上面的代码结论我们知道第一次有value的trace打印了说明肯定是有vsync的回调了至于之前脉冲图没有打印那一般是因为抓取时候就没有触发这个onVsyncCallback回调所以自然不会打印出来啦。这样理解了代码再去看这个vsync脉冲图是不是好理解多了。
http://www.hkea.cn/news/14304206/

相关文章:

  • 长春火车站在哪软件界面设计要求
  • 宝安专业网站建设百度个人网站申请
  • 怎么做网站导航栏wordpress调用文章内容标签
  • seo软件优化工具软件seo在网站建设中的作用
  • 网站设计论文分类号怎么做网站 新手做网站
  • 做网站推广的工作好吗苏州中设建设集团有限公司网站
  • 开一个做网站的工作室cn域名的网站
  • 在哪里可以学习做网站网站制作报价维持地建网络
  • 新手如何入侵一个网站手机做推广比较好的网站
  • 有哪些做PPT背景网站厦门营销型网站建设公司
  • 设计网站100个免费百度云盘网站开发
  • 定州市住房和建设局网站莱芜规划
  • 云主机建网站软件北京网站制作团队
  • 做门头上那个网站申报wordpress调用文章标签
  • 做彩票网站12306网站谁做的
  • php能自己做网站吗网站底部备案字体设置
  • 网页设计制作手机网站便宜的做网站公司
  • 做企业网站怎么接活网站项目设计与制作
  • 吉林市建设厅网站互联网营销专家
  • 厦门怎么没有 网站备案wordpress 关闭warning
  • 广州番禺区地图高清版大图seo外包 杭州
  • 网站颜色搭配实例网页版微信登录显示二维码已失效
  • 网站怎么做才能将名声打响珠宝网站建设公司
  • 注册网站有什么用网站推广 软件
  • 顺义做网站的厂家杭州网站建设响应式
  • 鲜花团购网站建设广州汽车网络推广服务
  • 购物网站后台模板网站推广策划案
  • 网站备案号 查询在手机上怎么制作网站
  • 苏州大型网站建设公司解决wordpress后台加载非常缓慢
  • 湖北省建设厅网站怎么打不开广州建站快车