本文链接:https://blog.csdn.net/u201011221/article/details/102836550 最近遇到Android性能优化问题,使用AS的profile看了下堆栈,“nSyncAndDrawFrame...然后这个Bitmap再记录在父视图的Display List中,绘制的视图内容越多,构建Display List的耗时越长 第二步由应用程序进程的Render Thread渲染Display List,即nSyncAndDrawFrame
硬件加速情况下,draw流程执行结束后DisplayList构建完成,然后通过ThreadedRenderer.nSyncAndDrawFrame()利用GPU绘制DisplayList到屏幕上。
--渲染 提交任务到render线程--> int syncResult = nSyncAndDrawFrame(mNativeProxy, frameInfo, frameInfo.length...); ... } 如上面代码所说updateRootDisplayList构建DrawOp树在UI线程,nSyncAndDrawFrame提交渲染任务到渲染线程,之前已经分析过构建流程,nSyncAndDrawFrame
--关键点2:通知RenderThread线程绘制-- int syncResult = nSyncAndDrawFrame(mNativeProxy, frameInfo, frameInfo.length
--关键点2:通知RenderThread线程绘制--> int syncResult = nSyncAndDrawFrame(mNativeProxy, frameInfo, frameInfo.length
2.再回到 draw() 中,这里下一个调用的重要的方法是 nSyncAndDrawFrame: 1.这个方法最终会调用到 c++ 层的 RenderProxy::syncAndDrawFrame 方法
领取专属 10元无门槛券
手把手带您无忧上云