If you're shipping Android apps, you've probably heard the news: starting November 1st, 2025, Google Play requires all apps targeting Android 15+ to support 16 KB page sizes.
We've been getting questions about this (thanks to everyone who raised this on GitHub!), so let's dig into what this means for Avalonia apps and how to get ready.
Why is Android doing this?
Android has used 4 KB memory pages since... well, forever. But phones today aren't the resource-constrained devices they were a decade ago. Modern Android devices pack sa erious amount of RAM, and larger page sizes help the OS manage that memory more efficiently.
Google's seeing some nice wins from this change, with apps launching about 3% faster on average (though some see 30% improvements!), and battery usage during app launch drops by around 4.5%. Not earth-shattering, but free performance improvements are always welcome.
So what about Avalonia?
We've actually been working on SkiaSharp 3.0 support since April 2024, well before Google announced this requirement. The work is complete and it's already included in v11 builds of Avalonia. The catch? We haven't enabled it by default because it's a breaking change, and we take our API stability promises seriously. We don't introduce breaking changes in point releases.
This is why v12 is coming so soon. We originally had bigger plans for v12, but the 16 KB page size requirement has forced us to rethink our roadmap. Instead of the feature-packed release we'd envisioned, v12 is now essentially "v11 with SkiaSharp 3 enabled by default."
It's a small, focused release that exists for one main reason: ensuring you can keep deploying to the Google Play Store without breaking our promise about API stability within a major version. The features we'd planned for v12 will be part of v13. The important bit is **this doesn't delay anything**. Those features will still ship when they're ready, they'll just have a different version number than we originally planned.
We know this isn't ideal. Nobody likes dealing with forced upgrades. But API stability is sacred to us. We've seen too many projects get burned by frameworks that break things in minor releases, and we refuse to be that framework.
You've got two options, depending on your situation:
Already shipping with Avalonia 11? No problem.
You can get 16 KB support working with Avalonia 11 today. You'll need to manually upgrade to SkiaSharp 3 by adding these package overrides to your project:
Quick heads up: you'll want to be on Avalonia 11.3.6 or later for this to work properly on iOS. Even though Avalonia 11 targets .NET 8, it runs just fine on .NET 9 (which you'll need for Android).
Want the latest and greatest? Jump in early on Avalonia 12.
We've already upgraded to SkiaSharp 3 in Avalonia 12, so 16 KB support just works out of the box. No manual overrides needed.
Avaonia 12 isn't officially released yet, but we're targeting end of year for the first betas. It's worth sharing though that it's already available on our nightly feed, and the feedback has been fantastic. Devolutions (our recent sponsor) recently told us their Android app runs much better on the v12 nightlies than on stable v11.
For our Android release our developers have found that using the nightly 12.x build has been much better than using the production 11.3.x builds, there are so many improvements in 12 that make our Android app better, congratulations on this!
If you're comfortable running nightlies and want those Android performance improvements, grab them from:
How do I test this?
Before you ship, you'll want to make sure everything actually works with 16 KB pages. The easiest way is to set up an Android emulator with 16 KB enforcement. Google has instructions here.
When you build your app, watch for warnings about libraries that don't support 16 KB pages. They look like this:
If you see these, you'll need to update those dependencies too. Most popular libraries have already released updates, but if you're using something obscure or unmaintained, you might need to find alternatives.
What should I do?
Honestly? It depends on your timeline and risk tolerance.
Shipping soon and need stability? Stick with Avalonia 11 and add the SkiaSharp 3 overrides. It's a proven solution that works today.
Have some flexibility? Give the v12 nightlies a try. You'll solve the 16 KB issue and get a huge number of Android performance improvements. Just be prepared for the occasional rough edge, they're nightlies after all.
Either way, don't leave this until October 31st. Test your app now, make sure all your dependencies are compatible, and give yourself time to deal with any surprises.
Wrapping up
This 16 KB requirement isn't going away, and after November 1st, you won't be able to update your Avalonia based Android apps without it. The good news is that whether you're on Avalonia 11 or ready to try v12, we've got a path forward for you.
Once you get past the initial hassle of updating, the performance improvements are pretty nice. Your users probably won't notice the 3% faster launch time, but every bit helps when you're trying to deliver a great mobile experience.
Got questions? Hit us up on GitHub. We're here to help you through this transition.