This provides a fast way to iterate on changes to a Flutter app that only
involve updates to Dart code and do not require a full build and install
of the FLX and APK
This splits flx.build() into two methods, flx.build() and
flx.assemble(). builD() now does the following:
1) constructs the manifest map by reading the manifest from the
file system
2) "compiles" the dart code into the snapshot file
3) Invokes assemble()
This allows external build toolchains to construct their own
manifest map (possibly using a different manifest syntax)
and create their own snapshot file
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.
SkyActivity now allows reloading application Dart code within an existing
activity. If a SkyActivity instance is already running, then passing
--no-full-restart will restart the Dart code without killing and restarting
the SkyShell application.
(full-restart will remain the default until the engine
that supports this is rolled out)
Also remove the obsolete --poke flag
Also fix a bug where the trace command may capture the wrong file
if multiple trace file paths are in the Android log buffer.
Previously we found a lower bound timestamp for the trace path log
by running the date command on the device and parsing the result on
the host. This could yield an inaccurate result if the device and
host are using different time zones.
The command will now obtain the most recent timestamp in the device's
time format by running logcat.
Turns out linux does have an ideviceinstaller package
however it doesn't contain idevice_id or any of the
other tools we use. Furthermore we don't have
xcrun or the rest of xcode on linux so we can't
manipulate simulators either.
No sense in printing out a warning that ios isn't supported
every time on linux, so I wrapped that block in osx only.
@chinmaygarde @devoncarew