Use `fx get-build-dir` and `fx netaddr --fuchsia` to make fuchsia_reload more convenient. (#14854)

diff --git a/packages/flutter_tools/lib/src/vmservice.dart b/packages/flutter_tools/lib/src/vmservice.dart
index 8624be7..a97ef68 100644
--- a/packages/flutter_tools/lib/src/vmservice.dart
+++ b/packages/flutter_tools/lib/src/vmservice.dart
@@ -248,6 +248,8 @@
   }
 
   Future<Null> waitForViews({int attempts = 5, int attemptSeconds = 1}) async {
+    if (!vm.isFlutterEngine)
+      return;
     await vm.refreshViews();
     for (int i = 0; (vm.firstView == null) && (i < attempts); i++) {
       // If the VM doesn't yet have a view, wait for one to show up.
@@ -587,6 +589,7 @@
       _heapAllocatedMemoryUsage = map['_heapAllocatedMemoryUsage'];
     }
     _maxRSS = map['_maxRSS'];
+    _embedder = map['_embedder'];
 
     // Remove any isolates which are now dead from the isolate cache.
     _removeDeadIsolates(map['isolates']);
@@ -615,6 +618,12 @@
   int _maxRSS;
   int get maxRSS => _maxRSS == null ? 0 : _maxRSS;
 
+  // The embedder's name, Flutter or dart_runner.
+  String _embedder;
+  String get embedder => _embedder;
+  bool get isFlutterEngine => embedder == 'Flutter';
+  bool get isDartRunner => embedder == 'dart_runner';
+
   int _compareIsolates(Isolate a, Isolate b) {
     final DateTime aStart = a.startTime;
     final DateTime bStart = b.startTime;
@@ -850,6 +859,8 @@
   }
 
   Future<Null> refreshViews() async {
+    if (!isFlutterEngine)
+      return;
     _viewCache.clear();
     await vmService.vm.invokeRpc('_flutter.listViews', timeout: kLongRequestTimeout);
   }