Add SystemUI build flag for Compose code (1/3)
This CL adds a Soong build flag that enables Compose code when building SystemUI, or anything depending on SystemUI-core. The flag is disabled by default, and will be first used to measure the impact of Compose on our apk and system health. It will be turned on for one/many/all targets once agreed with the Android System Health & Performance team. To turn this flag on, one simply have to `export SYSTEMUI_USE_COMPOSE=true` before compiling. This flag is implemented such that: - When it is enabled, SystemUI-core depends on the SystemUIComposeCore library and compiles the source files of SystemUIComposeFeatures. In an ideal world, SystemUI-core would also just depend on SystemUIComposeFeatures instead of recompiling its sources, but given that the code in SystemUIComposeFeatures depends on code in SystemUI-core, this would lead to a cyclic dependency. Therefore, when this flag is enabled, we compile those files together. SystemUIComposeFeatures also contains a ComposeFacade object that is the bridge between SystemUI-core code and SystemUIComposeFeatures code. - When it is disabled, we only add another ComposeFacade object with the same API as the ComposeFacade object in SystemUIComposeFeatures, which throws when its functions are called (except for ComposeFacade#isComposeAvailable(), which returns false). This way, any code in SystemUI-core can check ComposeFacade#isComposeAvailable() first then call other functions to indirectly access Compose code. See http://ag/20759151 for an example. Bug: 242304109 Test: Builds Change-Id: Ibd895a73041c163816e779273ec0b6588aabef76
Loading
Please register or sign in to comment