Skip first time full dill transfer (#21133)

* Don't sync first full kernel file.

* Update the comment
diff --git a/packages/flutter_tools/lib/src/devfs.dart b/packages/flutter_tools/lib/src/devfs.dart
index fd47054..0594742 100644
--- a/packages/flutter_tools/lib/src/devfs.dart
+++ b/packages/flutter_tools/lib/src/devfs.dart
@@ -509,16 +509,20 @@
       outputPath:  dillOutputPath ?? fs.path.join(getBuildDirectory(), 'app.dill'),
       packagesFilePath : _packagesFilePath,
     );
-    final String compiledBinary = compilerOutput?.outputFilename;
-    if (compiledBinary != null && compiledBinary.isNotEmpty) {
-      final Uri entryUri = fs.path.toUri(projectRootPath != null
-        ? fs.path.relative(pathToReload, from: projectRootPath)
-        : pathToReload,
-      );
-      if (!dirtyEntries.containsKey(entryUri)) {
-        final DevFSFileContent content = DevFSFileContent(fs.file(compiledBinary));
-        dirtyEntries[entryUri] = content;
-        numBytes += content.size;
+    // Don't send full kernel file that would overwrite what VM already
+    // started loading from.
+    if (!bundleFirstUpload) {
+      final String compiledBinary = compilerOutput?.outputFilename;
+      if (compiledBinary != null && compiledBinary.isNotEmpty) {
+        final Uri entryUri = fs.path.toUri(projectRootPath != null
+          ? fs.path.relative(pathToReload, from: projectRootPath)
+          : pathToReload,
+        );
+        if (!dirtyEntries.containsKey(entryUri)) {
+          final DevFSFileContent content = DevFSFileContent(fs.file(compiledBinary));
+          dirtyEntries[entryUri] = content;
+          numBytes += content.size;
+        }
       }
     }
     if (dirtyEntries.isNotEmpty) {