Previous change meant we never had universal APKs but they are useful
This enables them again if you send a command-line toggle in, and then
uses the toggle to upload builds to github
Note that ContentProviderTest needed a tweak as Manifest class
is no longer generated correctly, we are using the second method
to handle it, as described here:
https://developer.android.com/studio/releases/gradle-plugin#agp-missing-manifest
Also, lint in 3.6 is apparently a little stricter on NewApi checks.
For the CameraException I verified that the camera enumerated fine
on API18 which is below the API19 warning they emitted where things might
crash just from attempting to touch the class
jacoco 0.8.4 -> 0.8.5 started failing fast for all errors, but
it turns out that there were certain configurations (present in
typical android instrumented test situations) where certain failures
(like inability to write /jacoco.exec) had no consequence because actual
output went to a different directory (like /data/data/<package>/**/*.ec)
solution is to package a properties file that instructs the jacoco-agent
used to boot the app to not attempt it's normal output
Remove JaCoCo from build script dependencies as there is no use
of it and it was using a different version than JaCoCo used
for test execution.
Also fix some clumsy Gradle usages:
- duplicate keys in gradle.properties
- casting string jacocoVersion property to string
Created a variable and used it for the required secondary locations
The project-level version definition is required or jacocoAnt gets the wrong version
The android-block version definition is required or the Jacoco agent is the wrong version
- de-couple api + AnkiDroid by making sure all evaulation may be done separately
- fork and incremental compile
- scale concurrent tests by CPU count, mindful of containerization
All of these are intended to have no impact on CI or small machines
But if you have a lot of cores and RAM and run tests a lot (my case) you feel this
There was one optimization that didn't pan out - setting the heap big enough to
dex in process - but other than this is the full suite of recommended gradle optimizations
- fix api gradle deprecation, add warn comment in gradle wrapper
- buildtools 27.0.3 needs to be added w/license accepted
- install SDK API 16 to match emulator API 16, remove extra tools
- tools components entry twice per Travis docs
- only including build-tools 26.0.2 as it is default per my read
- only including one android API for the build
- removing non-existent extra-android-support
- changing from API-22 emulator to API-16 per performance documentation on web
- removing "no-skin" emulator argument as it is not supported
- upgrade to gradle 4.5.1 / gradle plugin 3.1.2
- alter gradle dependencies to modern fine-grained declarations
- move api build targetSdk to match main build targetSdk