cargo apk
Tool for creating Android packages.
Installation
From crates.io:
cargo install cargo-apk
From source:
cargo install --path .
Commands
build
: Compiles the current packagerun
: Run a binary or example of the local packagegdb
: Start a gdb session attached to an adb device with symbols loaded
Manifest
cargo
supports the metadata
table for configurations for external tools like cargo apk
.
Following configuration options are supported by cargo apk
under [package.metadata.android]
:
# Name of your APK as shown in the app drawer and in the app switcher
= "APK Name"
# The target Android API level.
= 29
= 26
# Virtual path your application's icon for any mipmap level.
# If not specified, an icon will not be included in the APK.
= "@mipmap/ic_launcher"
# If set to true, makes the app run in full-screen, by adding the following line
# as an XML attribute to the manifest's <application> tag :
# android:theme="@android:style/Theme.DeviceDefault.NoActionBar.Fullscreen
# Defaults to false.
= false
# Set the minimum required OpenGL ES version.
# Defaults to [3, 1]
= [3, 0]
# Sets the applications screenOrientation.
# See https://developer.android.com/guide/topics/manifest/activity-element
# and look for `android:screenOrientation` for possible values
# Defaults to "unspecified" which makes the system pick an orientation and
# doesn't give you help with rotation.
= "sensorLandscape"
# Adds a uses-feature element to the manifest
# Supported keys: name, required
# See https://developer.android.com/guide/topics/manifest/uses-feature-element
[[]]
= "android.hardware.camera"
[[]]
= "android.hardware.vulkan.level"
= "1"
# Adds a uses-permission element to the manifest.
# Note that android_version 23 and higher, Android requires the application to request permissions at runtime.
# There is currently no way to do this using a pure NDK based application.
# See https://developer.android.com/guide/topics/manifest/uses-permission-element
[[]]
= "android.permission.WRITE_EXTERNAL_STORAGE"
= 18
# Specifies the array of targets to build for.
= [ "armv7-linux-androideabi", "aarch64-linux-android", "i686-linux-android", "x86_64-linux-android" ]
# Path to your application's resources folder.
# If not specified, resources will not be included in the APK
= "path/to/res_folder"
# Path to the folder containing your application's assets.
# If not specified, assets will not be included in the APK
= "path/to/assets_folder"
TODO: intent filters and application metadatas