argumentBuilder property

  1. @override
List<String> get argumentBuilder
override

Builds the command-line arguments list for the Android build process.

Returns a list of command-line arguments to be passed to the Flutter build command. Combines base build arguments with Android-specific options based on the configuration.

Android-specific arguments added:

  • --split-per-abi - When splitPerAbi is true and binary type is APK
  • --config-only - When only configuration generation is needed
  • --track-widget-creation / --no-track-widget-creation - Widget tracking control
  • --android-skip-build-dependency-validation - Dependency validation control
  • --analyze-size / --no-analyze-size - Size analysis control
  • --ignore-deprecation - Deprecation warning control
  • --obfuscate / --no-obfuscate - Code obfuscation control
  • --target-platform - Target platform specification
  • --android-project-arg - Additional Android project arguments
  • --code-size-directory - Size analysis output directory
  • --split-debug-info - Debug info storage path

Implementation

@override
List<String> get argumentBuilder => super.argumentBuilder
  ..addAll([
    // Add APK splitting only for APK binary type
    if (splitPerAbi && binaryType == 'apk') '--split-per-abi',

    // Configuration-only build
    if (configOnly == true) '--config-only',

    // Widget creation tracking control
    if (trackWidgetCreation != null)
      if (trackWidgetCreation == true)
        '--track-widget-creation'
      else
        '--no-track-widget-creation',

    // Android build dependency validation control
    if (androidSkipBuildDependencyValidation != null)
      if (androidSkipBuildDependencyValidation == true)
        '--android-skip-build-dependency-validation'
      else
        '--no-android-skip-build-dependency-validation',

    // Size analysis control
    if (analyzeSize != null)
      if (analyzeSize == true) '--analyze-size' else '--no-analyze-size',

    // Deprecation warning control
    if (ignoreDeprecation != null)
      if (ignoreDeprecation == true) '--ignore-deprecation',

    // Code obfuscation control
    if (obfuscate != null)
      if (obfuscate == true) '--obfuscate' else '--no-obfuscate',

    // Target platform specification
    if (targetPlatform != null) '--target-platform=$targetPlatform',

    // Additional Android project arguments
    if (androidProjectArg != null) '--android-project-arg=$androidProjectArg',

    // Code size analysis output directory
    if (codeSizeDirectory != null) '--code-size-directory=$codeSizeDirectory',

    // Debug info storage path
    if (splitDebugInfo != null) '--split-debug-info=$splitDebugInfo',
  ]);
set argumentBuilder (List<String> value)
inherited

Raw list of command-line arguments before variable processing.

Subclasses should populate this list with the appropriate arguments for their specific job type.

Implementation

List<String> argumentBuilder = [];