diff --git a/api/current.txt b/api/current.txt
index 929da0e096bf8..ac623acd11465 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -22667,6 +22667,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 f9fa4e3dcec5d..8ff6f6b6bf3d3 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -24566,6 +24566,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 36fc4f960d800..50eed3e9df7ee 100644
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -172,6 +172,27 @@ public class Build {
public static final int SDK_INT = SystemProperties.getInt(
"ro.build.version.sdk", 0);
+ /**
+ * The developer preview revision of a prerelease SDK. This value will always
+ * be 0 on production platform builds/devices.
+ *
+ *
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 Activity.fooBar()
+ * 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.
Experimental apps targeting preview APIs should check this value for
+ * equality (==) 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.
+ *