Set up plumbing for getting relevant paths to the right places without too much global state.

`dart bin/sky_tools.dart --debug --sky-src-path=/path/to/sky/src/ install` now works.
diff --git a/packages/flutter_tools/lib/src/install.dart b/packages/flutter_tools/lib/src/install.dart
index d0b30d6..56583da 100644
--- a/packages/flutter_tools/lib/src/install.dart
+++ b/packages/flutter_tools/lib/src/install.dart
@@ -8,6 +8,7 @@
 
 import 'package:args/args.dart';
 
+import 'application_package.dart';
 import 'common.dart';
 import 'device.dart';
 
@@ -33,11 +34,14 @@
 
     bool installedSomewhere = false;
 
+    Map<BuildPlatform, ApplicationPackage> packages =
+        ApplicationPackageFactory.getAvailableApplicationPackages();
     if (android == null) {
       android = new AndroidDevice();
     }
-    if (android.isConnected()) {
-      installedSomewhere = installedSomewhere || android.installApp('', '', '');
+    ApplicationPackage androidApp = packages[BuildPlatform.android];
+    if (androidApp != null && android.isConnected()) {
+      installedSomewhere = installedSomewhere || android.installApp(androidApp);
     }
 
     if (installedSomewhere) {