zeroclaw/clients/android
Preventnetworkhacking da899a3046 feat(android): Phase 3 - WorkManager, tiles, battery optimization
Complete Phase 3 integration features:

WorkManager:
- HeartbeatWorker for periodic agent checks
- Cron job scheduling support
- Respects Doze mode and battery optimization

Data Persistence:
- SettingsRepository with DataStore
- Encrypted API key storage (Android Keystore)
- Settings flow for reactive UI

Quick Settings:
- ZeroClawTileService for notification shade
- Toggle agent on/off
- Shows running status

Share Intent:
- ShareHandler parses incoming content
- Supports text, URLs, images
- Generates agent prompts

Battery Optimization:
- BatteryUtils for exemption requests
- Manufacturer-specific handling (Xiaomi, Huawei, etc.)
- Settings UI shows optimization status

Other:
- Updated BootReceiver with settings integration
- CI workflow for Android builds (ci-android.yml)
- Updated README with Phase 3 completion

Total: ~950 new lines across 11 files
2026-02-26 21:20:04 -08:00
..
app feat(android): Phase 3 - WorkManager, tiles, battery optimization 2026-02-26 21:20:04 -08:00
gradle/wrapper feat(android): add Android client foundation 2026-02-26 20:52:43 -08:00
build.gradle.kts feat(android): add Android client foundation 2026-02-26 20:52:43 -08:00
ci-android.yml feat(android): Phase 3 - WorkManager, tiles, battery optimization 2026-02-26 21:20:04 -08:00
gradle.properties feat(android): add Android client foundation 2026-02-26 20:52:43 -08:00
README.md feat(android): Phase 3 - WorkManager, tiles, battery optimization 2026-02-26 21:20:04 -08:00
settings.gradle.kts feat(android): add Android client foundation 2026-02-26 20:52:43 -08:00

ZeroClaw Android Client 🦀📱

Native Android client for ZeroClaw - run your autonomous AI assistant on Android.

Features

  • 🚀 Native Performance - Kotlin/Jetpack Compose, not a webview
  • 🔋 Battery Efficient - WorkManager, Doze-aware, minimal wake locks
  • 🔐 Security First - Android Keystore for secrets, sandboxed execution
  • 🦀 ZeroClaw Core - Full Rust binary via UniFFI/JNI
  • 🎨 Material You - Dynamic theming, modern Android UX

Requirements

  • Android 8.0+ (API 26+)
  • ~50MB storage
  • ARM64 (arm64-v8a) or ARMv7 (armeabi-v7a)

Building

Prerequisites

# Install Rust Android targets
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android

# Install cargo-ndk
cargo install cargo-ndk

# Android SDK (via Android Studio or sdkman)
# NDK r25+ required

Build APK

cd clients/android
./gradlew assembleDebug

Build with Rust

# Build native library first
cargo ndk -t arm64-v8a -o app/src/main/jniLibs build --release

# Then build APK
./gradlew assembleRelease

Architecture

┌─────────────────────────────────────┐
│  UI (Jetpack Compose)               │
├─────────────────────────────────────┤
│  Service Layer (Kotlin)             │
│  ├─ ZeroClawService                 │
│  ├─ NotificationHandler             │
│  └─ WorkManager Jobs                │
├─────────────────────────────────────┤
│  Bridge (UniFFI)                    │
├─────────────────────────────────────┤
│  Native (libzeroclaw.so)            │
└─────────────────────────────────────┘

Status

Phase 1: Foundation (Complete)

  • Project setup (Kotlin/Compose/Gradle)
  • Basic JNI bridge stub
  • Foreground service
  • Notification channels
  • Boot receiver

Phase 2: Core Features (Complete)

  • UniFFI bridge crate
  • Settings UI (provider/model/API key)
  • Chat UI scaffold
  • Theme system (Material 3)

Phase 3: Integration (Complete)

  • WorkManager for cron/heartbeat
  • DataStore + encrypted preferences
  • Quick Settings tile
  • Share intent handling
  • Battery optimization helpers
  • CI workflow for Android builds

🚧 Phase 4: Polish (Next)

  • Cargo NDK CI integration
  • Native library loading
  • Widget support
  • Accessibility improvements

Contributing

See the RFC in issue discussions for design decisions.

License

Same as ZeroClaw (MIT/Apache-2.0)