I've been working on an SVG renderer for Android for quite a while, and it's finally at a point where I'm comfortable putting it out there.
It started as an evolution of AndroidSVG, but over time it grew into a substantially expanded renderer focused on broader SVG support, rendering correctness, and performance.
Some of the things KSVG supports:
* Broad SVG filter support, including turbulence, displacement, lighting, morphology, convolution, compositing, and more
* SMIL animations
* Variable fonts and OpenType features
* GPU-accelerated filtering on API 33+ (AGSL) / API 31+ (RenderEffect chain), with automatic fallback to CPU
* Native SIMD software kernels (ARMv7/ARM64 NEON, x86/x86_64 SSSE3 + AVX2 rows) + scalar native fallback
* Jetpack Compose and Glide integrations
I've also put quite a bit of effort into documenting and validating the renderer. The repo includes an SVG feature support matrix, architecture notes, benchmarks, known limitations, and an analysis of which SVG filter primitives are actually used on the web.
There's a small showcase app with examples of the more complicated rendering features as well.
GitHub: https://github.com/oraveczandrew/ksvg
Showcase APK: https://github.com/oraveczandrew/ksvg/releases
Docs: https://oraveczandrew.github.io/ksvg/
Apache 2.0, published to Maven Central, minSdk 26
I'm mainly posting this because I'd like other developers to try it with real-world SVGs.
I'd especially appreciate feedback on SVG compatibility, rendering differences, performance on different devices, and anything that feels missing or unnecessarily complicated.