API Change Statistics

The overall difference between API Levels r-dp1 and r-dp2 is approximately 2.09%.


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 4 48 0 52
Classes and Interfaces 32 194 7 233
Constructors 3 23 1 27
Methods 203 152 61 416
Fields 226 98 42 366
Total 468 515 111 1094

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
52 android.drm
50 android.service.chooser
15 android.telephony.euicc
13 android.location
12 android.view.inline
12 android.view.contentcapture
9 android.telephony.ims
6 android.net
6 android.net.wifi.hotspot2
6 android.service.voice
6 android.service.quickaccesswallet
5 android.telephony
5 android.view
5 android.app.blob
5 android.service.quicksettings
4 android.accessibilityservice
3 android.hardware.input
3 android.app.admin
2 android.view.accessibility
2 android.media
2 android.view.inputmethod
1 android.net.wifi
1 android.net.sip
1 android.service.notification
1 android.hardware.camera2
1 android.security.keystore
1 android.hardware.biometrics
1 android.os
1 android.net.wifi.p2p
1 android.service.wallpaper
<1 android.media.tv
<1 android.telecom
<1 android.content.pm
<1 android.service.autofill
<1 android.app
<1 android.content.res
<1 android.os.storage
<1 android.graphics
<1 java.time.chrono
<1 android.appwidget
<1 android
<1 android.media.audiofx
<1 android.provider
<1 android.inputmethodservice
<1 android.hardware
<1 android.bluetooth
<1 android.content
<1 android.widget

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.service.voice.AlwaysOnHotwordDetector.ModelParamRange
95 android.net.ConnectivityDiagnosticsManager.DataStallReport
92 android.net.ConnectivityDiagnosticsManager.ConnectivityReport
80 android.telephony.PhoneCapability
77 android.drm.DrmRights
75 android.media.DrmInitData
72 android.drm.DrmManagerClient
70 android.media.MediaParser
62 android.drm.DrmInfoEvent
61 android.drm.DrmInfo
60 android.drm.DrmErrorEvent
60 android.drm.DrmEvent
50 android.app.SyncNotedAppOp
50 android.drm.DrmConvertedStatus
50 android.drm.DrmInfoRequest
50 android.drm.DrmInfoStatus
50 android.drm.DrmManagerClient.OnErrorListener
50 android.drm.DrmManagerClient.OnEventListener
50 android.drm.DrmManagerClient.OnInfoListener
50 android.drm.DrmStore
50 android.drm.DrmStore.ConstraintsColumns
50 android.drm.DrmUtils
50 android.drm.DrmUtils.ExtendedMetadataParser
50 android.drm.ProcessedData
50 android.service.chooser.ChooserTarget
50 android.service.chooser.ChooserTargetService
50 android.service.quickaccesswallet.GetWalletCardsCallback
50 android.telephony.MmsManager
50 android.view.View.OnSystemUiVisibilityChangeListener
50 android.view.WindowManager
45 android.telephony.euicc.EuiccManager
44 android.drm.DrmStore.Action
43 android.drm.DrmSupportInfo
42 android.view.WindowInsetsController
40 android.drm.DrmStore.DrmObjectType
40 android.drm.DrmStore.Playback
40 android.drm.DrmStore.RightsStatus
38 android.media.MediaRoute2ProviderService
33 android.media.DrmInitData.SchemeInitData
33 android.net.ConnectivityDiagnosticsManager
29 android.view.WindowInsets.Builder
28 android.view.contentcapture.ContentCaptureManager
28 android.view.WindowInsets
27 android.media.MediaRouter2
26 android.media.MediaCodec.QueueRequest
25 android.media.RoutingSessionInfo.Builder
25 android.app.admin.FactoryResetProtectionPolicy.Builder
25 android.graphics.Canvas.EdgeType
25 android.media.MediaRouter2.RoutingController
21 android.media.RoutingSessionInfo
21 android.accessibilityservice.AccessibilityService
20 android.app.admin.FactoryResetProtectionPolicy
20 android.hardware.camera2.CameraManager.AvailabilityCallback
20 android.media.RouteDiscoveryPreference
20 android.media.RouteDiscoveryPreference.Builder
20 android.os.VibrationAttributes.Builder
20 android.view.inputmethod.InlineSuggestionsRequest.Builder
18 android.os.Vibrator
16 android.media.MediaCodec.OutputFrame
16 android.view.inline.InlinePresentationSpec.Builder
15 android.view.inputmethod.InlineSuggestionInfo
15 android.content.pm.ShortcutManager
15 android.service.autofill.InlinePresentation
15 android.telephony.CellIdentityNr
13 android.net.wifi.p2p.WifiP2pGroup
13 android.net.wifi.hotspot2.PasspointConfiguration
12 android.app.admin.DevicePolicyKeyguardService
12 android.app.blob.BlobStoreManager
12 android.view.inputmethod.InlineSuggestionsRequest
11 android.location.GnssClock
11 android.net.sip.SipManager
11 android.telephony.ims.ImsException
11 android.view.WindowInsets.Type
10 android.location.GnssNavigationMessage
9 android.service.notification.ZenPolicy
9 android.net.wifi.p2p.WifiP2pWfdInfo
9 android.view.SurfaceView
9 android.view.inline.InlinePresentationSpec
8 android.app.NotificationManager.Policy
8 android.view.Surface
8 android.hardware.camera2.CameraManager
8 android.telecom.ConnectionRequest
8 android.telecom.ConnectionService
7 android.hardware.biometrics.BiometricManager
7 android.hardware.input.InputManager
7 android.telephony.CellInfo
7 android.view.HapticFeedbackConstants
6 android.telephony.CellIdentityLte
6 android.media.tv.TvRecordingClient
6 android.service.autofill.FillResponse.Builder
6 android.telephony.PreciseDataConnectionState
6 android.location.GnssMeasurement
6 android.telephony.SignalStrength
5 android.content.res.Resources
5 android.view.inputmethod.EditorInfo
5 java.time.chrono.JapaneseEra
5 android.app.ApplicationExitInfo
5 android.content.pm.CrossProfileApps
5 android.provider.ContactsContract.RawContactsColumns
5 android.service.quicksettings.Tile
5 android.service.quicksettings.TileService
5 android.telecom.DisconnectCause
5 android.graphics.Outline
5 android.security.keystore.KeyProtection.Builder
5 android.os.Build.VERSION
5 android.provider.Settings.Global
5 android.net.wifi.WifiNetworkSuggestion.Builder
4 android.media.AudioTrack
4 android.media.tv.TvInputService.RecordingSession
4 android.service.quickaccesswallet.QuickAccessWalletService
4 android.view.WindowManager.LayoutParams
4 android.net.sip.SipAudioCall
4 android.telephony.CellIdentityTdscdma
4 android.app.blob.BlobStoreManager.Session
4 android.content.pm.LauncherApps.ShortcutQuery
4 android.os.VibrationEffect
4 android.graphics.Canvas
3 android.media.tv.TvContract.Programs
3 android.telephony.CellIdentityGsm
3 android.telephony.CellIdentityWcdma
3 android.accessibilityservice.AccessibilityServiceInfo
3 android.security.keystore.KeyGenParameterSpec.Builder
3 android.view.SurfaceControl.Transaction
3 android.app.ActivityManager.TaskDescription
3 android.media.MediaRoute2Info
3 android.view.Display
3 android.telephony.BarringInfo
3 android.telephony.ims.ImsMmTelManager
3 android.telecom.Conference
3 android.media.tv.TvTrackInfo.Builder
3 android.net.sip.SipProfile
2 android.media.MediaCas
2 android.security.keystore.KeyProtection
2 android.security.keystore.KeyProperties
2 android.telecom.Call
2 android.media.AudioDeviceInfo
2 android.app.NotificationChannel
2 android.security.keystore.KeyInfo
2 android.telephony.PhoneStateListener
2 android.media.audiofx.AudioEffect
2 android.view.ViewConfiguration
2 android.service.notification.ZenPolicy.Builder
2 android.media.tv.TvTrackInfo
2 android.telephony.CarrierConfigManager
2 android.service.voice.AlwaysOnHotwordDetector
2 android.location.LocationManager
2 android.content.pm.ResolveInfo
2 android.service.wallpaper.WallpaperService.Engine
1 android.net.NetworkCapabilities
1 android.security.keystore.KeyGenParameterSpec
1 android.telephony.NetworkRegistrationInfo
1 android.net.wifi.WifiManager
1 android.hardware.biometrics.BiometricPrompt
1 android.app.admin.DevicePolicyManager
1 android.os.storage.StorageManager
1 android.telecom.Call.Details
1 android.view.View
1 android.telecom.Connection
1 android.content.pm.ShortcutInfo
1 android.content.pm.PackageManager
1 android.content.Context
1 android.os.PowerManager
1 android.content.pm.PackageInstaller.SessionInfo
1 android.media.tv.TvContract.Channels
1 android.telecom.PhoneAccount
1 android.media.tv.TvContract.RecordedPrograms
1 android.hardware.Sensor
1 android.Manifest.permission
1 android.provider.MediaStore.MediaColumns
1 android.hardware.camera2.CameraMetadata
1 android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
1 android.graphics.Path
1 android.appwidget.AppWidgetManager
1 android.hardware.camera2.CameraCharacteristics
<1 android.media.MediaFormat
<1 android.telephony.TelephonyManager
<1 android.bluetooth.BluetoothDevice
<1 android.provider.MediaStore
<1 android.hardware.camera2.CaptureRequest
<1 android.app.AppOpsManager
<1 android.media.tv.TvContract.PreviewPrograms
<1 android.media.tv.TvContract.WatchNextPrograms
<1 android.telecom.TelecomManager
<1 android.inputmethodservice.InputMethodService
<1 android.R.id
<1 android.hardware.camera2.CaptureResult
<1 android.view.accessibility.AccessibilityNodeInfo
<1 android.provider.Settings
<1 android.content.res.Configuration
<1 android.app.Activity
<1 android.view.Window
<1 android.content.Intent
<1 android.widget.TextView
<1 android.R.attr

* 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%.