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 | |
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
-rw-r--r-- | api/current.txt | 1 | ||||
-rw-r--r-- | api/system-current.txt | 1 | ||||
-rw-r--r-- | core/java/android/os/Build.java | 21 |
3 files changed, 23 insertions, 0 deletions
diff --git a/api/current.txt b/api/current.txt index 0ef4766..4ee1c51 100644 --- a/api/current.txt +++ b/api/current.txt @@ -22906,6 +22906,7 @@ package android.os { ctor public Build.VERSION(); field public static final java.lang.String CODENAME; field public static final java.lang.String INCREMENTAL; + field public static final int PREVIEW_SDK_INT; field public static final java.lang.String RELEASE; field public static final deprecated java.lang.String SDK; field public static final int SDK_INT; diff --git a/api/system-current.txt b/api/system-current.txt index 3aa6ca0..4563edc 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -24805,6 +24805,7 @@ package android.os { ctor public Build.VERSION(); field public static final java.lang.String CODENAME; field public static final java.lang.String INCREMENTAL; + field public static final int PREVIEW_SDK_INT; field public static final java.lang.String RELEASE; field public static final deprecated java.lang.String SDK; field public static final int SDK_INT; 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. */ |