头像设计制作网站,软件网站排名,怎么把文件放到网站的根目录,濮阳建设网站背景#xff1a;
在aosp16的Winscope体验时候发现多了数据的搜索功能#xff0c;也体验了一下#xff0c;这个新功能本身Winscope也自带了很多指导提示#xff0c;主要是用来解决Winscope有时候寻找某个数据#xff0c;某个layer时候的不便#xff0c;本文来详细介绍一下…背景
在aosp16的Winscope体验时候发现多了数据的搜索功能也体验了一下这个新功能本身Winscope也自带了很多指导提示主要是用来解决Winscope有时候寻找某个数据某个layer时候的不便本文来详细介绍一下这块搜索如何使用的内容。
体验Winscope搜索功能相关Winscope上数据记录搜索
使用 SQL 在 Winscope Perfetto 跟踪记录中查找特定状态。使用 Winscope 界面中的全局搜索查看器运行查询并直观呈现表格化结果图 1. 搜索查看器标签页
借助搜索查看器您可以针对 Perfetto 跟踪记录编写和运行自定义 SQL 查询并访问近期和已保存的查询。Winscope 提供了专用的 SQL 视图以帮助搜索 SurfaceFlinger 和事务跟踪记录。
注意我们计划添加辅助视图以帮助搜索其他类型的跟踪记录。
所有视图应遵守以下规则
对于 property 和 flat_property 列
属性名称采用蛇形命名法例如 LayerProto 中的 visible_region。
点表示法用于表示嵌套属性例如 visible_region.rect。
property 中的重复字段使用方括号进行区分
例如在重复字段 visible_region.rect 的两个实例中top 字段分别由 visible_region.rect[0].top 和 visible_region.rect[1].top 表示。
flat_property 中的重复字段无法区分
例如在重复字段 visible_region.rect 的两个实例中top 字段在两个实例中都由 visible_region.rect.top 表示。
对于 value 和 previous_value 列
布尔值由 ‘0’ (False) 或 ‘1’ (True) 表示。
SurfaceFlinger SQL 视图
SurfaceFlinger proto 数据使用以下格式
图层数据采用 LayerProto 格式。
层次结构根数据采用 LayersSnapshotProto 格式。
如需搜索图层数据请使用 sf_layer_search 视图。此视图包含以下列
列 说明
state_id 图层所属条目的唯一 ID
ts 图层所属条目的时间戳
layer_id 图层 ID
parent_id 父级的图层 ID
layer_name 图层名称
property 考虑重复字段的属性名称
flat_property 属性名称不考虑重复字段
value 以字符串格式显示的属性值
previous_value 上一个条目的属性值字符串格式如需搜索层次结构根数据请使用 sf_hierarchy_root_search 视图。此视图包含以下列
列 说明
state_id 条目的唯一 ID
ts 条目的时间戳
property 考虑重复字段的属性名称
flat_property 属性名称不考虑重复字段
value 以字符串格式显示的属性值
previous_value 上一个条目的属性值字符串格式示例查询
查找 IME 层具有有效屏幕边界的所有帧
SELECT ts, value, previous_value FROM sf_layer_searchWHERE layer_name like IME%AND propertyscreen_bounds.bottomAND value24000注意我们计划向 SurfaceFlinger 跟踪记录添加更准确的 isVisible 属性。
查找 Taskbar 层 color.a (alpha) 发生变化的所有帧
SELECT ts, value, previous_value FROM sf_layer_searchWHERE layer_name like Taskbar%AND propertycolor.aAND value!previous_value
查找 Wallpaper 底部边界小于或等于 2400 的所有帧SELECT ts, value, previous_value FROM sf_layer_searchWHERE layer_name LIKE Wallpaper%AND propertybounds.bottomAND cast_int!(value) 2400列出具有有效叠加层的显示设备的所有属性
SELECT STATE.* FROM sf_hierarchy_root_search STATE_WITH_DISPLAY_ON
INNER JOIN sf_hierarchy_root_search STATEON STATE.state_id STATE_WITH_DISPLAY_ON.state_idAND STATE_WITH_DISPLAY_ON.flat_propertydisplays.layer_stackAND STATE_WITH_DISPLAY_ON.value!4294967295AND STATE.property LIKE CONCAT(SUBSTRING(STATE_WITH_DISPLAY_ON.property,0,instr(STATE_WITH_DISPLAY_ON.property, ])),%)事务 SQL 视图
事务 proto 数据使用 TransactionTraceEntry 格式。
如需搜索事务数据请使用 transactions_search 视图。此视图包含以下列
列 说明
state_id proto 属性所属条目的唯一 ID
ts proto 属性所属条目的时间戳
transaction_id 事务 ID如有
property 考虑重复字段的属性名称
flat_property 属性名称不考虑重复字段
value 以字符串格式显示的属性值示例查询
找到应用了事务的帧以将层 x 位置更改为 -54.0
SELECT ts, transaction_id, value FROM transactions_searchWHERE flat_propertytransactions.layer_changes.xAND value-54.0找到添加 ImeContainer 层的帧
SELECT ts FROM transactions_searchWHERE flat_propertyadded_layers.nameAND valueImeContainerShellTransition SQL 视图
过渡 proto 数据使用 ShellTransition 格式。
如需搜索过渡数据请使用 transitions_search 视图。此视图包含以下列
列 说明
ts 分派时间 - 如果有发送时间则回退到发送时间否则为 0
transition_id 过渡 ID
property 考虑重复字段的属性名称
flat_property 属性名称不考虑重复字段
value 以字符串格式显示的属性值示例查询
查找由 DefaultMixedHandler 处理的过渡的属性SELECTPROPS.ts,PROPS.transition_id,PROPS.property,PROPS.valueFROM transitions_search HANDLER_MATCHINNER JOIN transitions_search PROPSON HANDLER_MATCH.transition_id PROPS.transition_idWHERE HANDLER_MATCH.property handlerAND HANDLER_MATCH.value LIKE %DefaultMixedHandlerORDER BY PROPS.transition_id, PROPS.propertyViewCapture SQL 视图
ViewCapture proto 数据使用 View 格式。
如需搜索 ViewCapture 数据请使用 viewcapture_search 视图。此视图包含以下列
列 说明
state_id 视图所属状态的唯一 ID
ts 视图所属状态的时间戳
package_name 软件包名称
window_name 窗口名称
class_name 查看类名称
property 考虑重复字段的属性名称
flat_property 属性名称不考虑重复字段
value 以字符串格式显示的属性值
previous_value 上一个状态的属性值字符串格式示例查询
查找 SearchContainerView 在 y 方向移动时的所有状态SELECT * FROM viewcapture_searchWHERE class_name LIKE %SearchContainerViewAND flat_propertytranslation_yAND value!previous_valueProtoLog SQL 表
ProtoLog proto 数据使用 ProtoLogMessage 格式。此视图包含以下列
列 说明
ts 日志的时间戳
level 日志级别
tag 日志记录组标记
message 日志消息
stacktrace 堆栈轨迹如果有
location 消息的来源代码位置示例查询
查找消息中包含 transition 的所有日志
SELECT ts, message, location FROM protologWHERE message LIKE %transition%查找包含有效事务 ID 的所有日志
CREATE PERFETTO VIEW valid_tx_ids ASSELECT DISTINCT transaction_id FROM transactions_searchWHERE transaction_id IS NOT NULL AND transaction_id ! 0;SELECT TRANS.transaction_id, message FROM valid_tx_ids TRANS
INNER JOIN protolog LOGSON LOGS.message LIKE CONCAT(%, TRANS.transaction_id, %);运行查询
使用左侧面板时系统会开始搜索跟踪记录。此过程需要几秒钟的时间。在开始时时间轴不可用。
开始跟踪记录搜索后在搜索框中输入查询然后点击 Run Search Query 或按键盘上的 Enter 以运行该查询。
完成后结果表格会显示在中间面板中。您的查询会显示在搜索框下方并带有一个在会话之间保存查询的字段。
您可以通过点击左侧面板中的 Saved 标签页来访问已保存的查询也可以通过点击 Recent 标签页来访问最近运行的查询图 2. 搜索查看器左侧面板。
结果
所有查询都会返回表格式结果并在可滚动视图中显示其交互行为类似于基于日志的跟踪记录查看器例如 Transactions 和 ProtoLog图 3. 搜索查看器结果。
如果生成的表格包含 ts 列则该列中的值会被解释为时间戳并作为新行条目添加到时间轴叠加层中。点击此行然后使用向左和向右箭头键在条目之间导航图 4. 搜索时间轴。