Android 17 has reached beta 4, the last scheduled beta of this release cycle, an important milestone for app compatibility and platform stability. Whether you’re improving your app’s user experience, ensuring smooth edge-to-edge rendering, or taking advantage of the latest APIs, Beta 4 provides nearly the final environment you need to test with.
Get your apps, libraries, tools, and game engines ready!
If you develop an Android SDK, library, tool, or game engine, it is important to prepare any necessary updates now to avoid blocking your downstream app and game developers from compatibility issues and allow them to target the latest SDK features. Please let your downstream developers know if an update is needed to fully support Android 17.
Testing involves installing your production app or a test app using your library or engine using Google Play or other means on a device or emulator running Android 17 beta 4. Work through the flow of all your apps and look for functional or UI issues. Each release of Android contains platform changes that improve privacy, security, and overall user experience; Review app behavior changes affecting apps going on And aimed at Android 17 will focus your testing on, including the following:
- Ability to resize to larger screens: Once you target Android 17, you can choose not to maintain orientation, resizing, and aspect ratio constraints on the big screen.
- Dynamic code loading: If your app targets Android 17 or higher, enable Secure Dynamic Code Loading (DCL) protection Introduced in Android 14 Now extended to native libraries for DEX and JAR files. All native files loaded using system.load() must be marked read-only. Otherwise, the system throws UnsatisfiedLinkError.
- Enable CT by default: Certificate Transparency (CT) Enabled by default. (On Android 16, CT is available but apps must do so choose in.)
- Local Network Security: There are apps targeting Android 17 or higher Local network access is blocked by default. If possible start using the privacy protection picker and use the new ACCESS_LOCAL_NETWORK Allowing broad, continuous access.
- Background audio hardening: Starting in Android 17, the Audio Framework is implemented Restrictions on background audio interaction including audio playback, audio focus request, and volume change API. Based on your feedback, we’ve made some changes since beta 2, including removing TargetSDK gating FGS enforcement and exempting alarm audio during use. Full details available updated guidance.
app memory limit
Android is introducing app memory limits based on the total RAM of the device to create a more stable and deterministic environment for your applications and Android users. In Android 17, limits are set to establish a system baseline, targeting excessive memory leaks and other outliers before they trigger system-wide instability, resulting in UI stuttering, high battery drain, and apps crashing. Although we expect minimal impact on most app sessions, we still recommend Following memory best practicesWhich includes establishing a baseline for memory.
In the current implementation, get details In Application ExitInfo If your app was affected it will include the string “MemoryLimiter”. you can also use Trigger-Based Profiling with TRIGGER_TYPE_ANOMALY To obtain heap dumps that are collected when the memory limit is reached.
LeakCanary task in Android Studio Profiler
To help you find memory leaks, Android Studio Panda adds LeakCanary integration directly into the Android Studio Profiler as a dedicated function, contextualized within the IDE and fully integrated with your source code.
A lighter memory footprint directly translates to better performance, longer battery life, and a premium experience across all sorts of factors. Together, let’s build a faster, more reliable future for the Android ecosystem!
Profiling triggers for app anomalies
Android features an on-device anomaly detection service that monitors resource-intensive behavior and potential compatibility regressions. integrated with Profiling ManagerThis service allows your app to receive profiling artifacts triggered by specific system-detected events.
Use TRIGGER_TYPE_ANOMALY Triggers to detect system performance issues such as excessive binder calls and excessive memory usage. When an app violates an OS-defined memory limit, anomaly triggers allow developers to obtain app-specific heap dumps to help identify and fix memory problems. Additionally, for excessive binder spam, the anomaly trigger provides a stack sampling profile on binder transactions.
This API callback occurs before any system-imposed enforcement. For example, it can help developers collect debug data before the system terminates the app for exceeding memory limits. Check out our documentation to understand how to use triggers trigger based profiling.
val profilingManager = applicationContext.getSystemService(ProfilingManager::class.java) val triggers = ArrayList() triggers.add(ProfilingTrigger.Builder( ProfilingTrigger.TRIGGER_TYPE_ANOMALY)) val mainExecutor: Executor = Executors.newSingleThreadExecutor() val resultCallback = Consumer { profilingResult -> if (profilingResult.errorCode != ProfilingResult.ERROR_NONE) { // upload profile result to server for further analysis setupProfileUploadWorker(profilingResult.resultFilePath) } } profilingManager.registerForAllProfilingResults(mainExecutor, resultCallback) profilingManager.addProfilingTriggers(triggers)
Post-Quantum Cryptography (PQC) in the Android Keystore.
android keystore additional support For NIST-standardized ML-DSA (Module-Lattice-Based Digital Signature Algorithm). On supported devices, you can generate ML-DSA keys and use them to create quantum-secure signatures, entirely in the device’s secure hardware. The Android Keystore exposes ML-DSA-65 and ML-DSA-87 algorithm variants through the standard Java Cryptographic Architecture API: keypair generator, key factoryAnd Signature. For more information, see our Developer Documentation.
KeyPairGenerator generator = KeyPairGenerator.getInstance(
“ML-DSA-65”, "AndroidKeyStore");
generator.initialize(
new KeyGenParameterSpec.Builder(
“my-key-alias”,
KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY)
.build());
KeyPair keyPair = generator.generateKeyPair();
Get started with Android 17
you can Enroll any supported Pixel device To receive this and future Android beta updates over-the-air. If you don’t have a Pixel device, you can Use 64-bit system images with Android emulators In Android Studio.
If you’re currently in the Android beta program, you’ll be offered an over-the-air update to beta 4. continue Report issues and submit feature requests But feedback page. The sooner we get your feedback, the more we can incorporate into our work on the final release.
For the best development experience with Android 17, we recommend that you use the latest preview Android Studio (Panda). Once you’re set up, here are a few things you should do:
- Compile against the new SDK, test in a CI environment, and report any issues in our tracker feedback page.
- Test your current app for compatibility, know if your app is affected by the changes in Android 17, and install your app on a device or emulator running Android 17 and test it extensively.
we will update it Preview/Beta System Images And the SDK regularly during the Android 17 release cycle. Once you install the beta build, you will automatically receive future updates over-the-air for all subsequent previews and betas. Visit for complete information android 17 developer site.
join the conversation
Your feedback remains our most valuable asset. whether you are one Early adopter on the Canary Channel or one App developer testing on beta 4Consider joining our communities and submitting feedback. we are listening.

%20(1).png)