Starting window performance tuning for binder block.
- Pass TaskSnapshot to Shell directly. - Parallel process: create a splash screen worker thread to create the splash screen view and pre-draw the icon drawable, and use splash screen thread to do stuff about window's lifecycle like add/remove window. We don't use shell main thread here so the starting window won't blocking any task execute on main thread. - Trigger addStartingWindow directly when startActivity, also removeStartingWindow directly without post the animation thread. - Do not defer addStartingWindow for prepare surface, on the contrast it should be execute before prepare surface. - Remove ActivityRecordTests#testAddRemoveRace, it wasn't been test as expected because in original logic the add and remove starting window are post to animation thread, so the test was actually testing on handler#postAtFrontOfQueue and handler#removeCallbacks. For now it will only cause OutOfMemoryError. Bug: 183665220 Bug: 182836977 Test: atest StartingSurfaceDrawerTests SplashscreenTests Change-Id: Ie9a529c7d81f07f923394eb69944518f3e9010ce
Loading
Please register or sign in to comment