devtools/madb: handle build variants explicitly and cache the project ids.
1) Now the sub-module name and the build variant name of an Android
project can be explicitly provided with "-module" and "-variant"
flags of madb start. When these are not specified, the first
available application module and the first build variant is chosen
with a warning message.
2) The returned project ids are now kept in a cache, so that they can
be reused without running Gradle scripts again. The cache is a map
of (variantKey, projectIds) pair, and implemented in id_cache.go.
Users can choose to clear the cache and extract the ids again by
providing "-clear-cache" flag.
3) madb start now also provides "-force-stop" flag which defaults to
true. Users can set it to false if they just want to bring the
running app to the front, instead of restarting the app.
Change-Id: I4bdfd34bf7710477a4ff2af3d16c36bec8d1860d
25 files changed