API Change Statistics

The overall difference between API Levels 36 and c-beta1 is approximately 0.94%.


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 0 38 1 39
Classes and Interfaces 22 113 0 135
Constructors 2 16 0 18
Methods 88 121 0 209
Fields 290 28 1 319
Total 402 316 2 720

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
69 android.crypto.hpke
50 android.app.sdksandbox.sdkprovider
40 android.app.sdksandbox
20 android.telephony.satellite
8 android.telephony.data
6 android.health.connect
4 android.media.session
4 android.net.wifi.rtt
3 android.widget.photopicker
2 android.media
1 android.net.wifi.p2p
1 android.telecom
1 android.health.connect.datatypes
1 android.view.accessibility
1 android.net.wifi.aware
1 android.companion
<1 android.bluetooth
<1 android.hardware.biometrics
<1 android.telephony
<1 android.view
<1 android.provider
<1 android.hardware.camera2
<1 android.view.inputmethod
<1 android.os
<1 android.telephony.ims
<1 android.webkit
<1 android
<1 android.security
<1 android.net.wifi
<1 android.hardware
<1 android.graphics
<1 android.hardware.camera2.params
<1 android.app.appsearch
<1 android.content.pm
<1 android.text
<1 android.net
<1 android.app
<1 android.content

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
70 android.media.Session2CommandGroup.Builder
66 android.media.Session2CommandGroup
64 android.telephony.data.TrafficDescriptor
61 android.media.Session2Command
50 android.app.sdksandbox.AppOwnedSdkSandboxInterface
50 android.app.sdksandbox.LoadSdkException
50 android.app.sdksandbox.SandboxedSdk
50 android.app.sdksandbox.SdkSandboxManager.SdkSandboxProcessDeathCallback
50 android.app.sdksandbox.sdkprovider.SdkSandboxActivityHandler
50 android.app.sdksandbox.sdkprovider.SdkSandboxClientImportanceListener
50 android.app.sdksandbox.sdkprovider.SdkSandboxController
50 android.media.MediaCommunicationManager
50 android.media.MediaController2
50 android.media.MediaController2.Builder
50 android.media.MediaController2.ControllerCallback
50 android.media.MediaSession2
50 android.media.MediaSession2.Builder
50 android.media.MediaSession2.ControllerInfo
50 android.media.MediaSession2.SessionCallback
50 android.media.MediaSession2Service
50 android.media.MediaSession2Service.MediaNotification
50 android.media.Session2Command.Result
50 android.media.Session2Token
50 android.media.session.MediaSessionManager.OnSession2TokensChangedListener
41 android.app.sdksandbox.SandboxedSdkProvider
40 android.app.sdksandbox.SdkSandboxManager
38 android.health.connect.HealthPermissions
25 android.view.accessibility.AccessibilityNodeInfo.ExtraRenderingInfo
23 android.provider.ContactsContract.Settings
21 android.media.session.MediaSessionManager
20 android.bluetooth.BluetoothStatusCodes
20 android.os.SecurityStateManager
20 android.provider.MediaStore.Files.FileColumns
16 android.net.wifi.rtt.PasnConfig.Builder
16 android.telecom.CallAttributes.Builder
15 android.view.SurfaceControlViewHost
15 android.net.wifi.aware.SubscribeConfig.Builder
15 android.webkit.WebChromeClient.FileChooserParams
14 android.os.ProfilingTrigger
13 android.widget.photopicker.EmbeddedPhotoPickerFeatureInfo.Builder
11 android.companion.AssociationRequest
11 android.net.wifi.aware.SubscribeConfig
11 android.net.wifi.rtt.ResponderConfig.Builder
11 android.telephony.data.TrafficDescriptor.Builder
11 android.view.inputmethod.TextAttribute.Builder
10 android.telecom.Call
10 android.telecom.CallRedirectionService
9 android.net.wifi.rtt.RangingResult
9 android.net.wifi.rtt.RangingResult.Builder
9 android.telecom.CallControl
9 android.view.inputmethod.TextAttribute
8 android.widget.photopicker.EmbeddedPhotoPickerFeatureInfo
8 android.hardware.biometrics.BiometricManager
7 android.hardware.camera2.CameraManager.AvailabilityCallback
7 android.telecom.CallAttributes
7 android.view.SurfaceControl
7 android.bluetooth.BluetoothCodecType
5 android.net.wifi.rtt.ResponderConfig
5 android.companion.AssociationRequest.Builder
4 android.bluetooth.BluetoothA2dp
4 android.media.MediaCodecInfo.CodecProfileLevel
4 android.net.wifi.rtt.PasnConfig
4 android.telecom.Conference
4 android.companion.AssociationInfo
4 android.net.wifi.p2p.WifiP2pConfig.Builder
4 android.telephony.ims.ImsRegistrationAttributes
4 android.view.Surface
3 android.health.connect.HealthConnectManager
3 android.net.wifi.WifiConfiguration
3 android.provider.CallLog.Calls
3 android.view.accessibility.AccessibilityEvent
2 android.R.color
2 android.app.appsearch.AppSearchResult
2 android.graphics.RuntimeShader
2 android.telephony.CarrierConfigManager
2 android.graphics.ColorSpace.Named
2 android.os.Build
2 android.hardware.camera2.CameraCaptureSession
2 android.media.RingtoneManager
2 android.telecom.TelecomManager
2 android.telecom.Connection
2 android.net.wifi.p2p.WifiP2pGroup
2 android.hardware.HardwareBuffer
1 android.bluetooth.BluetoothHeadset
1 android.security.KeyStoreException
1 android.net.wifi.p2p.WifiP2pDevice
1 android.net.wifi.p2p.WifiP2pConfig
1 android.telephony.NetworkRegistrationInfo
1 android.app.AutomaticZenRule
1 android.content.pm.PackageInstaller.SessionParams
1 android.os.Build.VERSION_CODES_FULL
1 android.os.Build.VERSION_CODES
1 android.text.InputType
1 android.bluetooth.BluetoothDevice
1 android.hardware.camera2.params.OutputConfiguration
1 android.telecom.PhoneAccount
1 android.hardware.DataSpace
<1 android.content.pm.PackageInstaller.SessionInfo
<1 android.telephony.TelephonyManager
<1 android.net.NetworkCapabilities
<1 android.media.MediaRecorder
<1 android.telecom.Call.Details
<1 android.bluetooth.BluetoothAdapter
<1 android.hardware.camera2.CaptureRequest
<1 android.hardware.camera2.CaptureResult
<1 android.media.AudioFormat
<1 android.webkit.WebView
<1 android.provider.Settings
<1 android.media.AudioManager
<1 android.media.MediaFormat
<1 android.content.Context
<1 android.Manifest.permission
<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%.