diff options
author | Adam Powell <adamp@google.com> | 2015-05-06 18:13:09 -0700 |
---|---|---|
committer | Adam Powell <adamp@google.com> | 2015-05-06 18:13:09 -0700 |
commit | e960030f75d2b510706c4623d94ad71aba427fb8 (patch) | |
tree | 84d1bfba60187a2abd170960f023f91b14f25339 /core | |
parent | 6402dc7e4adbfb64ee80858292958ed217560c12 (diff) | |
download | frameworks_base-e960030f75d2b510706c4623d94ad71aba427fb8.zip frameworks_base-e960030f75d2b510706c4623d94ad71aba427fb8.tar.gz frameworks_base-e960030f75d2b510706c4623d94ad71aba427fb8.tar.bz2 |
Add Build.VERSION.PREVIEW_SDK_INT
Add a constant to the SDK that apps may use to detect incremental API
changes across prerelease preview builds. APIs newer than the latest
official API level are not guaranteed to be stable or even present
across preview revisions.
Change-Id: I14341e55a3ebc3d872977970b9440c400e71f588
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/os/Build.java | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java index 36fc4f9..50eed3e 100644 --- a/core/java/android/os/Build.java +++ b/core/java/android/os/Build.java @@ -173,6 +173,27 @@ public class Build { "ro.build.version.sdk", 0); /** + * The developer preview revision of a prerelease SDK. This value will always + * be <code>0</code> on production platform builds/devices. + * + * <p>When this value is nonzero, any new API added since the last + * officially published {@link #SDK_INT API level} is only guaranteed to be present + * on that specific preview revision. For example, an API <code>Activity.fooBar()</code> + * might be present in preview revision 1 but renamed or removed entirely in + * preview revision 2, which may cause an app attempting to call it to crash + * at runtime.</p> + * + * <p>Experimental apps targeting preview APIs should check this value for + * equality (<code>==</code>) with the preview SDK revision they were built for + * before using any prerelease platform APIs. Apps that detect a preview SDK revision + * other than the specific one they expect should fall back to using APIs from + * the previously published API level only to avoid unwanted runtime exceptions. + * </p> + */ + public static final int PREVIEW_SDK_INT = SystemProperties.getInt( + "ro.build.version.preview_sdk", 0); + + /** * The current development codename, or the string "REL" if this is * a release build. */ |