cnlohr/rawdrawandroid
FreeBuild android apps without any java, entirely in C and Make
About cnlohr/rawdrawandroid
rawdrawandroid is an open-source framework for building Android applications entirely in C and Make, eliminating the need for Java or Kotlin. It leverages the rawdraw library to provide cross-platform C code that can run on Android, Linux, Windows, and even ESP8266. The framework includes support for OpenGL ES graphics, accelerometer and gyroscope input, multi-touch, on-screen keyboard input, asset management via AAssetManager, permissions handling, and direct USB device access. It produces minimal APKs (around 25 kB for API 26 and 45 kB for API 30) and can build, install, and run in about 2 seconds. It also works with OpenXR on Meta Quest. The project uses simple Makefiles for transparency and customization.
Key Features
Pros & Cons
- Eliminates Java dependency, allowing C developers to write Android apps
- Extremely small APK size saves storage and download time
- Very fast build and deploy cycle (~2 seconds) improves iteration speed
- Direct access to Android hardware (USB, accelerometer, touch) without wrappers
- Cross-platform code reuse through rawdraw library
- Open-source with permissive license (MIT-style based on repository)
- Transparent build process using Makefiles, easy to customize
- Support for modern Android APIs (OpenGL ES, permissions, asset management)
- No high-level UI framework; rawdraw provides only minimal drawing primitives
- Not suitable for complex apps requiring Java ecosystem libraries or APIs
- Author disclaims warranty and does not guarantee commercial app store usability
- Requires Android NDK and C programming expertise
- Limited community support (Discord not public; author requests direct message)
- Some Android features (e.g., Java-only APIs) are inaccessible without bridging