Android 图层\类型\硬件和图形到缓存
视图可以具有LAYER_TYPE_HARDWARE(view.setLayerType(LAYER_TYPE_HARDWARE,null))的layerType,它告诉视图将缓存绘制到GPU中。我如何知道该缓存的绘制频率?规则是什么?我假设每次视图调用invalidate或onDraw时,LAYER\u TYPE\u硬件必须创建一个新缓存。如果这是真的,那么对于一个经常调用onDraw的视图来说,最好不要使用LAYER_TYPE_硬件,因为这样做的工作量是原来的两倍(因为绘制到一个不被使用的缓存会增加开销) 无论如何,我看不到我可以记录的钩子,设置开发选项以在GPU上闪烁屏幕也看不到做任何事情 TL:DR,我如何知道何时创建了新的层缓存 我如何知道何时创建新的层缓存 它是在您第一次调用view.setLayerType(LAYER\u TYPE\u HARDWARE,null)时创建的 在幕后,拍摄视图的快照并将其作为纹理上传到GPU 我如何知道该缓存的绘制频率?规则是什么 是吗 如果要更改某些属性,如alpha、视图坐标、缩放或旋转视图,则不会将新纹理上载到GPU。这就是为什么硬件层适用于某些类型的动画,因为您基本上只需将变换矩阵发送到GPU,而无需重新绘制(从而在层的情况下重新加载纹理) 如果更改视图的任何其他属性,则会将一个新纹理上载到GPU,如果在动画中执行此操作,可能会很昂贵 我假设每次视图调用invalidate或onDraw时 层\类型\硬件必须创建新缓存 视情况而定。如前一段所述,如果使用层友好特性(如alpha、x、y、scale和rotate),则无效不会导致重绘。在这种情况下,不会上载新纹理Android 图层\类型\硬件和图形到缓存,android,hardware-acceleration,Android,Hardware Acceleration,视图可以具有LAYER_TYPE_HARDWARE(view.setLayerType(LAYER_TYPE_HARDWARE,null))的layerType,它告诉视图将缓存绘制到GPU中。我如何知道该缓存的绘制频率?规则是什么?我假设每次视图调用invalidate或onDraw时,LAYER\u TYPE\u硬件必须创建一个新缓存。如果这是真的,那么对于一个经常调用onDraw的视图来说,最好不要使用LAYER_TYPE_硬件,因为这样做的工作量是原来的两倍(因为绘制到一个不被使用的缓存
但是,由于对其他属性的更改而无效将导致纹理上载,并且比仅绘制没有图层的纹理要慢。从哪里可以获得这些属性的列表,这些属性不会导致重绘?