Files
android_development/tools/winscope
Hui Ling Shi 595c67d790 [11] Change matching WM/SF entry to IME entry algo
Due to there being some slightly different timestamps between WM/SF
trace and IME trace, we want to allow some "fault tolerance" -- even
if a WM/SF entry comes after IME entry in time, it may still be the
corresponding entry if it's within a manually-defined "fault tolerance"
time.

For now, fault tolerance is defined to be 200ms. So if a WM/SF entry is
within IME entry +- 200ms, it may be considered a matching /
corresponding entry. Within this range, we will always try to pick a
WM/SF entry that comes before the IME entry. If there is no such WM/SF
entry, then we will pick one that comes after.

Bug: 236226833
Test: manual on local build of Winscope
Change-Id: I0782ec520284517bf964eeffd552e6175758c9f1
2022-08-01 08:46:43 +00:00
..
2017-12-19 15:15:30 -08:00
2022-05-16 15:26:58 +00:00
2020-05-20 08:49:15 -07:00
2020-06-19 17:44:29 +01:00
2020-08-26 11:01:35 +02:00
2020-11-30 11:51:57 +00:00
2020-06-03 18:31:43 +01:00

Tool for visualizing window manager traces

Developing WinScope

When the trace is enabled, Window Manager and Surface Flinger capture and save current state to a file at each point of interest. frameworks/base/core/proto/android/server/windowmanagertrace.proto and frameworks/native/services/surfaceflinger/layerproto/layerstrace.proto contain the proto definitions for their internal states.

Checking out code and setting up environment

Building & testing changes

  • Navigate to development/tools/winscope
  • Run yarn run dev

Update IntDefMapping

  • Build framework-minus-apex-intdefs module and a preprocessor will generate the latest IntDefMapping. From the ANDROID_ROOT run:
. build/envsetup.sh
m framework-minus-apex-intdefs
  • Copy the generated intDefMapping.json files to the prebuilts repo.
python3 -c 'import sys,json,collections; print(json.dumps(collections.OrderedDict(sorted(collections.ChainMap(*map(lambda x:json.load(open(x)), sys.argv[1:])).items())), indent=2))' $(find out/soong/.intermediates/frameworks/base -iname intDefMapping.json) > ./prebuilts/misc/common/winscope/intDefMapping.json
  • Upload the changes.
cd ./prebuilts/misc/common/winscope
repo start intdef-update
git commit -am "Update intdef mapping" "Test: N/A"
repo upload --cbr .

Building with internal extensions

Internal paths in vendor/ which are not available in AOSP must be replaced by stub files. See getWaylandSafePath for an example