Just a demo, see the commit #4 .
- Android Studio
- Android SDK Platform 31
- Android NDK 24.0.8215888
- Android SDK Build-Tools 31.0.0
- Android SDK Command-line Tools
- Android SDK Platform-Tools
Install rust on your PC from rustup, then add some Android targets (arm64, arm, x86_64, x86) for rust.
rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android
Uses rust-android-gradle plugin, so is built with the command:
gradlew cargoBuild
# build release version
gradlew assembleRelease
Set
JAVA_HOME
environment variableWindows: set JAVA_HOME="C:\Program Files\Android\Android Studio\jbr" macOS: export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home/ Linux: (needn't to anything, using the system settings.)
In src/lib.rs
you need to name the function according to the following naming convention in order to make it available in Java
.
If the Java function is called greeting
and it is saved in a file named RustBindings.java
pulled from package com.example.myrustapp
then in Rust the function name is:
Java | package name | filename | function name |
---|---|---|---|
Java | com_example_myrustapp | RustBindings | greeting |
Which would look like this:
Java_com_example_myrustapp_RustBindings_greeting(...)
Install Python on your PC.
In
macOS
Monterey 12.3 and above, python was removed by Apple, you must install Python3 by yourself, then run this command to make python3 as python.ln -s -f /usr/local/bin/python3 /usr/local/bin/python