Crate android_build
source ·Expand description
Supports Android-specific Java build and run tasks in Rust projects from a Cargo build script.
§Tools exposed by this crate
§Environment variables in use
ANDROID_HOME
orANDROID_SDK_ROOT
: path to the Android SDK directory.ANDROID_BUILD_TOOLS_VERSION
: the version of the Android build tools.- Examples:
33.0.1
,34.0.0-rc2
. - This must be fully specified all in one string.
- Examples:
ANDROID_PLATFORM
,ANDROID_API_LEVEL
, orANDROID_SDK_VERSION
: the platform version string (aka API level, SDK version) being targeted for compilation.- All three of these environment variables are treated identically.
- Examples:
34
,android-34
,android-33
,33
. - If an SDK extension must be specified, use the full string with the
android
prefix like so:android-33-ext4
. - This may or may not include the SDK extension level as a suffix
(see
ANDROID_SDK_EXTENSION
below).
ANDROID_SDK_EXTENSION
: the extension of the Android SDK.- To specify
android-33-ext4
, this can be set to-ext4
,ext4
, or just4
. All of these will be treated identically. - If
ANDROID_PLATFORM
/ANDROID_API_LEVEL
/ANDROID_SDK_VERSION
already includes an extension, thenANDROID_SDK_EXTENSION
will be ignored.
- To specify
ANDROID_D8_JAR
: the path to thed8.jar
file.ANDROID_JAR
: the path to theandroid.jar
file.JAVA_HOME
: the Java SDK directory.
§Acknowledgments
This crate simplifies some code found in other crates:
dirs-sys
for the Windows-specific home directory lookup.java-locator
for finding the Java home directory on macOS, Linux, and Windows.jerk
for arguments that can be passed intojava
andjavac
commands.
Structs§
- Debug information to include in the output of a
javac
build. - A builder for a
javac
command that can be invoked. - A builder for a
java
command that can be invoked.
Constants§
Traits§
- An extension trait for checking if a path exists.
Functions§
- Returns the path to the
d8.jar
file for the given build tools version. - Returns the path to the
android.jar
file for the given API level. - Returns the path to the Android SDK directory.
- Returns the path to the
java
executable by looking for$JAVA_HOME/bin/java
. - Returns the JAVA_HOME path by attempting to discover it.
- Returns the path to the
javac
compiler by looking for$JAVA_HOME/bin/javac
.