{"id":58246,"date":"2025-09-26T10:05:00","date_gmt":"2025-09-26T17:05:00","guid":{"rendered":"https:\/\/devblogs.microsoft.com\/dotnet\/?p=58246"},"modified":"2025-09-26T10:05:00","modified_gmt":"2025-09-26T17:05:00","slug":"maui-google-play-16-kb-page-size-support","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/maui-google-play-16-kb-page-size-support\/","title":{"rendered":"Preparing Your .NET MAUI Apps for Google Play&#8217;s 16 KB Page Size Requirement"},"content":{"rendered":"<p>If you&#8217;re a .NET MAUI developer publishing apps to Google Play, there&#8217;s an important requirement coming your way. Starting <strong>November 1st, 2025<\/strong>, Google Play will require all new apps and updates targeting Android 15+ to support 16 KB page sizes on 64-bit devices.<\/p>\n<h2>What is the 16 KB Page Size Requirement?<\/h2>\n<p>Android is moving from 4 KB to 16 KB memory page sizes to optimize performance on devices with larger amounts of RAM. This change brings several system-wide benefits that Google has measured, but also advantages for the app you are building on Android:<\/p>\n<ul>\n<li><strong>Lower app launch times<\/strong> (3.16% improvement on average, up to 30% for some apps)<\/li>\n<li><strong>Reduced power draw<\/strong> during app launch (4.56% reduction on average)<\/li>\n<li><strong>Improved system performance<\/strong> better overall system responsiveness on the Android operating system, for instance the Android camera app has 4.48% faster hot starts, 6.60% faster cold starts<\/li>\n<\/ul>\n<h2>.NET MAUI Support<\/h2>\n<p>The good news is that .NET MAUI 9 supports 16 KB page sizes out of the box, so make sure that your .NET MAUI (and .NET for Android) app is on .NET 9 and your app should automatically be compatible with the 16 KB page size requirement.<\/p>\n<p>Please note, .NET MAUI 8 is out of support as of May 14, 2025 per the <a href=\"https:\/\/dotnet.microsoft.com\/platform\/support\/policy\/maui\">.NET MAUI support policy<\/a>.<\/p>\n<h2>Check your dependencies<\/h2>\n<p>All dependencies in your .NET MAUI project also need 16 KB support. When building your app, you&#8217;ll see warnings for non-compliant dependencies:<\/p>\n<pre><code class=\"language-plaintext\">Android 16 will require 16 KB page sizes, shared library '{library_name}' does not have a 16 KB page size. Please inform the authors of the NuGet package '{package_name}' version '{version}' which contains '{file_path}'. See https:\/\/developer.android.com\/guide\/practices\/page-sizes for more details.<\/code><\/pre>\n<p>When you see this warning:<\/p>\n<ol>\n<li><strong>Update the dependency<\/strong> to a newer version that supports 16 KB page sizes<\/li>\n<li><strong>Contact the package author<\/strong> if no updated version is available<\/li>\n<li><strong>Find an alternative dependency<\/strong> if the package is no longer maintained<\/li>\n<\/ol>\n<p>If you want to do some additional manual checks to make sure that your app and it&#8217;s dependencies are compliant, check the <a href=\"https:\/\/developer.android.com\/guide\/practices\/page-sizes#elf-alignment\">Google documentation<\/a> which offers some command-line scripts that can help with that.<\/p>\n<h2>What you need to do<\/h2>\n<p>Here&#8217;s your action plan for the November 2025 deadline:<\/p>\n<ol>\n<li><strong>Upgrade to .NET 9<\/strong> if you haven&#8217;t already<\/li>\n<li><strong>Check your dependencies<\/strong> for 16 KB compatibility<\/li>\n<li><strong>Update or replace<\/strong> any non-compliant dependencies<\/li>\n<li><strong>Test your app<\/strong> in a 16 KB environment using Android emulators or using the developer options on your Android device<\/li>\n<\/ol>\n<p><div class=\"alert alert-info\"><p class=\"alert-divider\"><i class=\"fabric-icon fabric-icon--Info\"><\/i><strong>Important<\/strong><\/p>Don&#8217;t wait until the November deadline. Start preparing now to ensure your app submissions meet Google Play policy requirements and you can continue to release without interruption.<\/div><\/p>\n<h2>Summary<\/h2>\n<p>The 16 KB page size requirement brings performance benefits but requires preparation. With .NET MAUI 9, the framework is ready &#8211; you just need to ensure your dependencies are too. Upgrade to .NET 9, audit your dependencies, and test in 16 KB environments to be prepared for the November 2025 deadline.<\/p>\n<hr \/>\n<h2>References<\/h2>\n<ul>\n<li><a href=\"https:\/\/developer.android.com\/guide\/practices\/page-sizes\">Android 16 KB Page Size Support Guide<\/a><\/li>\n<li><a href=\"https:\/\/dotnet.microsoft.com\/platform\/support\/policy\/maui\">.NET MAUI Support Policy<\/a><\/li>\n<li><a href=\"https:\/\/android-developers.googleblog.com\/2025\/05\/prepare-play-apps-for-devices-with-16kb-page-size.html\">Google Play 16 KB Page Size Blog Post<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/dotnet\/android\/issues\/10477\">.NET for Android repository issue<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Learn about the upcoming 16 KB page size requirement for Google Play and how to ensure your .NET MAUI apps are ready for the November 2025 deadline.<\/p>\n","protected":false},"author":13350,"featured_media":58247,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[685,7813,7233],"tags":[4,8067,7238,8069,8068],"class_list":["post-58246","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-dotnet-android","category-maui","tag-net","tag-net-for-android","tag-net-maui","tag-16-kb-page-size","tag-google-play"],"acf":[],"blog_post_summary":"<p>Learn about the upcoming 16 KB page size requirement for Google Play and how to ensure your .NET MAUI apps are ready for the November 2025 deadline.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/58246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/13350"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=58246"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/58246\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58247"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=58246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=58246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=58246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}