add missing type parameter on methods (#22096)

diff --git a/packages/flutter_tools/lib/src/android/android_device.dart b/packages/flutter_tools/lib/src/android/android_device.dart
index 3395442..9f9545b 100644
--- a/packages/flutter_tools/lib/src/android/android_device.dart
+++ b/packages/flutter_tools/lib/src/android/android_device.dart
@@ -474,7 +474,7 @@
   @override
   Future<bool> stopApp(ApplicationPackage app) {
     final List<String> command = adbCommandForDevice(<String>['shell', 'am', 'force-stop', app.id]);
-    return runCommandAndStreamOutput(command).then((int exitCode) => exitCode == 0);
+    return runCommandAndStreamOutput(command).then<bool>((int exitCode) => exitCode == 0);
   }
 
   @override
@@ -673,8 +673,8 @@
     runCommand(device.adbCommandForDevice(args)).then<Null>((Process process) {
       _process = process;
       const Utf8Decoder decoder = Utf8Decoder(allowMalformed: true);
-      _process.stdout.transform(decoder).transform(const LineSplitter()).listen(_onLine);
-      _process.stderr.transform(decoder).transform(const LineSplitter()).listen(_onLine);
+      _process.stdout.transform<String>(decoder).transform<String>(const LineSplitter()).listen(_onLine);
+      _process.stderr.transform<String>(decoder).transform<String>(const LineSplitter()).listen(_onLine);
       _process.exitCode.whenComplete(() {
         if (_linesController.hasListener)
           _linesController.close();
diff --git a/packages/flutter_tools/lib/src/android/android_emulator.dart b/packages/flutter_tools/lib/src/android/android_emulator.dart
index d0ea02d..6a0e24d 100644
--- a/packages/flutter_tools/lib/src/android/android_emulator.dart
+++ b/packages/flutter_tools/lib/src/android/android_emulator.dart
@@ -112,13 +112,13 @@
   final Map<String, String> results = <String, String>{};
 
   final Iterable<List<String>> properties = contents
-      .map((String l) => l.trim())
+      .map<String>((String l) => l.trim())
       // Strip blank lines/comments
       .where((String l) => l != '' && !l.startsWith('#'))
       // Discard anything that isn't simple name=value
       .where((String l) => l.contains('='))
       // Split into name/value
-      .map((String l) => l.split('='));
+      .map<List<String>>((String l) => l.split('='));
 
   for (List<String> property in properties) {
     results[property[0].trim()] = property[1].trim();
diff --git a/packages/flutter_tools/lib/src/android/android_sdk.dart b/packages/flutter_tools/lib/src/android/android_sdk.dart
index 72344d2..4c9ea22 100644
--- a/packages/flutter_tools/lib/src/android/android_sdk.dart
+++ b/packages/flutter_tools/lib/src/android/android_sdk.dart
@@ -382,7 +382,7 @@
     }
 
     // Match up platforms with the best corresponding build-tools.
-    _sdkVersions = platforms.map((Directory platformDir) {
+    _sdkVersions = platforms.map<AndroidSdkVersion>((Directory platformDir) {
       final String platformName = platformDir.basename;
       int platformVersion;
 
@@ -394,7 +394,7 @@
           final String buildProps = platformDir.childFile('build.prop').readAsStringSync();
           final String versionString = const LineSplitter()
               .convert(buildProps)
-              .map(_sdkVersionRe.firstMatch)
+              .map<Match>(_sdkVersionRe.firstMatch)
               .firstWhere((Match match) => match != null)
               .group(1);
           platformVersion = int.parse(versionString);
diff --git a/packages/flutter_tools/lib/src/android/android_studio.dart b/packages/flutter_tools/lib/src/android/android_studio.dart
index 9b416d7..4c3dc98 100644
--- a/packages/flutter_tools/lib/src/android/android_studio.dart
+++ b/packages/flutter_tools/lib/src/android/android_studio.dart
@@ -188,7 +188,7 @@
     }
 
     return candidatePaths
-        .map((FileSystemEntity e) => AndroidStudio.fromMacOSBundle(e.path))
+        .map<AndroidStudio>((FileSystemEntity e) => AndroidStudio.fromMacOSBundle(e.path))
         .where((AndroidStudio s) => s != null)
         .toList();
   }
diff --git a/packages/flutter_tools/lib/src/android/android_studio_validator.dart b/packages/flutter_tools/lib/src/android/android_studio_validator.dart
index fd59e4c..3302e94 100644
--- a/packages/flutter_tools/lib/src/android/android_studio_validator.dart
+++ b/packages/flutter_tools/lib/src/android/android_studio_validator.dart
@@ -22,7 +22,7 @@
       validators.add(NoAndroidStudioValidator());
     } else {
       validators.addAll(studios
-          .map((AndroidStudio studio) => AndroidStudioValidator(studio)));
+          .map<DoctorValidator>((AndroidStudio studio) => AndroidStudioValidator(studio)));
     }
     return validators;
   }
@@ -46,11 +46,11 @@
     if (_studio.isValid) {
       type = ValidationType.installed;
       messages.addAll(_studio.validationMessages
-          .map((String m) => ValidationMessage(m)));
+          .map<ValidationMessage>((String m) => ValidationMessage(m)));
     } else {
       type = ValidationType.partial;
       messages.addAll(_studio.validationMessages
-          .map((String m) => ValidationMessage.error(m)));
+          .map<ValidationMessage>((String m) => ValidationMessage.error(m)));
       messages.add(ValidationMessage(
           'Try updating or re-installing Android Studio.'));
       if (_studio.configured != null) {
diff --git a/packages/flutter_tools/lib/src/android/android_workflow.dart b/packages/flutter_tools/lib/src/android/android_workflow.dart
index d3e4285..2a532a0 100644
--- a/packages/flutter_tools/lib/src/android/android_workflow.dart
+++ b/packages/flutter_tools/lib/src/android/android_workflow.dart
@@ -127,7 +127,7 @@
 
     if (validationResult.isNotEmpty) {
       // Android SDK is not functional.
-      messages.addAll(validationResult.map((String message) {
+      messages.addAll(validationResult.map<ValidationMessage>((String message) {
         return ValidationMessage.error(message);
       }));
       messages.add(ValidationMessage(
@@ -200,13 +200,13 @@
     );
     process.stdin.write('n\n');
     final Future<void> output = process.stdout
-      .transform(const Utf8Decoder(allowMalformed: true))
-      .transform(const LineSplitter())
+      .transform<String>(const Utf8Decoder(allowMalformed: true))
+      .transform<String>(const LineSplitter())
       .listen(_onLine)
       .asFuture<void>(null);
     final Future<void> errors = process.stderr
-      .transform(const Utf8Decoder(allowMalformed: true))
-      .transform(const LineSplitter())
+      .transform<String>(const Utf8Decoder(allowMalformed: true))
+      .transform<String>(const LineSplitter())
       .listen(_onLine)
       .asFuture<void>(null);
     try {