Updates to non-SDK interface restrictions in Android 16
Stay organized with collections
Save and categorize content based on your preferences.
Android 16 includes updated lists of restricted non-SDK interfaces based
on collaboration with Android developers and the latest internal testing.
Whenever possible, we make sure that public alternatives are available before we
restrict non-SDK interfaces.
If your app does not target Android 16 (API level 36), some of these
changes might not immediately affect you. However, while it's possible for your
app to access some non-SDK interfaces depending on your app's target API
level, using any non-SDK method or field always carries a high
risk of breaking your app.
If you are unsure if your app uses non-SDK interfaces, you can
test your app to find out. If your app relies on non-SDK
interfaces, you should begin planning a migration to SDK alternatives.
Nevertheless, we understand that some apps have valid use cases for using
non-SDK interfaces. If you can't find an alternative to using a non-SDK
interface for a feature in your app, you should
request a new public API.
For a complete list of all non-SDK interfaces for Android 16, download the
following file:
File: hiddenapi-flags.csv
SHA-256 checksum: 9102af02fe6ab68b92464bdff5e5b09f3bd62c65d1130aaf85d3296f17d38074
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-08-26 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-26 UTC."],[],[],null,["Android 16 includes updated lists of restricted non-SDK interfaces based\non collaboration with Android developers and the latest internal testing.\nWhenever possible, we make sure that public alternatives are available before we\nrestrict non-SDK interfaces.\n\nIf your app does not target Android 16 (API level 36), some of these\nchanges might not immediately affect you. However, while it's possible for your\napp to access some non-SDK interfaces [depending on your app's target API\nlevel](/guide/app-compatibility/restrictions-non-sdk-interfaces#list-names)), using any non-SDK method or field always carries a high\nrisk of breaking your app.\n\nIf you are unsure if your app uses non-SDK interfaces, you can\n[test your app](/guide/app-compatibility/restrictions-non-sdk-interfaces#test-for-non-sdk) to find out. If your app relies on non-SDK\ninterfaces, you should begin planning a migration to SDK alternatives.\nNevertheless, we understand that some apps have valid use cases for using\nnon-SDK interfaces. If you can't find an alternative to using a non-SDK\ninterface for a feature in your app, you should\n[request a new public API](/guide/app-compatibility/restrictions-non-sdk-interfaces#feature-request).\n\nFor a complete list of all non-SDK interfaces for Android 16, download the\nfollowing file:\n\nFile: [`hiddenapi-flags.csv`](https://dl.google.com/developers/android/baklava/non-sdk/hiddenapi-flags.csv)\n\nSHA-256 checksum: `9102af02fe6ab68b92464bdff5e5b09f3bd62c65d1130aaf85d3296f17d38074`"]]