diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart index a0ff30ba7c..7f6c4e428d 100644 --- a/packages/flutter_tools/lib/src/android/android_device.dart +++ b/packages/flutter_tools/lib/src/android/android_device.dart @@ -269,7 +269,7 @@ class AndroidDevice extends Device { if (route != null) cmd.addAll(['--es', 'route', route]); if (options.debuggingEnabled) { - if (options.checked) + if (options.buildMode == BuildMode.debug) cmd.addAll(['--ez', 'enable-checked-mode', 'true']); if (options.startPaused) cmd.addAll(['--ez', 'start-paused', 'true']); @@ -334,6 +334,7 @@ class AndroidDevice extends Device { String localBundlePath = await flx.buildFlx( mainPath: mainPath, + precompiledSnapshot: isAotBuildMode(debuggingOptions.buildMode), includeRobotoFonts: false ); diff --git a/packages/flutter_tools/lib/src/commands/build_apk.dart b/packages/flutter_tools/lib/src/commands/build_apk.dart index 91e9718f89..cb6443f927 100644 --- a/packages/flutter_tools/lib/src/commands/build_apk.dart +++ b/packages/flutter_tools/lib/src/commands/build_apk.dart @@ -452,7 +452,10 @@ Future buildAndroid( }; } - if (!force && !_needsRebuild(outputFile, manifest, extraFiles)) { + // In debug (JIT) mode, the snapshot lives in the FLX, and we can skip the APK + // rebuild if none of the resources in the APK are stale. + // In AOT modes, the snapshot lives in the APK, so the APK must be rebuilt. + if (!isAotBuildMode(buildMode) && !force && !_needsRebuild(outputFile, manifest, extraFiles)) { printTrace('APK up to date; skipping build step.'); return 0; } diff --git a/packages/flutter_tools/lib/src/commands/drive.dart b/packages/flutter_tools/lib/src/commands/drive.dart index b287e9f1f7..f39f25463d 100644 --- a/packages/flutter_tools/lib/src/commands/drive.dart +++ b/packages/flutter_tools/lib/src/commands/drive.dart @@ -269,8 +269,7 @@ Future startApp(DriveCommand command, BuildMode buildMode) async { mainPath: mainPath, route: command.route, debuggingOptions: new DebuggingOptions.enabled( - // TODO(devoncarew): Change this to 'buildMode == BuildMode.debug'. - checked: command.argResults['checked'], + buildMode, startPaused: true, observatoryPort: command.debugPort ), diff --git a/packages/flutter_tools/lib/src/commands/listen.dart b/packages/flutter_tools/lib/src/commands/listen.dart index d58e633cff..73ec0faaff 100644 --- a/packages/flutter_tools/lib/src/commands/listen.dart +++ b/packages/flutter_tools/lib/src/commands/listen.dart @@ -8,7 +8,6 @@ import 'dart:io'; import '../base/os.dart'; import '../base/process.dart'; import '../device.dart'; -import '../build_info.dart'; import '../globals.dart'; import 'run.dart'; @@ -63,7 +62,7 @@ class ListenCommand extends RunCommandBase { target: target, install: firstTime, stop: true, - debuggingOptions: new DebuggingOptions.enabled(checked: getBuildMode() == BuildMode.debug), + debuggingOptions: new DebuggingOptions.enabled(getBuildMode()), traceStartup: traceStartup, route: route ); diff --git a/packages/flutter_tools/lib/src/commands/run.dart b/packages/flutter_tools/lib/src/commands/run.dart index def7580ed9..e8ece07543 100644 --- a/packages/flutter_tools/lib/src/commands/run.dart +++ b/packages/flutter_tools/lib/src/commands/run.dart @@ -24,13 +24,6 @@ abstract class RunCommandBase extends FlutterCommand { RunCommandBase() { addBuildModeFlags(); - // TODO(devoncarew): Remove in favor of --debug/--profile/--release. - argParser.addFlag('checked', - negatable: true, - defaultsTo: true, - help: 'Run the application in checked ("slow") mode.\n' - 'Note: this flag will be removed in favor of the --debug/--profile/--release flags.'); - argParser.addFlag('trace-startup', negatable: true, defaultsTo: false, @@ -112,11 +105,10 @@ class RunCommand extends RunCommandBase { DebuggingOptions options; if (getBuildMode() != BuildMode.debug) { - options = new DebuggingOptions.disabled(); + options = new DebuggingOptions.disabled(getBuildMode()); } else { options = new DebuggingOptions.enabled( - // TODO(devoncarew): Change this to 'getBuildMode() == BuildMode.debug'. - checked: argResults['checked'], + getBuildMode(), startPaused: argResults['start-paused'], observatoryPort: debugPort ); diff --git a/packages/flutter_tools/lib/src/device.dart b/packages/flutter_tools/lib/src/device.dart index 519cd81b1a..72512295bd 100644 --- a/packages/flutter_tools/lib/src/device.dart +++ b/packages/flutter_tools/lib/src/device.dart @@ -225,23 +225,21 @@ abstract class Device { } class DebuggingOptions { - DebuggingOptions.enabled({ - this.checked: true, + DebuggingOptions.enabled(this.buildMode, { this.startPaused: false, this.observatoryPort, this.diagnosticPort }) : debuggingEnabled = true; - DebuggingOptions.disabled() : + DebuggingOptions.disabled(this.buildMode) : debuggingEnabled = false, - checked = false, startPaused = false, observatoryPort = null, diagnosticPort = null; final bool debuggingEnabled; - final bool checked; + final BuildMode buildMode; final bool startPaused; final int observatoryPort; final int diagnosticPort; diff --git a/packages/flutter_tools/lib/src/ios/simulators.dart b/packages/flutter_tools/lib/src/ios/simulators.dart index 02e47b11b6..c6994ad03b 100644 --- a/packages/flutter_tools/lib/src/ios/simulators.dart +++ b/packages/flutter_tools/lib/src/ios/simulators.dart @@ -457,7 +457,7 @@ class IOSSimulator extends Device { ]; if (debuggingOptions.debuggingEnabled) { - if (debuggingOptions.checked) + if (debuggingOptions.buildMode == BuildMode.debug) args.add("--enable-checked-mode"); if (debuggingOptions.startPaused) args.add("--start-paused");