API Change Statistics

The overall difference between API Levels s-dp1 and s-dp2 is approximately 1.82%.


Total of Differences, by Number and Type

The table below lists the numbers of program elements (packages, classes, constructors, methods, and fields) that were added, changed, or removed. The table includes only the highest-level program elements — that is, if a class with two methods was added, the number of methods added does not include those two methods, but the number of classes added does include that class.

Type Additions Changes Removals Total
Packages 6 40 0 46
Classes and Interfaces 19 115 4 138
Constructors 6 0 3 9
Methods 147 14 27 188
Fields 178 3 9 190
Total 356 172 43 571

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
20 android.net.ssl
14 android.telephony.ims
10 android.app.appsearch
8 android.hardware.camera2
7 android.security.keystore
6 android.os.strictmode
5 android.appwidget
4 android.se.omapi
3 android.hardware.input
3 android.hardware.camera2.params
2 android
2 android.location
2 android.net.wifi
1 android.security.identity
1 android.hardware
1 android.content.pm
1 android.icu.util
1 android.speech
1 android.telecom
1 android.telephony
<1 android.app.admin
<1 android.graphics.drawable
<1 android.media
<1 android.provider
<1 android.widget
<1 android.os
<1 java.time
<1 android.app
<1 android.service.notification
<1 android.view
<1 android.view.autofill
<1 android.app.job
<1 android.media.session
<1 android.view.inputmethod
<1 android.util
<1 android.graphics
<1 android.accessibilityservice
<1 android.content
<1 android.system
<1 java.util

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.app.appsearch.PutDocumentsRequest
100 android.os.strictmode.UnsafeIntentLaunchViolation
100 android.security.keystore.BackendBusyException
50 android.app.appsearch.AppSearchSession
50 android.app.appsearch.GlobalSearchSession
50 android.app.appsearch.PutDocumentsRequest.Builder
50 android.net.wifi.WifiManager.SuggestionUserApprovalStatusListener
50 android.telephony.ims.ImsRcsManager
42 android.widget.AnalogClock
40 android.app.appsearch.RemoveByUriRequest.Builder
40 android.os.VibratorManager
38 android.R.color
33 android.telecom.CallScreeningService.CallResponse
28 android.app.appsearch.GetByUriRequest.Builder
28 android.app.appsearch.SetSchemaRequest.Builder
28 android.graphics.drawable.RippleDrawable
28 android.telephony.ims.RegistrationManager.RegistrationCallback
25 android.security.identity.IdentityCredential
23 android.app.appsearch.SearchSpec.Builder
20 android.app.appsearch.AppSearchSchema
20 android.net.ssl.SSLEngines
20 android.net.ssl.SSLSockets
20 android.se.omapi.SEService
18 android.widget.EdgeEffect
16 android.location.LocationListener
16 android.media.MediaCodecInfo.AudioCapabilities
16 android.appwidget.AppWidgetHostView
15 android.R.dimen
14 android.app.admin.UnsafeStateException
14 android.app.appsearch.AppSearchSchema.Builder
13 android.media.ApplicationMediaCapabilities
11 android.appwidget.AppWidgetProviderInfo
10 android.net.wifi.ScanResult
9 android.telephony.TelephonyDisplayInfo
9 android.widget.RemoteViews
9 android.app.appsearch.SearchSpec
8 java.time.Duration
7 android.app.NotificationChannel
7 android.speech.SpeechRecognizer
7 android.media.Ringtone
7 android.security.identity.IdentityCredentialStore
6 android.hardware.input.InputManager
6 android.telecom.CallScreeningService.CallResponse.Builder
6 android.telephony.CarrierConfigManager.Ims
6 android.telephony.ims.RegistrationManager
6 android.view.FrameMetrics
5 android.app.PendingIntent
5 android.content.pm.LauncherActivityInfo
4 android.graphics.RenderEffect
4 android.util.SparseArray
4 android.media.session.MediaSession
4 android.view.WindowInsets.Builder
3 android.hardware.camera2.CameraManager
3 android.net.wifi.EasyConnectStatusCallback
3 android.view.DisplayCutout
3 android.service.notification.NotificationListenerService
3 android.content.pm.ApplicationInfo
3 android.security.keystore.KeyGenParameterSpec
3 android.security.keystore.KeyGenParameterSpec.Builder
3 android.security.keystore.KeyProperties
3 android.os.Build
3 android.content.pm.ShortcutInfo.Builder
3 android.os.Vibrator
2 android.view.inputmethod.InputConnection
2 android.widget.CompoundButton
2 android.app.Notification
2 android.icu.util.MeasureUnit
2 android.provider.MediaStore.Audio.AudioColumns
2 android.security.keystore.KeyProtection
2 android.media.AudioFormat
2 android.content.ClipDescription
2 android.content.pm.PackageInstaller.SessionParams
2 android.app.UiModeManager
2 android.security.keystore.KeyProtection.Builder
2 android.widget.Switch
2 android.net.wifi.WifiManager
2 android.security.keystore.KeyInfo
2 android.content.pm.PackageManager
2 android.hardware.camera2.CameraDevice
2 android.app.job.JobInfo.Builder
2 android.graphics.ImageFormat
1 android.media.CamcorderProfile
1 android.app.AlarmManager
1 android.view.InputDevice
1 android.view.WindowInsets
1 android.view.autofill.AutofillManager
1 android.content.Context
1 android.media.MediaCodec
1 android.provider.MediaStore
1 android.Manifest.permission
1 android.content.pm.PermissionInfo
1 android.app.admin.DevicePolicyManager
1 java.util.Map
1 android.telephony.CarrierConfigManager
1 android.os.Environment
1 android.view.Display
1 android.location.LocationManager
1 android.app.job.JobInfo
1 android.os.UserManager
1 android.telecom.TelecomManager
1 android.accessibilityservice.AccessibilityService
1 android.appwidget.AppWidgetManager
<1 android.app.admin.DeviceAdminReceiver
<1 android.R.attr
<1 android.view.WindowManager.LayoutParams
<1 android.media.MediaDrm
<1 android.hardware.camera2.CameraCharacteristics
<1 android.provider.Settings
<1 android.icu.util.ULocale
<1 android.system.OsConstants
<1 android.media.MediaFormat
<1 android.view.Window
<1 android.telephony.ims.ImsReasonInfo
<1 android.app.Activity
<1 android.content.Intent

* See Calculation of Change Percentages, below.


Calculation of Change Percentages

The percent change statistic reported for all elements in the "to" API Level specification is defined recursively as follows:

Percentage difference = 100 * (added + removed + 2*changed)
                        -----------------------------------
                        sum of public elements in BOTH APIs

where added is the number of packages added, removed is the number of packages removed, and changed is the number of packages changed. This definition is applied recursively for the classes and their program elements, so the value for a changed package will be less than 1, unless every class in that package has changed. The definition ensures that if all packages are removed and all new packages are added, the change will be 100%.