API Change Statistics

The overall difference between API Levels t-dp1 and t-dp2 is approximately 2.67%.


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 64 0 68
Classes and Interfaces 115 224 5 344
Constructors 6 2 1 9
Methods 346 67 21 434
Fields 398 56 12 466
Total 869 413 39 1321

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
100 android.media.tv.interactive
33 android.telephony.ims.feature
31 android.speech
29 android.media.tv
18 java.security.interfaces
16 android.net.wifi.aware
15 android.app.admin
14 android.security.identity
11 android.media.metrics
11 android.net.ipsec.ike.exceptions
11 java.security.spec
9 android.telephony.ims
8 android.accessibilityservice
8 android.graphics.text
7 android.system
7 android.service.autofill
5 android.net.vcn
5 android.net
5 android.media.midi
5 android.bluetooth
5 android.hardware.camera2.params
5 android.hardware
4 android.location
3 android.companion
3 android.view.inputmethod
3 android.hardware.biometrics
3 android.net.wifi
2 android.view
2 android.app.appsearch
2 android.net.wifi.p2p
2 android.net.nsd
2 android.os
2 java.lang.invoke
2 android.view.accessibility
1 android.database
1 android.net.wifi.hotspot2
1 android.provider
1 android.net.eap
1 android.util
1 java.lang.ref
1 android.os.storage
1 android.media
<1 android.hardware.camera2
<1 android.graphics
<1 android.bluetooth.le
<1 android.opengl
<1 android.telephony.euicc
<1 android.app
<1 android.content.pm
<1 android.inputmethodservice
<1 android.view.autofill
<1 android.service.quickaccesswallet
<1 java.net
<1 android
<1 android.text
<1 android.telephony
<1 org.json
<1 java.security
<1 android.telephony.data
<1 android.service.notification
<1 android.view.animation
<1 android.telecom
<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
75 android.service.autofill.Dataset.Builder
74 android.bluetooth.BluetoothLeAudioCodecConfig
73 android.net.VpnManager
71 android.graphics.BitmapShader
60 android.hardware.SensorPrivacyManager
53 android.bluetooth.BluetoothLeAudioCodecConfig.Builder
50 android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener
50 android.hardware.DataSpace
50 android.media.midi.MidiManager
50 android.provider.CloudMediaProviderContract
50 android.security.identity.ResultData
44 android.media.EncoderProfiles.VideoProfile
42 android.app.appsearch.GetSchemaResponse
40 android.app.appsearch.GlobalSearchSession
36 android.app.appsearch.SetSchemaRequest
33 android.media.metrics.MediaMetricsManager
33 android.net.vcn.VcnUnderlyingNetworkTemplate
33 android.net.wifi.aware.WifiAwareChannelInfo
33 java.security.spec.ECGenParameterSpec
32 android.hardware.camera2.params.OutputConfiguration
28 android.provider.CloudMediaProviderContract.MediaColumns
27 android.hardware.biometrics.BiometricPrompt.CryptoObject
27 android.app.appsearch.GetSchemaResponse.Builder
27 android.net.wifi.aware.WifiAwareNetworkSpecifier
26 android.app.PictureInPictureParams.Builder
26 android.companion.AssociationRequest
26 android.opengl.EGLExt
25 android.service.autofill.FillResponse.Builder
25 android.net.wifi.aware.AttachCallback
23 android.media.ImageWriter
23 android.hardware.camera2.params.MandatoryStreamCombination.MandatoryStreamInformation
23 android.media.AudioDescriptor
23 android.media.RouteDiscoveryPreference
23 android.net.wifi.WifiSsid
23 android.net.wifi.aware.PublishConfig
21 android.security.identity.IdentityCredential
21 android.accessibilityservice.AccessibilityService.MagnificationController
20 android.app.LocaleManager
20 android.media.MediaRecorder.VideoEncoder
20 android.net.eap.EapSessionConfig.EapAkaConfig
20 android.net.vcn.VcnWifiUnderlyingNetworkTemplate.Builder
20 android.provider.CloudMediaProviderContract.AlbumColumns
20 android.view.Choreographer
20 android.view.accessibility.CaptioningManager
18 java.lang.invoke.MethodHandles
18 android.media.midi.MidiDeviceInfo
17 android.media.AudioProfile
17 android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder
16 android.media.RouteDiscoveryPreference.Builder
16 android.net.PlatformVpnProfile
16 android.net.wifi.aware.SubscribeConfig
16 android.view.SurfaceControlViewHost.SurfacePackage
16 android.view.accessibility.CaptioningManager.CaptioningChangeListener
16 android.speech.RecognizerIntent
15 android.media.Image
15 android.provider.CloudMediaProvider
14 android.companion.AssociationRequest.Builder
14 android.graphics.text.MeasuredText
14 android.net.wifi.aware.WifiAwareNetworkInfo
13 android.net.Ikev2VpnProfile.Builder
12 android.bluetooth.BluetoothLeAudio
12 android.companion.CompanionDeviceService
12 android.net.vcn.VcnCellUnderlyingNetworkTemplate.Builder
12 android.speech.RecognitionService
12 android.telephony.CarrierConfigManager.Bsf
11 android.net.wifi.p2p.WifiP2pManager
11 android.hardware.SensorEvent
11 android.media.tv.TvInputManager
11 android.media.tv.TvView.TvInputCallback
11 android.os.VibrationEffect
11 android.os.VibrationEffect.Composition
11 android.text.PrecomputedText.Params
11 java.lang.invoke.MethodHandle
10 android.media.tv.TvInputService.Session
10 android.net.wifi.aware.PublishConfig.Builder
10 android.speech.RecognitionListener
9 android.net.wifi.aware.Characteristics
9 android.os.Vibrator
9 android.app.appsearch.SetSchemaRequest.Builder
9 android.graphics.RuntimeShader
9 android.hardware.camera2.CameraExtensionCharacteristics
9 android.location.GnssMeasurementsEvent
9 android.net.NetworkCapabilities
9 android.service.autofill.FillResponse
9 android.speech.RecognitionService.Callback
9 android.telephony.ims.ImsManager
9 android.view.AttachedSurfaceControl
9 java.lang.ref.Reference
8 android.bluetooth.le.ScanFilter
8 android.telephony.CarrierConfigManager.Ims
7 android.hardware.camera2.CameraExtensionSession.ExtensionCaptureCallback
7 android.net.wifi.aware.DiscoverySessionCallback
7 android.telephony.CarrierConfigManager.ImsEmergency
7 android.text.PrecomputedText.Params.Builder
7 java.security.KeyStore.Builder
7 android.content.pm.SharedLibraryInfo
7 android.media.ImageReader.Builder
7 android.net.nsd.NsdManager
7 android.net.wifi.SoftApConfiguration
7 android.net.wifi.aware.WifiAwareManager
7 android.hardware.camera2.CameraMetadata
6 android.hardware.Sensor
6 android.Manifest.permission_group
6 android.content.pm.InstallSourceInfo
6 android.inputmethodservice.AbstractInputMethodService
6 android.net.wifi.ScanResult.InformationElement
6 android.os.PowerManager.WakeLock
6 android.security.identity.IdentityCredentialStore
6 android.net.wifi.ScanResult
6 java.net.DatagramSocketImpl
6 android.content.pm.PackageInstaller
6 android.net.nsd.NsdServiceInfo
6 android.view.SurfaceControl.Transaction
6 android.app.ActivityOptions
6 java.net.ServerSocket
6 android.app.admin.SecurityLog
5 android.view.inputmethod.CursorAnchorInfo.Builder
5 android.speech.SpeechRecognizer
5 java.net.SocketImpl
5 android.app.VoiceInteractor
5 android.telephony.CarrierConfigManager.ImsRtt
5 android.bluetooth.BluetoothAdapter
4 android.net.wifi.WifiManager
4 android.bluetooth.le.ScanRecord
4 android.net.wifi.aware.SubscribeConfig.Builder
4 android.service.autofill.AutofillService
4 android.service.autofill.FillRequest
4 android.service.quickaccesswallet.QuickAccessWalletService
4 android.net.wifi.WifiInfo
4 android.telephony.TelephonyManager
4 android.graphics.text.MeasuredText.Builder
4 android.os.Build.VERSION
4 android.view.accessibility.AccessibilityEvent
4 java.net.StandardSocketOptions
4 android.net.IpSecManager
4 android.accessibilityservice.AccessibilityService
4 java.net.DatagramSocket
4 android.bluetooth.le.ScanFilter.Builder
4 android.content.pm.ShortcutInfo
3 android.view.inputmethod.InputConnection
3 android.Manifest.permission
3 android.media.MediaDrm
3 android.media.MediaRoute2Info.Builder
3 android.net.wifi.hotspot2.PasspointConfiguration
3 java.security.KeyStore
3 android.hardware.camera2.CameraCharacteristics
3 android.graphics.SurfaceTexture
3 android.media.ImageReader
3 android.view.HapticFeedbackConstants
3 android.media.MediaCodecInfo.CodecCapabilities
3 android.os.storage.StorageVolume
3 android.text.StaticLayout.Builder
3 android.provider.MediaStore
3 android.net.wifi.WifiConfiguration
3 android.os.LocaleList
3 java.net.SocketOptions
3 android.app.admin.DevicePolicyManager
2 java.net.Socket
2 android.text.PrecomputedText
2 android.telephony.euicc.EuiccManager
2 android.view.autofill.AutofillManager
2 android.view.accessibility.AccessibilityNodeInfo
2 android.os.Parcel
2 android.content.pm.ShortcutInfo.Builder
2 android.accessibilityservice.AccessibilityServiceInfo
2 android.bluetooth.BluetoothProfile
2 android.telephony.CarrierConfigManager.Iwlan
2 android.view.inputmethod.CursorAnchorInfo
2 android.media.MediaFormat
2 android.os.PowerManager
2 android.telecom.PhoneAccount
2 android.telephony.CarrierConfigManager.ImsVoice
2 android.net.wifi.p2p.WifiP2pDevice
2 java.security.KeyStoreSpi
2 android.telephony.SubscriptionManager
2 android.content.pm.PackageInstaller.SessionParams
2 android.media.tv.TvView
1 android.hardware.camera2.params.RecommendedStreamConfigurationMap
1 android.media.MediaRoute2Info
1 android.net.wifi.WifiNetworkSuggestion
1 java.lang.invoke.MethodType
1 android.net.wifi.WifiNetworkSuggestion.Builder
1 android.view.animation.Animation
1 android.view.accessibility.AccessibilityWindowInfo
1 android.os.storage.StorageManager
1 android.app.ApplicationExitInfo
1 android.location.GnssMeasurement
1 android.bluetooth.BluetoothDevice
1 android.content.pm.PackageManager
1 android.app.UiAutomation
1 android.telephony.CarrierConfigManager.ImsSs
1 android.content.Context
1 android.bluetooth.BluetoothCodecConfig
1 android.os.BatteryManager
1 android.hardware.HardwareBuffer
1 android.media.RingtoneManager
1 android.telephony.CarrierConfigManager
1 android.telephony.SmsMessage
1 android.content.pm.ActivityInfo
1 android.media.AudioDeviceInfo
1 org.json.JSONObject
1 android.os.Process
1 android.R.id
1 android.content.pm.PackageInstaller.SessionInfo
1 android.widget.AbsListView
<1 android.widget.RemoteViews
<1 android.R.attr
<1 android.view.accessibility.AccessibilityRecord
<1 android.telephony.data.ApnSetting
<1 android.provider.Settings.System
<1 android.view.InputDevice
<1 android.app.Activity
<1 android.media.MediaCodecInfo.CodecProfileLevel
<1 android.service.notification.NotificationListenerService
<1 android.inputmethodservice.InputMethodService
<1 android.app.Dialog
<1 android.media.AudioManager
<1 android.content.pm.ApplicationInfo
<1 android.os.UserManager
<1 android.widget.TextView
<1 android.telephony.SmsManager
<1 android.view.View
<1 android.view.MotionEvent
<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%.