# Ustad Mobile Android port
This is a normal gradle build and should open fine with Android studio. It includes the core and
sharedse modules.
### To build
(run from root project directory):
```
$ ./gradlew ':app-android:assembleDebug'
```
### To sign :
(run from root project directory):
```
$ cp keystore.properties.example keystore.properties
$ # Edit keystore.properties as required using text editor
$./gradlew ':app-android:assembleRelease'
```
### Build flavors
There are three flavors in the project:
* Vanilla: the base flavor. Supports SDK18+ and does not use multidex (the app on it's own does not
exceed 64K methods).
* DevMinApi21: SDK21+ only. This is recommended for development purposes - tests can be run without
the need to multidex.
* VanillaMultidex: SDK18+ and uses multidex. This is used to run tests on Android devices below SDK21.
### Tests
>$ ./gradlew connectedVanillamultidexDebugAndroidTest
Note: Espresso end-to-end tests are being updated.
### To use as a library in another app
This is a work in progress and has not been tested recently. The consuming app can set a manifest
preference "com.ustadmobile.core.appconfig" to set the path to the appconfig to override the
defaults.
Add Ustad Mobile's maven repo to your build.gradle file:
```
maven {
url "http://devserver2.ustadmobile.com/repo-mvn"
}
```
Add the Ustad Mobile app library as a dependency to build.gradle:
### Known issues
* InputMethodManager memory leak on debug variant: known issue caused by pre-v10 Android
[as per this report](https://github.com/square/leakcanary/issues/256).