A self-contained Android APK builder that runs entirely on Android, with Java, JNI/C++, multidex, resource compilation, signing, and NDK support.
Kotlin
4
7 commits
updated Sep 6, 2026
Get Vexel to 5 ⭐ and the next update will be released!
Vexel currently has 4 ⭐ — one more and I'll start working on the next release.
Every milestone unlocks a new Vexel update. 👀
Current goal: 5 Starts
Let's see how far Vexel can go!
Vexel is a lightweight, self-contained Android APK builder written in Kotlin. It is designed to build Android applications directly on Android devices without requiring Android Studio, Gradle, or a desktop computer.
Vexel focuses on simplicity, portability, and speed while remaining powerful enough to support Java, Kotlin, and native C/C++ development.
Why Vexel?
Most Android build systems are designed for desktop operating systems and require large dependencies such as Android Studio and Gradle.
Vexel takes a different approach:
The goal of Vexel is to provide a minimal but practical Android build environment that can run almost anywhere.
Android Application Building
Bundled Android platform:
A different android.jar can be configured through config.toml.
Native Development (NDK)
Supported ABIs:
Self-Contained Runtime
Vexel bundles its own dependencies reducing host system dependencies on the host environment.
Benefits:
Portable Design
Vexel primarily targets:
Experimental support:
Also supported:
Installation
bin directory to your PATH.vexel version
Project Structure
Typical project layout:
MyApp/
├── src/
│ ├── java/
│ ├── kotlin/
│ ├── res/
│ ├── cpp/
│ │ └── native.build
│ └── AndroidManifest.xml
│
├── vexel.build
└── build/
Build Configuration
vexel.build
Controls application-level settings:
[app]
name = "My App"
package = "com.example.app"
version_code = 1
version_name = "1.0"
[sdk]
min = 21
target = 34
[ndk]
enabled = true
cpp = true
api = 29
abi = "arm64-v8a armeabi-v7a x86_64"
native.build
Controls native library compilation:
[lib-native]
src = "cpp/src"
include = "cpp/include"
cpp = true
link = "android log"
flags = "-O2 -Wall -s"
Usage
Creating a New Project
To create a new project interactively, run:
vexel new
Then list your actual template names.
For example:
Java Activity
Kotlin Activity
Native Activity (Java)
Native Activity (Kotlin)
A specific template can also be selected directly:
vexel new <template>
Select the desired project template when prompted.
Configuring the Project
After creating the project:
Building the Application
Once your project is ready, build it using:
vexel build
The build process will generate an Android APK from your project source code. The final generated APK is placed in:
build/output/
The APK filename is generated from the project/application name.
How Vexel Works
The build process is intentionally straightforward:
Design Goals
Vexel is intended to be approachable for developers who want direct control over the Android build process.
Credits
Vexel would not be possible without the following projects and tools.
Java Runtime
Android Platform
android.jar)Kotlin
Android Build Tools
Provided by Android Build Tools and AOSP.
Toml parser
XML parser
Zip editor
Native Toolchain
Special thanks to:
for providing Android-compatible Android NDK builds used by Vexel.
License
See LICENSE for licensing information.
Status
Vexel is an actively developed experimental project.
Current release: v0.4.0
While stable for many use cases, APIs, project layouts, and build features may change between releases.
7 commits
Kotlin
100.0%
A self-contained Android APK builder that runs entirely on Android, with Java, JNI/C++, multidex, resource compilation, signing, and NDK support.
Kotlin
4
7 commits
updated Sep 6, 2026
Get Vexel to 5 ⭐ and the next update will be released!
Vexel currently has 4 ⭐ — one more and I'll start working on the next release.
Every milestone unlocks a new Vexel update. 👀
Current goal: 5 Starts
Let's see how far Vexel can go!
Vexel is a lightweight, self-contained Android APK builder written in Kotlin. It is designed to build Android applications directly on Android devices without requiring Android Studio, Gradle, or a desktop computer.
Vexel focuses on simplicity, portability, and speed while remaining powerful enough to support Java, Kotlin, and native C/C++ development.
Why Vexel?
Most Android build systems are designed for desktop operating systems and require large dependencies such as Android Studio and Gradle.
Vexel takes a different approach:
The goal of Vexel is to provide a minimal but practical Android build environment that can run almost anywhere.
Android Application Building
Bundled Android platform:
A different android.jar can be configured through config.toml.
Native Development (NDK)
Supported ABIs:
Self-Contained Runtime
Vexel bundles its own dependencies reducing host system dependencies on the host environment.
Benefits:
Portable Design
Vexel primarily targets:
Experimental support:
Also supported:
Installation
bin directory to your PATH.vexel version
Project Structure
Typical project layout:
MyApp/
├── src/
│ ├── java/
│ ├── kotlin/
│ ├── res/
│ ├── cpp/
│ │ └── native.build
│ └── AndroidManifest.xml
│
├── vexel.build
└── build/
Build Configuration
vexel.build
Controls application-level settings:
[app]
name = "My App"
package = "com.example.app"
version_code = 1
version_name = "1.0"
[sdk]
min = 21
target = 34
[ndk]
enabled = true
cpp = true
api = 29
abi = "arm64-v8a armeabi-v7a x86_64"
native.build
Controls native library compilation:
[lib-native]
src = "cpp/src"
include = "cpp/include"
cpp = true
link = "android log"
flags = "-O2 -Wall -s"
Usage
Creating a New Project
To create a new project interactively, run:
vexel new
Then list your actual template names.
For example:
Java Activity
Kotlin Activity
Native Activity (Java)
Native Activity (Kotlin)
A specific template can also be selected directly:
vexel new <template>
Select the desired project template when prompted.
Configuring the Project
After creating the project:
Building the Application
Once your project is ready, build it using:
vexel build
The build process will generate an Android APK from your project source code. The final generated APK is placed in:
build/output/
The APK filename is generated from the project/application name.
How Vexel Works
The build process is intentionally straightforward:
Design Goals
Vexel is intended to be approachable for developers who want direct control over the Android build process.
Credits
Vexel would not be possible without the following projects and tools.
Java Runtime
Android Platform
android.jar)Kotlin
Android Build Tools
Provided by Android Build Tools and AOSP.
Toml parser
XML parser
Zip editor
Native Toolchain
Special thanks to:
for providing Android-compatible Android NDK builds used by Vexel.
License
See LICENSE for licensing information.
Status
Vexel is an actively developed experimental project.
Current release: v0.4.0
While stable for many use cases, APIs, project layouts, and build features may change between releases.
7 commits
Kotlin
100.0%