rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
Create local.properties
file (see local.properties.example
for examples).
Create .profile
file (see .profile.example
for examples).
# configure env (JAVA_HOME, ANDROID_HOME, PATH)
source .profile
# generate rust bindings
./gradlew generateUniFFIBindings
# build rust library (debug)
GRADLE_CARGO_PROFILE=debug ./gradlew cargoBuild
# build rust library (release)
./gradlew cargoBuild
# build apk (debug)
./gradlew assembleDebug
# build apk (release)
./gradlew assembleRelease
# check the app size
ls -lh app/build/outputs/apk/release/app-release.apk
# clean
./gradlew clean
# clean
./gradlew clean
# generate rust bindings
./gradlew generateUniFFIBindings
# build rust library (release)
GRADLE_CARGO_PROFILE=release ./gradlew cargoBuild
# build app bundle (release)
./gradlew bundleRelease
# check the app size
ls -lh ./app/build/outputs/bundle/release/app-release.aab
Install ktlint
:
curl -sSLO https://github.com/pinterest/ktlint/releases/download/0.49.1/ktlint && chmod a+x ktlint && sudo mv ktlint /usr/local/bin
Format code:
ktlint -F app/src
# list emulators
emulator -list-avds
# start an emulator
emulator @Pixel_4_API_30
PhotoView library is not hosted on Maven Central and there were problems with jitpack.io. The library was built locally and jar was added to libs.
git clone https://github.com/Baseflow/PhotoView.git
cd PhotoView
git checkout 565505d
# use java 8
export ANDROID_HOME=$HOME/Library/Android/sdk
sed -i "s/version = '2.3.0'/version = '565505d5cb'/" photoview/build.gradle
./gradlew --no-daemon -Dmaven.repo.local=/PATH/TO/vault-android/app/libs publishToMavenLocal