@@ -6,6 +6,7 @@ import 'dart:async';
66
77import 'package:meta/meta.dart' ;
88
9+ import 'android/android_engine_cli_flags.dart' ;
910import 'application_package.dart' ;
1011import 'base/context.dart' ;
1112import 'base/dds.dart' ;
@@ -1425,86 +1426,78 @@ class DebuggingOptions {
14251426 ),
14261427 );
14271428
1429+ Map <String , Object ?> _getAndroidEngineConfig () {
1430+ return < String , Object ? > {
1431+ if (enableDartProfiling) AndroidEngineCliFlags .enableDartProfiling: true ,
1432+ if (profileStartup) AndroidEngineCliFlags .profileStartup: true ,
1433+ if (enableSoftwareRendering) AndroidEngineCliFlags .enableSoftwareRendering: true ,
1434+ if (skiaDeterministicRendering) AndroidEngineCliFlags .skiaDeterministicRendering: true ,
1435+ if (traceSkia) AndroidEngineCliFlags .traceSkia: true ,
1436+ if (traceAllowlist != null ) AndroidEngineCliFlags .traceAllowlist: traceAllowlist,
1437+ if (traceSkiaAllowlist != null ) AndroidEngineCliFlags .traceSkiaAllowlist: traceSkiaAllowlist,
1438+ if (traceSystrace) AndroidEngineCliFlags .traceSystrace: true ,
1439+ if (traceToFile != null ) AndroidEngineCliFlags .traceToFile: traceToFile,
1440+ if (endlessTraceBuffer) AndroidEngineCliFlags .endlessTraceBuffer: true ,
1441+ if (profileMicrotasks) AndroidEngineCliFlags .profileMicrotasks: true ,
1442+ if (purgePersistentCache) AndroidEngineCliFlags .purgePersistentCache: true ,
1443+ if (enableImpeller == ImpellerStatus .enabled) AndroidEngineCliFlags .enableImpeller: true ,
1444+ if (enableImpeller == ImpellerStatus .disabled) AndroidEngineCliFlags .enableImpeller: false ,
1445+ if (enableFlutterGpu) AndroidEngineCliFlags .enableFlutterGpu: true ,
1446+ if (enableVulkanValidation) AndroidEngineCliFlags .enableVulkanValidation: true ,
1447+ if (enableHcpp != null ) AndroidEngineCliFlags .enableHcppAndSurfaceControl: enableHcpp,
1448+ if (testFlag) AndroidEngineCliFlags .testFlag: true ,
1449+ if (debuggingEnabled) ...< String , Object ? > {
1450+ // TODO(camsim99): Determine if we should even forward these to the Android embedding since Android
1451+ // appears unsupported. https://github.com/flutter/flutter/issues/191849
1452+ if (buildInfo.isDebug) 'enable-checked-mode' : true ,
1453+ if (buildInfo.isDebug) 'verify-entry-points' : true ,
1454+ if (startPaused) AndroidEngineCliFlags .startPaused: true ,
1455+ if (disableServiceAuthCodes) AndroidEngineCliFlags .disableServiceAuthCodes: true ,
1456+ if (disableServiceOriginCheck) AndroidEngineCliFlags .disableServiceOriginCheck: true ,
1457+ if (dartFlags.isNotEmpty) AndroidEngineCliFlags .dartFlags: dartFlags,
1458+ if (useTestFonts) AndroidEngineCliFlags .useTestFonts: true ,
1459+ if (verboseSystemLogs) AndroidEngineCliFlags .verboseLogging: true ,
1460+ },
1461+ };
1462+ }
1463+
14281464 /// Retrieves Android engine shell arguments from the debugging options based on the
14291465 /// command line flags that are passed to the engine via the manifest.
14301466 Set <String > getAndroidLaunchArguments () {
1431- return < String > {
1432- if (enableDartProfiling) ...< String > ['--enable-dart-profiling' ],
1433- if (profileStartup) ...< String > ['--profile-startup' ],
1434- if (enableSoftwareRendering) ...< String > ['--enable-software-rendering' ],
1435- if (skiaDeterministicRendering) ...< String > ['--skia-deterministic-rendering' ],
1436- if (traceSkia) ...< String > ['--trace-skia' ],
1437- if (traceAllowlist != null ) ...< String > ['--trace-allowlist=${traceAllowlist !}' ],
1438- if (traceSkiaAllowlist != null ) ...< String > ['--trace-skia-allowlist=${traceSkiaAllowlist !}' ],
1439- if (traceSystrace) ...< String > ['--trace-systrace' ],
1440- if (traceToFile != null ) ...< String > ['--trace-to-file=${traceToFile !}' ],
1441- if (endlessTraceBuffer) ...< String > ['--endless-trace-buffer' ],
1442- if (profileMicrotasks) ...< String > ['--profile-microtasks' ],
1443- if (purgePersistentCache) ...< String > ['--purge-persistent-cache' ],
1444- if (enableImpeller == ImpellerStatus .enabled) ...< String > ['--enable-impeller=true' ],
1445- if (enableImpeller == ImpellerStatus .disabled) ...< String > ['--enable-impeller=false' ],
1446- if (enableFlutterGpu) ...< String > ['--enable-flutter-gpu' ],
1447- if (enableVulkanValidation) ...< String > ['--enable-vulkan-validation' ],
1448- if (enableHcpp != null ) ...< String > ['--enable-hcpp-and-surface-control=$enableHcpp ' ],
1449- if (testFlag) ...< String > ['--test-flag' ],
1450- if (debuggingEnabled) ...< String > [
1451- if (buildInfo.isDebug) ...< String > [
1452- ...< String > ['--enable-checked-mode' ],
1453- ...< String > ['--verify-entry-points' ],
1454- ],
1455- if (startPaused) ...< String > ['--start-paused' ],
1456- if (disableServiceAuthCodes) ...< String > ['--disable-service-auth-codes' ],
1457- if (disableServiceOriginCheck) ...< String > ['--disable-service-origin-check' ],
1458- if (dartFlags.isNotEmpty) ...< String > ['--dart-flags=$dartFlags ' ],
1459- if (useTestFonts) ...< String > ['--use-test-fonts' ],
1460- if (verboseSystemLogs) ...< String > ['--verbose-logging' ],
1461- ],
1462- };
1467+ final Map <String , Object ?> configs = _getAndroidEngineConfig ();
1468+ final args = < String > {};
1469+ for (final MapEntry <String , Object ?> entry in configs.entries) {
1470+ final Object ? value = entry.value;
1471+ if (entry.key == AndroidEngineCliFlags .enableImpeller ||
1472+ entry.key == AndroidEngineCliFlags .enableHcppAndSurfaceControl) {
1473+ args.add ('--${entry .key }=$value ' );
1474+ } else if (value is bool ) {
1475+ args.add (value ? '--${entry .key }' : '--${entry .key }=false' );
1476+ } else if (value is String ) {
1477+ args.add ('--${entry .key }=$value ' );
1478+ } else {
1479+ assert (false , 'Unsupported engine config value type ${value .runtimeType } for ${entry .key }' );
1480+ }
1481+ }
1482+ return args;
14631483 }
14641484
14651485 /// Retrieves Android engine shell arguments from the debugging options based on the
14661486 /// command line flags that are passed to the engine via the manifest as Intent extras.
14671487 List <String > getAndroidLaunchArgumentsAsIntentExtras () {
1468- return < String > [
1469- if (enableDartProfiling) ...< String > ['--ez' , 'enable-dart-profiling' , 'true' ],
1470- if (profileStartup) ...< String > ['--ez' , 'profile-startup' , 'true' ],
1471- if (enableSoftwareRendering) ...< String > ['--ez' , 'enable-software-rendering' , 'true' ],
1472- if (skiaDeterministicRendering) ...< String > ['--ez' , 'skia-deterministic-rendering' , 'true' ],
1473- if (traceSkia) ...< String > ['--ez' , 'trace-skia' , 'true' ],
1474- if (traceAllowlist != null ) ...< String > ['--es' , 'trace-allowlist' , traceAllowlist! ],
1475- if (traceSkiaAllowlist != null ) ...< String > [
1476- '--es' ,
1477- 'trace-skia-allowlist' ,
1478- traceSkiaAllowlist! ,
1479- ],
1480- if (traceSystrace) ...< String > ['--ez' , 'trace-systrace' , 'true' ],
1481- if (traceToFile != null ) ...< String > ['--es' , 'trace-to-file' , traceToFile! ],
1482- if (endlessTraceBuffer) ...< String > ['--ez' , 'endless-trace-buffer' , 'true' ],
1483- if (profileMicrotasks) ...< String > ['--ez' , 'profile-microtasks' , 'true' ],
1484- if (purgePersistentCache) ...< String > ['--ez' , 'purge-persistent-cache' , 'true' ],
1485- if (enableImpeller == ImpellerStatus .enabled) ...< String > ['--ez' , 'enable-impeller' , 'true' ],
1486- if (enableImpeller == ImpellerStatus .disabled) ...< String > [
1487- '--ez' ,
1488- 'enable-impeller' ,
1489- 'false' ,
1490- ],
1491- if (enableFlutterGpu) ...< String > ['--ez' , 'enable-flutter-gpu' , 'true' ],
1492- if (enableVulkanValidation) ...< String > ['--ez' , 'enable-vulkan-validation' , 'true' ],
1493- if (enableHcpp != null ) ...< String > ['--ez' , 'enable-hcpp-and-surface-control' , '$enableHcpp ' ],
1494- if (debuggingEnabled) ...< String > [
1495- if (buildInfo.isDebug) ...< String > [
1496- ...< String > ['--ez' , 'enable-checked-mode' , 'true' ],
1497- ...< String > ['--ez' , 'verify-entry-points' , 'true' ],
1498- ],
1499- if (startPaused) ...< String > ['--ez' , 'start-paused' , 'true' ],
1500- if (disableServiceAuthCodes) ...< String > ['--ez' , 'disable-service-auth-codes' , 'true' ],
1501- if (disableServiceOriginCheck) ...< String > ['--ez' , 'disable-service-origin-check' , 'true' ],
1502- if (dartFlags.isNotEmpty) ...< String > ['--es' , 'dart-flags' , dartFlags],
1503- if (useTestFonts) ...< String > ['--ez' , 'use-test-fonts' , 'true' ],
1504- if (verboseSystemLogs) ...< String > ['--ez' , 'verbose-logging' , 'true' ],
1505- if (testFlag) ...< String > ['--ez' , 'test-flag' , 'true' ],
1506- ],
1507- ];
1488+ final Map <String , Object ?> configs = _getAndroidEngineConfig ();
1489+ final args = < String > [];
1490+ for (final MapEntry <String , Object ?> entry in configs.entries) {
1491+ final Object ? value = entry.value;
1492+ if (value is bool ) {
1493+ args.addAll (< String > ['--ez' , entry.key, value.toString ()]);
1494+ } else if (value is String ) {
1495+ args.addAll (< String > ['--es' , entry.key, value]);
1496+ } else {
1497+ assert (false , 'Unsupported engine config value type ${value .runtimeType } for ${entry .key }' );
1498+ }
1499+ }
1500+ return args;
15081501 }
15091502}
15101503
0 commit comments