make the apk building part of flutter run optional (#5301)

diff --git a/packages/flutter_tools/lib/src/run.dart b/packages/flutter_tools/lib/src/run.dart
index d921b71..1b4f2e8 100644
--- a/packages/flutter_tools/lib/src/run.dart
+++ b/packages/flutter_tools/lib/src/run.dart
@@ -36,14 +36,19 @@
   bool benchmark;
 
   @override
-  Future<int> run({ Completer<int> observatoryPortCompleter, String route }) {
+  Future<int> run({
+    Completer<int> observatoryPortCompleter,
+    String route,
+    bool shouldBuild: true
+  }) {
     // Don't let uncaught errors kill the process.
     return runZoned(() {
       return _run(
         traceStartup: traceStartup,
         benchmark: benchmark,
         observatoryPortCompleter: observatoryPortCompleter,
-        route: route
+        route: route,
+        shouldBuild: shouldBuild
       );
     }, onError: (dynamic error, StackTrace stackTrace) {
       printError('Exception from flutter run: $error', stackTrace);
@@ -88,7 +93,8 @@
     bool traceStartup: false,
     bool benchmark: false,
     Completer<int> observatoryPortCompleter,
-    String route
+    String route,
+    bool shouldBuild: true
   }) async {
     _mainPath = findMainDartFile(target);
     if (!FileSystemEntity.isFileSync(_mainPath)) {
@@ -113,7 +119,7 @@
     Stopwatch startTime = new Stopwatch()..start();
 
     // TODO(devoncarew): We shouldn't have to do type checks here.
-    if (device is AndroidDevice) {
+    if (shouldBuild && device is AndroidDevice) {
       printTrace('Running build command.');
 
       int result = await buildApk(