API Change Statistics

The overall difference between API Levels r-dp2 and r-dp3 is approximately 1.03%.


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 1 34 1 36
Classes and Interfaces 7 99 7 113
Constructors 1 2 3 6
Methods 95 18 56 169
Fields 24 21 46 91
Total 128 174 113 415

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
51 android.content.res.loader
13 android.telephony.ims
10 android.service.controls.actions
10 android.service.controls.templates
8 android.service.controls
3 android.net.wifi
3 android.app.blob
3 android.hardware.fingerprint
2 android.telephony
2 android.view.inputmethod
2 android.media
1 android.view.accessibility
1 android.security.identity
1 android.view
<1 android.database
<1 android.icu.number
<1 android.app
<1 android.service.autofill
<1 android.view.textclassifier
<1 android.hardware.camera2
<1 android.nfc.cardemulation
<1 android.net
<1 android.content.pm
<1 android.view.contentcapture
<1 android.os
<1 android.location
<1 android.telecom
<1 android.accessibilityservice
<1 android.app.admin
<1 android.content
<1 android.provider
<1 android.webkit
<1 android.hardware
<1 android

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.content.res.loader.AssetsProvider
100 android.media.MediaCodec.IncompatibleWithBlockModelException
80 android.media.MediaParser.OutputConsumer
70 android.net.wifi.WifiNetworkSuggestion
50 android.telephony.CarrierConfigManager.Ims
40 android.service.controls.ControlsProviderService
40 android.view.WindowInsetsAnimationControlListener
39 android.media.MediaParser
33 android.media.MediaCodec.OutputFrame
33 android.media.MediaParser.SeekPoint
33 android.view.accessibility.AccessibilityNodeInfo.ExtraRenderingInfo
30 android.view.inputmethod.InlineSuggestionsRequest.Builder
30 android.service.controls.templates.ControlTemplate
29 android.content.res.loader.ResourcesProvider
27 android.view.SurfaceControlViewHost
25 android.database.ContentObserver
25 android.media.MediaParser.SeekMap
25 android.media.MediaRouter2.ControllerCallback
25 android.net.ConnectivityDiagnosticsManager.ConnectivityDiagnosticsCallback
25 android.security.identity.PersonalizationData.Builder
25 android.view.textclassifier.TextClassificationSessionId
20 android.icu.number.ScientificNotation
18 android.os.VibrationEffect.Composition
16 android.app.SyncNotedAppOp
16 android.media.MediaParser.InputReader
15 android.view.WindowInsetsAnimationController
14 android.hardware.fingerprint.FingerprintManager.CryptoObject
14 android.media.MediaRouter2.TransferCallback
14 android.service.autofill.InlinePresentation
14 android.view.SurfaceControlViewHost.SurfacePackage
13 android.view.inputmethod.InlineSuggestionInfo
12 android.app.AsyncNotedAppOp
12 android.media.MediaRouter2.RouteCallback
12 android.provider.MediaStore.Audio.PlaylistsColumns
11 android.view.WindowInsetsController
11 android.app.blob.BlobStoreManager
11 android.telephony.ims.ImsManager
11 android.view.inputmethod.InlineSuggestionsRequest
10 android.app.ApplicationExitInfo
10 android.media.MediaCodec.QueueRequest
10 android.view.inputmethod.InlineSuggestion
9 android.media.MediaRoute2Info
9 android.service.controls.actions.ControlAction
8 android.service.autofill.Dataset.Builder
7 android.hardware.camera2.CameraManager
6 android.security.identity.ResultData
5 android.location.GnssMeasurement
5 android.view.WindowInsets.Type
5 android.telecom.DisconnectCause
5 android.content.pm.CrossProfileApps
5 android.telephony.CellIdentityNr
4 android.media.MediaRoute2ProviderService
4 android.content.pm.LauncherApps.ShortcutQuery
4 android.icu.number.Precision
4 android.media.MediaRouter2
3 android.media.RoutingSessionInfo
3 android.media.MediaRoute2Info.Builder
3 android.telephony.CellIdentityLte
3 android.service.autofill.FillResponse.Builder
3 android.view.contentcapture.ContentCaptureSession
3 android.content.pm.ApplicationInfo
2 android.webkit.CookieManager
2 android.media.RoutingSessionInfo.Builder
2 android.os.Environment
2 android.content.ContentResolver
2 android.telephony.TelephonyManager
2 android.nfc.cardemulation.CardEmulation
2 android.telephony.SubscriptionManager
2 android.content.ContentProvider
1 android.accessibilityservice.AccessibilityServiceInfo
1 android.telephony.NetworkRegistrationInfo
1 android.net.wifi.ScanResult
1 android.view.WindowInsets
1 android.app.admin.DevicePolicyManager
1 android.os.ParcelFileDescriptor
1 android.app.AppOpsManager
1 android.hardware.HardwareBuffer
1 android.content.Context
1 android.telephony.PhoneStateListener
1 android.content.pm.ActivityInfo
1 android.hardware.camera2.CameraMetadata
1 android.app.ActivityManager
<1 android.provider.Settings
<1 android.webkit.WebSettings
<1 android.service.controls.DeviceTypes
<1 android.telephony.CarrierConfigManager
<1 android.hardware.camera2.CaptureRequest
<1 android.media.MediaCodec
<1 android.provider.Settings.Secure
<1 android.telecom.TelecomManager
<1 android.hardware.camera2.CaptureResult
<1 android.view.accessibility.AccessibilityNodeInfo
<1 android.hardware.camera2.CameraCharacteristics
<1 android.content.ContextWrapper
<1 android.telephony.SmsManager
<1 android.view.WindowManager.LayoutParams
<1 android.R.attr
<1 android.content.pm.PackageManager
<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%.