You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.7 KiB
44 lines
1.7 KiB
4 months ago
|
# 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
|
||
|
* Install [Yarn](https://yarnpkg.com), a JS package manager
|
||
|
* [Download Android source](https://source.android.com/setup/build/downloading)
|
||
|
* Navigate to `development/tools/winscope`
|
||
|
* Run `yarn install`
|
||
|
|
||
|
### 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
|