Android
Build native Android mobile applications with Bini.js.
Android Overview
Bini.js allows you to build native Android mobile applications using Tauri. Your React app runs inside a WebView with full access to native Android APIs and features.
Native APK/AAB
Build Android apps as APK or AAB for Google Play Store distribution
Code Signing
Keystore signing for secure Play Store distribution
Auto Plugin Wiring
bini-native detects web APIs and wires Android permissions automatically
Full Configuration
Back button, status bar, splash screen — all configurable
Requirements
Before building Android apps, make sure you have the following installed:
- Node.js 20.19.0 or higher
- Java JDK 17 (
JAVA_HOMEset) — Download - Android Studio with SDK, Build Tools, and NDK (
ANDROID_HOMEset) — Download - Rust targets:
rustup target add aarch64-linux-androidrustup target add armv7-linux-androideabirustup target add i686-linux-androidrustup target add x86_64-linux-android
ANDROID_HOME to your Android SDK path (e.g., ~/Library/Android/sdk on macOS, %USERPROFILE%\AppData\Local\Android\Sdk on Windows).Windows
Build Android apps natively on Windows using the CLI with Android Studio installed.
Setup on Windows
- Install Node.js from nodejs.org
- Install Java JDK 17 and set
JAVA_HOME - Install Android Studio from developer.android.com
- Set
ANDROID_HOMEto your SDK path - Install Rust targets with
rustup
macOS
Build Android apps natively on macOS using the CLI with Android Studio installed.
Setup on macOS
- Install Node.js from nodejs.org
- Install Java JDK 17 and set
JAVA_HOME - Install Android Studio from developer.android.com
- Set
ANDROID_HOMEto~/Library/Android/sdk - Install Rust targets with
rustup
Linux
Build Android apps natively on Linux using the CLI with Android Studio installed.
Setup on Linux
- Install Node.js from nodejs.org
- Install Java JDK 17 and set
JAVA_HOME - Install Android Studio from developer.android.com
- Set
ANDROID_HOMEto your SDK path (e.g.,~/Android/Sdk) - Install Rust targets with
rustup
Creating an Android App
Create a new Bini.js project targeting Android:
Or use the interactive prompt and select android:
Prompt: Which platform would you like to target?
web / windows / macos / linux / android / ios
Select android and press Enter
The project structure includes Android-specific configuration in src-tauri/gen/android/.
Development
Run your Android app on an emulator or connected device:
This launches your app with:
- Hot reload for frontend changes
- Native Android integration
- Auto-wired native APIs (
bini-native) - Devtools for debugging
Setting up an Emulator
- Open Android Studio
- Go to AVD Manager
- Create a virtual device
- Start the emulator
- Run
npm run android
Building
Build a release APK or AAB for distribution:
This creates a signed Android package in the src-tauri/gen/android/app/build/outputs/ directory.
Output Files
app-release.apk— APK for direct installationapp-release.aab— Android App Bundle for Google Play Store
Code Signing
Configure keystore signing for Android apps at scaffold time or later. Create a keystore.properties file:
Use --sign during scaffold to set up signing automatically:
Deployment
Deploy your Android project by pushing to GitHub:
deploy does not build a signed APK or submit to the Play Store — it pushes the project source to GitHub.
Deployment Flow
- Build your release APK/AAB with
npm run android:build - Run
npm run deployto push source to GitHub - Upload the APK/AAB to Google Play Console manually