API Change Statistics

The overall difference between API Levels 36 and b-1-beta1 is approximately 0.98%.


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 54 0 55
Classes and Interfaces 32 158 0 190
Constructors 7 3 0 10
Methods 198 13 0 211
Fields 179 84 0 263
Total 417 312 0 729

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
33 android.os.vibrator
25 android.ranging.wifi.rtt
18 android.service.chooser
16 android.health.connect.changelog
15 android.devicelock
13 java.util.stream
10 android.appwidget
10 android.telephony.satellite
9 android.net.wifi
7 android.graphics.pdf
6 android.service.quicksettings
6 android.hardware.display
5 android.app.backup
5 android.view.accessibility
5 android.view.inspector
4 android.hardware.biometrics
4 android.adservices.ondevicepersonalization
4 android
3 android.widget.photopicker
3 android.system
3 android.app.appsearch
2 android.ranging.raw
2 android.content.om
2 android.nfc.cardemulation
1 android.bluetooth
1 android.telephony.ims
1 android.ranging.oob
<1 android.companion
<1 android.bluetooth.le
<1 android.ranging
<1 android.telephony
<1 android.health.connect.datatypes
<1 android.media
<1 java.nio.file
<1 android.telecom
<1 android.net.wifi.p2p
<1 android.os
<1 android.app
<1 android.service.notification
<1 android.service.voice
<1 android.nfc
<1 android.net.nsd
<1 android.security.keystore
<1 android.provider
<1 android.hardware.camera2.params
<1 android.app.admin
<1 android.health.connect
<1 android.view
<1 java.time
<1 android.view.textclassifier
<1 android.graphics.drawable
<1 android.content
<1 android.graphics
<1 android.widget

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
54 android.R.integer
50 android.health.connect.datatypes.ExerciseSegment.Builder
50 android.net.wifi.WifiConfiguration.GroupMgmtCipher
50 android.net.wifi.WifiConfiguration.KeyMgmt
50 android.net.wifi.WifiConfiguration.Status
50 android.view.inspector.WindowInspector
48 android.net.wifi.WifiConfiguration
45 android.R.dimen
43 android.net.wifi.WifiConfiguration.PairwiseCipher
42 android.health.connect.changelog.ChangeLogsResponse.DeletedLog
41 android.net.wifi.WifiConfiguration.AuthAlgorithm
40 android.adservices.ondevicepersonalization.OnDevicePersonalizationManager
40 android.net.wifi.WifiConfiguration.Protocol
38 android.net.wifi.WifiConfiguration.GroupCipher
38 android.health.connect.datatypes.ExerciseSegment
33 android.adservices.ondevicepersonalization.InferenceOutput
33 android.app.appsearch.SearchResult.MatchRange
33 android.graphics.pdf.RenderParams
33 android.net.wifi.SoftApConfiguration.Builder
28 android.os.ProfilingTrigger
23 java.nio.file.FileSystems
22 android.health.connect.datatypes.Device
21 android.graphics.pdf.PdfRendererPreV.Page
20 android.adservices.ondevicepersonalization.FederatedComputeScheduler
20 android.devicelock.DeviceLockManager
20 android.telephony.ims.ImsRegistrationAttributes
20 android.telephony.satellite.SatelliteManager
19 android.graphics.pdf.PdfRenderer.Page
17 android.hardware.biometrics.BiometricManager
17 android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo
16 android.adservices.ondevicepersonalization.OnDevicePersonalizationException
14 android.adservices.ondevicepersonalization.InferenceInput.Builder
14 android.app.appsearch.AppSearchSchema.BlobHandlePropertyConfig.Builder
14 android.app.appsearch.AppSearchSchema.BytesPropertyConfig.Builder
13 android.service.quicksettings.TileService
12 android.hardware.display.DisplayManager
12 android.health.connect.changelog.ChangeLogsResponse
11 android.media.MediaRouter2
11 android.adservices.ondevicepersonalization.InferenceInput
11 android.adservices.ondevicepersonalization.InferenceOutput.Builder
11 android.app.appsearch.AppSearchSchema.BooleanPropertyConfig.Builder
11 android.app.appsearch.AppSearchSchema.DoublePropertyConfig.Builder
11 android.content.om.FabricatedOverlay
11 android.devicelock.DeviceId
11 android.graphics.pdf.RenderParams.Builder
11 android.health.connect.changelog.ChangeLogTokenRequest.Builder
11 android.provider.CloudMediaProviderContract.Capabilities.Builder
11 android.telecom.CallAttributes.Builder
11 android.widget.photopicker.EmbeddedPhotoPickerFeatureInfo.Builder
10 android.bluetooth.le.ScanSettings.Builder
10 android.health.connect.datatypes.ExerciseSessionRecord
10 android.widget.photopicker.EmbeddedPhotoPickerFeatureInfo
9 android.bluetooth.le.ScanSettings
9 android.app.appsearch.AppSearchSchema.EmbeddingPropertyConfig.Builder
9 android.app.appsearch.AppSearchSchema.LongPropertyConfig.Builder
9 android.app.appsearch.AppSearchSchema.PropertyConfig
9 android.app.appsearch.SearchResult.MatchInfo.Builder
9 android.app.backup.BackupAgent
9 android.health.connect.changelog.ChangeLogTokenRequest
9 android.net.wifi.p2p.WifiP2pPairingBootstrappingConfig
9 android.os.ProfilingManager
9 android.provider.CloudMediaProviderContract.Capabilities
9 android.ranging.RangingData
8 android.app.KeyguardManager
8 android.ranging.raw.RawRangingDevice
7 android.app.appsearch.AppSearchSchema
7 android.app.appsearch.AppSearchSchema.StringPropertyConfig.Builder
7 android.app.appsearch.SearchResult.MatchInfo
7 android.bluetooth.BluetoothGatt
7 android.hardware.biometrics.BiometricPrompt.CryptoObject
7 android.health.connect.datatypes.ExerciseSessionRecord.Builder
7 android.nfc.cardemulation.CardEmulation
7 android.media.MediaRoute2Info.Builder
6 android.os.Build
6 android.bluetooth.BluetoothDevice
6 android.adservices.ondevicepersonalization.InferenceInput.Params
6 android.nfc.cardemulation.CardEmulation.NfcEventCallback
6 android.ranging.RangingManager
6 android.ranging.raw.RawRangingDevice.Builder
5 android.app.appsearch.AppSearchSchema.Builder
5 android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder
5 android.companion.AssociationRequest.Builder
5 android.provider.MediaStore
5 android.ranging.oob.OobInitiatorRangingConfig.Builder
5 android.view.ViewConfiguration
5 android.appwidget.AppWidgetHostView
5 android.media.MediaRecorder.VideoEncoder
4 android.telecom.ConnectionService
4 android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo.Builder
4 android.companion.AssociationInfo
4 android.net.wifi.p2p.WifiP2pManager.ExternalApproverRequestListener
4 android.bluetooth.BluetoothCodecType
4 android.bluetooth.BluetoothGattServerCallback
3 android.telephony.CarrierConfigManager
3 android.hardware.biometrics.BiometricPrompt.Builder
3 android.companion.AssociationRequest
3 android.companion.DevicePresenceEvent
3 android.nfc.NfcAdapter
3 android.ranging.oob.OobInitiatorRangingConfig
3 android.service.voice.VoiceInteractionService
3 android.companion.CompanionDeviceManager
2 java.nio.file.Files
2 android.bluetooth.BluetoothGattCallback
2 android.telecom.CallAttributes
2 android.hardware.biometrics.BiometricPrompt
2 android.provider.CloudMediaProviderContract
2 android.os.Debug
2 android.bluetooth.BluetoothProfile
2 android.app.admin.DevicePolicyIdentifiers
2 android.security.keystore.KeyInfo
2 android.hardware.camera2.params.OutputConfiguration
2 android.net.nsd.NsdManager
2 android.health.connect.HealthConnectManager
2 android.media.MediaRoute2ProviderService
2 android.os.VibrationAttributes
2 android.service.notification.NotificationListenerService.Ranking
1 android.view.ViewTreeObserver
1 android.view.accessibility.AccessibilityWindowInfo
1 android.os.Build.VERSION_CODES_FULL
1 android.app.Notification.Builder
1 android.view.WindowManager
1 android.view.textclassifier.TextClassifier
1 android.bluetooth.BluetoothLeAudioCodecConfig
1 android.provider.CallLog.Calls
1 android.view.ViewParent
1 android.telecom.PhoneAccount
1 java.util.stream.Stream
1 android.telecom.TelecomManager
<1 android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
<1 android.graphics.drawable.GradientDrawable
<1 android.app.NotificationChannel
<1 android.appwidget.AppWidgetManager
<1 android.app.appsearch.SearchSpec.Builder
<1 android.app.Notification
<1 android.view.Display
<1 android.app.appsearch.SearchSpec
<1 java.time.Duration
<1 android.media.MediaRoute2Info
<1 android.os.Parcel
<1 android.view.accessibility.AccessibilityNodeInfo
<1 android.graphics.Paint
<1 android.service.notification.NotificationListenerService
<1 android.view.WindowManager.LayoutParams
<1 android.Manifest.permission
<1 android.telecom.Connection
<1 android.net.wifi.p2p.WifiP2pManager
<1 android.view.accessibility.AccessibilityEvent
<1 android.health.connect.HealthPermissions
<1 android.R.id
<1 android.system.Os
<1 android.widget.RemoteViews
<1 android.provider.Settings
<1 android.content.Context
<1 android.view.View
<1 android.telephony.SmsManager
<1 android.media.AudioManager
<1 android.media.MediaFormat
<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%.