android: add `avd.py start` subcommand.

Bug: 922145
Change-Id: I4403bd2a500297bb1c1166dc87900e065f10a060
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1913970
Auto-Submit: John Budorick <jbudorick@chromium.org>
Reviewed-by: Yun Liu <yliuyliu@google.com>
Commit-Queue: John Budorick <jbudorick@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#715071}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: bcf164cac37e6d7b8338c3f5e1d6637466089ab1
diff --git a/avd/avd.py b/avd/avd.py
index 2889e0c..3236b0b 100755
--- a/avd/avd.py
+++ b/avd/avd.py
@@ -78,7 +78,18 @@
 
   create_parser.set_defaults(func=create_cmd)
 
-  # TODO(jbudorick): Expose `start` as a subcommand.
+  start_parser = subparsers.add_parser(
+      'start',
+      help='Start an AVD instance with the given config.')
+  add_common_arguments(start_parser)
+
+  def start_cmd(args):
+    inst = avd.AvdConfig(args.avd_config).CreateInstance()
+    inst.Start(read_only=False, snapshot_save=True)
+    print('%s started (pid: %d)' % (str(inst), inst._emulator_proc.pid))
+    return 0
+
+  start_parser.set_defaults(func=start_cmd)
 
   args = parser.parse_args(raw_args)
   logging_common.InitializeLogging(args)