flutter start no longer depends on a pre-built SkyShell.apk. It builds a
new one, as long as an AndroidManifest.xml exists.
We rebuild the .apk every time either AndroidManifest.xml or
flutter.yaml changes.
Third-party libraries can now provide their own mojo services. They do
so by adding a config.yaml file to their pub package which contains
- a list of service names and java classes which handles that service's
registration.
- a list of pre-built .jar files to statically link with the app's shell
when building the app.
I screwed up my last change, turns out the package command
is sensitive about having all of its flags before args.
Also made it possible to control the resources directory
from the command line per the review comments in the previous change.
@jason-simmons
I also made it so that `flutter apk -v` showed what
commands it was running by moving off of a custom _run
function onto the base/process.dart runChecked shared
by other commands.
@jason-simmons
1) Moved basic utility code into base/ directory to make it clear which code
doesn't depend on Flutter-specific knowldge.
2) Move the CommandRunner subclasses into a runner/ directory because these
aren't commands themselves.