API Change Statistics

The overall difference between API Levels 32 and 33 is approximately 4.02%.


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 6 100 0 106
Classes and Interfaces 183 413 0 596
Constructors 34 21 0 55
Methods 890 230 7 1127
Fields 731 47 0 778
Total 1844 811 7 2662

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
56 java.security.acl
31 android.speech
31 android.net.vcn
31 android.window
29 android.media.tv
26 android.net.eap
24 android.accessibilityservice
18 android.companion
18 java.security.interfaces
18 java.lang.ref
17 android.net.wifi.aware
16 android.telephony.ims
16 android.graphics.text
15 android.bluetooth
14 android.security.identity
14 java.util.concurrent.atomic
13 android.net.wifi.rtt
13 android.view.accessibility
12 java.lang.invoke
12 android.app.admin
11 android.media.metrics
11 android.net.ipsec.ike.exceptions
11 java.security.spec
9 android.bluetooth.le
9 android.content.pm
9 android.view.inputmethod
8 android.location
7 android.service.autofill
7 android.system
7 android.net
6 android.net.wifi
5 android.telephony
5 android.service.carrier
5 android.hardware
5 android.media.midi
5 android.hardware.camera2.params
4 android.media.session
3 android.net.nsd
3 android.hardware.biometrics
3 java.math
3 android.app.appsearch
3 android.app
3 android.net.wifi.p2p
2 android.app.job
2 android.security
2 android.icu.text
2 java.util
2 android.hardware.camera2
1 android.view
1 android.provider
1 android.database
1 android.animation
1 android.net.wifi.hotspot2
1 android.view.translation
1 android.util
1 android.os
1 android.icu.util
1 android.telephony.data
1 java.io
1 java.lang.reflect
1 android.media
1 android.graphics
1 java.util.concurrent
1 android.os.storage
1 android.service.controls
1 java.net
1 android.text.style
<1 android.print
<1 java.security.cert
<1 android.inputmethodservice
<1 android
<1 android.view.autofill
<1 android.opengl
<1 android.telephony.euicc
<1 android.text
<1 java.lang
<1 java.util.stream
<1 android.service.quickaccesswallet
<1 java.util.concurrent.locks
<1 android.text.util
<1 java.nio.channels
<1 android.net.ipsec.ike
<1 android.icu.number
<1 android.telecom
<1 android.content
<1 android.icu.lang
<1 org.json
<1 java.util.function
<1 android.database.sqlite
<1 android.graphics.drawable
<1 java.security
<1 java.nio
<1 android.view.animation
<1 android.webkit
<1 java.util.jar
<1 java.nio.file
<1 android.service.notification
<1 android.preference
<1 android.content.res
<1 android.widget

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener
100 android.app.StatusBarManager
77 android.telephony.CarrierConfigManager.Ims
75 android.net.VpnManager
75 android.service.autofill.Dataset.Builder
71 android.graphics.BitmapShader
70 android.bluetooth.le.ScanRecord
60 android.app.PictureInPictureParams
60 android.hardware.SensorPrivacyManager
60 android.location.Geocoder
60 java.util.Observable
50 android.companion.AssociationRequest
50 android.companion.CompanionDeviceService
50 android.media.midi.MidiManager
50 android.security.identity.ResultData
50 android.service.carrier.CarrierService
50 java.security.acl.Acl
50 java.security.acl.AclEntry
50 java.security.acl.AclNotFoundException
50 java.security.acl.Group
50 java.security.acl.LastOwnerException
50 java.security.acl.NotOwnerException
50 java.security.acl.Owner
50 java.util.Observer
48 java.util.concurrent.atomic.AtomicBoolean
45 android.companion.CompanionDeviceManager
44 android.media.EncoderProfiles.VideoProfile
42 android.app.appsearch.GetSchemaResponse
41 android.accessibilityservice.AccessibilityService.MagnificationController
40 android.app.appsearch.GlobalSearchSession
40 android.media.metrics.MediaMetricsManager
37 java.util.concurrent.atomic.AtomicReference
37 android.companion.CompanionDeviceManager.Callback
36 android.app.appsearch.SetSchemaRequest
36 android.graphics.text.MeasuredText.Builder
35 java.util.concurrent.atomic.AtomicReferenceArray
35 android.app.ActivityManager.TaskDescription
33 android.net.DnsResolver.DnsException
33 android.net.wifi.aware.WifiAwareNetworkSpecifier
33 android.view.translation.UiTranslationStateCallback
33 java.lang.reflect.MalformedParameterizedTypeException
33 java.security.spec.ECGenParameterSpec
32 android.hardware.camera2.params.OutputConfiguration
30 java.lang.invoke.MethodHandles
30 java.util.OptionalDouble
30 java.util.OptionalInt
30 java.util.OptionalLong
29 android.bluetooth.BluetoothStatusCodes
29 android.telephony.ims.ImsRcsManager
29 android.view.SurfaceControl.Transaction
29 android.bluetooth.BluetoothGattCallback
28 java.io.FileWriter
27 android.hardware.biometrics.BiometricPrompt.CryptoObject
27 java.util.concurrent.atomic.AtomicIntegerArray
27 java.util.concurrent.atomic.AtomicLongArray
27 android.app.appsearch.GetSchemaResponse.Builder
27 android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo
26 android.app.PictureInPictureParams.Builder
26 android.opengl.EGLExt
25 android.net.wifi.aware.Characteristics
25 android.service.autofill.FillResponse.Builder
25 android.accessibilityservice.AccessibilityService.SoftKeyboardController
25 android.bluetooth.BluetoothClass
25 android.icu.text.ListFormatter
25 android.provider.ContactsContract.Settings
25 android.window.SplashScreen
25 java.io.FileReader
24 java.util.concurrent.atomic.AtomicInteger
24 java.util.concurrent.atomic.AtomicLong
23 android.media.ImageWriter
23 android.telephony.UiccCardInfo
23 android.companion.AssociationRequest.Builder
23 android.hardware.camera2.params.MandatoryStreamCombination.MandatoryStreamInformation
23 android.media.AudioDescriptor
23 android.net.wifi.aware.PublishConfig
21 android.security.identity.IdentityCredential
20 java.util.Optional
20 android.bluetooth.BluetoothLeAudio
20 android.media.MediaRecorder.VideoEncoder
20 android.net.eap.EapSessionConfig.EapAkaConfig
20 android.print.PrintManager
20 android.view.Choreographer
20 android.view.accessibility.CaptioningManager
20 java.io.InputStream
20 java.lang.IndexOutOfBoundsException
20 java.net.URLEncoder
20 java.util.Enumeration
19 android.os.Parcel
19 android.hardware.camera2.CameraExtensionCharacteristics
18 android.net.wifi.p2p.WifiP2pManager
18 android.media.midi.MidiDeviceInfo
18 android.net.RouteInfo
18 android.view.accessibility.AccessibilityNodeInfo.CollectionInfo
17 android.media.AudioProfile
16 android.media.Image
16 android.media.session.MediaSessionManager
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 java.util.Arrays
14 android.net.wifi.SoftApConfiguration
14 android.net.wifi.ScanResult
14 android.app.appsearch.SearchResult.MatchInfo
14 android.graphics.text.MeasuredText
14 android.hardware.camera2.CameraManager.TorchCallback
14 android.media.Spatializer
14 android.net.wifi.aware.AttachCallback
14 java.net.URLDecoder
13 android.net.nsd.NsdManager
13 android.app.ActivityOptions
13 android.net.Ikev2VpnProfile.Builder
13 java.nio.channels.Selector
12 android.content.pm.PackageManager
12 android.bluetooth.BluetoothGatt
12 android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder
12 android.speech.RecognitionService
12 android.content.pm.PackageInstaller.SessionInfo
12 android.bluetooth.BluetoothGattCharacteristic
12 android.view.accessibility.AccessibilityManager
11 java.lang.Boolean
11 android.app.appsearch.SearchResult.MatchInfo.Builder
11 android.bluetooth.le.ScanCallback
11 android.hardware.SensorEvent
11 android.location.GnssMeasurementRequest
11 android.location.GnssMeasurementRequest.Builder
11 android.media.ImageReader
11 android.media.tv.TvInputManager
11 android.media.tv.TvView.TvInputCallback
11 android.net.vcn.VcnGatewayConnectionConfig
11 android.net.wifi.aware.WifiAwareManager
11 android.os.Bundle
11 android.text.PrecomputedText.Params
11 android.text.style.StyleSpan
11 java.lang.invoke.MethodHandle
10 android.media.tv.TvInputService.Session
10 android.view.inputmethod.InputConnection
10 android.Manifest.permission_group
10 java.util.concurrent.TimeUnit
10 android.location.Location
10 android.service.autofill.FillEventHistory.Event
10 android.app.KeyguardManager
10 android.app.job.JobWorkItem
10 android.net.wifi.aware.PublishConfig.Builder
10 android.net.wifi.rtt.RangingRequest.Builder
10 android.speech.RecognitionListener
9 android.telephony.SubscriptionManager
9 android.bluetooth.BluetoothGattServer
9 android.net.wifi.WifiConfiguration
9 android.net.NetworkCapabilities
9 android.app.GameManager
9 android.app.appsearch.SetSchemaRequest.Builder
9 android.content.AttributionSource.Builder
9 android.location.GnssMeasurementsEvent
9 android.os.VibrationAttributes
9 android.os.VibrationAttributes.Builder
9 android.service.autofill.FillRequest
9 android.service.autofill.FillResponse
9 android.speech.RecognitionService.Callback
9 android.telephony.ims.ImsManager
9 android.text.BoringLayout
9 android.view.AttachedSurfaceControl
9 java.lang.ref.Reference
9 java.nio.channels.Channels
9 java.util.function.Predicate
8 java.math.BigDecimal
8 android.bluetooth.le.ScanFilter
8 android.net.wifi.WifiNetworkSuggestion
8 android.telephony.data.ApnSetting.Builder
8 java.io.ByteArrayInputStream
8 android.bluetooth.BluetoothProfile
8 android.content.pm.ShortcutInfo
8 android.os.Vibrator
8 java.lang.Float
8 android.media.MediaFormat
8 android.view.accessibility.AccessibilityEvent
7 android.telephony.TelephonyManager
7 android.bluetooth.le.ScanFilter.Builder
7 android.hardware.camera2.CameraExtensionSession.ExtensionCaptureCallback
7 android.net.ipsec.ike.IkeSessionConfiguration
7 android.net.vcn.VcnGatewayConnectionConfig.Builder
7 android.net.wifi.aware.DiscoverySessionCallback
7 android.net.wifi.aware.WifiAwareNetworkInfo
7 android.text.PrecomputedText.Params.Builder
7 java.io.ByteArrayOutputStream
7 java.io.OutputStream
7 java.io.Reader
7 java.security.KeyStore.Builder
7 java.util.stream.Collectors
7 java.util.concurrent.locks.StampedLock
7 android.app.job.JobInfo
7 android.hardware.camera2.CameraMetadata
7 android.accessibilityservice.AccessibilityService
6 android.hardware.Sensor
6 android.accessibilityservice.AccessibilityGestureEvent
6 android.content.pm.InstallSourceInfo
6 android.graphics.drawable.AdaptiveIconDrawable
6 android.hardware.camera2.CameraManager
6 android.icu.number.FormattedNumber
6 android.inputmethodservice.AbstractInputMethodService
6 android.net.IpPrefix
6 android.net.wifi.ScanResult.InformationElement
6 android.os.PowerManager.WakeLock
6 android.os.Process
6 android.os.SystemClock
6 android.security.identity.IdentityCredentialStore
6 android.view.SurfaceControl.Builder
6 java.util.concurrent.ConcurrentLinkedQueue
6 android.view.accessibility.AccessibilityRecord
6 android.net.wifi.WifiManager
6 java.lang.invoke.MethodHandles.Lookup
6 java.net.DatagramSocketImpl
6 android.content.pm.PackageInstaller
6 android.net.nsd.NsdServiceInfo
6 android.telephony.SubscriptionInfo
6 java.lang.Long
6 java.net.ServerSocket
6 android.app.admin.SecurityLog
6 java.lang.Integer
5 android.bluetooth.BluetoothAdapter
5 android.os.PowerManager
5 android.bluetooth.le.AdvertiseData.Builder
5 android.media.MediaActionSound
5 android.net.eap.EapSessionConfig.Builder
5 android.net.ipsec.ike.IkeSessionConfiguration.Builder
5 android.telecom.CallRedirectionService
5 android.telephony.ims.ImsMmTelManager
5 android.view.inputmethod.CursorAnchorInfo.Builder
5 java.util.IntSummaryStatistics
5 android.net.wifi.WifiInfo
5 android.speech.SpeechRecognizer
5 java.net.SocketImpl
5 android.database.sqlite.SQLiteDatabase
5 android.Manifest.permission
5 android.content.pm.ShortcutInfo.Builder
5 android.icu.text.DateIntervalFormat
5 android.view.accessibility.AccessibilityNodeInfo.RangeInfo
5 java.lang.Double
5 android.view.accessibility.AccessibilityNodeInfo
5 android.app.VoiceInteractor
5 android.bluetooth.le.AdvertiseData
5 android.net.wifi.WifiNetworkSuggestion.Builder
5 java.nio.channels.SelectionKey
5 java.util.LongSummaryStatistics
5 android.bluetooth.BluetoothGattDescriptor
5 android.graphics.HardwareRenderer
4 android.app.Service
4 android.bluetooth.BluetoothClass.Service
4 android.content.AttributionSource
4 android.content.pm.CrossProfileApps
4 android.net.VpnService.Builder
4 android.net.wifi.aware.SubscribeConfig.Builder
4 android.service.autofill.AutofillService
4 android.service.quickaccesswallet.QuickAccessWalletService
4 android.telephony.data.ApnSetting
4 android.provider.MediaStore
4 java.math.BigInteger
4 android.graphics.RenderEffect
4 android.os.Build.VERSION
4 android.os.SharedMemory
4 android.telephony.AvailableNetworkInfo
4 java.io.Writer
4 java.net.StandardSocketOptions
4 java.nio.file.FileStore
4 android.webkit.WebSettings
4 android.hardware.camera2.CameraCharacteristics
4 android.app.UiAutomation
4 android.net.IpSecManager
4 java.net.DatagramSocket
4 android.app.job.JobInfo.Builder
3 android.hardware.HardwareBuffer
3 android.bluetooth.BluetoothClass.Device
3 android.media.AudioAttributes
3 android.animation.ValueAnimator
3 android.content.pm.SharedLibraryInfo
3 android.icu.number.NumberFormatterSettings
3 android.net.Ikev2VpnProfile
3 android.media.tv.TvContract.Programs
3 java.io.PrintStream
3 java.lang.String
3 android.icu.util.MeasureUnit
3 android.media.MediaDrm
3 android.graphics.SurfaceTexture
3 android.net.wifi.hotspot2.PasspointConfiguration
3 java.security.KeyStore
3 android.inputmethodservice.InputMethodService
3 android.view.HapticFeedbackConstants
3 android.view.accessibility.AccessibilityWindowInfo
3 android.view.animation.Animation
3 android.media.MediaCodecInfo.CodecCapabilities
3 android.os.storage.StorageVolume
3 android.service.controls.Control.StatefulBuilder
3 android.text.StaticLayout.Builder
3 java.io.PrintWriter
3 java.util.concurrent.ArrayBlockingQueue
3 java.util.concurrent.LinkedBlockingQueue
3 android.net.wifi.WifiEnterpriseConfig
3 android.view.inputmethod.InputMethodManager
3 android.icu.util.Currency
3 android.os.LocaleList
3 java.net.SocketOptions
3 android.os.UserManager
2 android.graphics.ColorSpace
2 android.view.autofill.AutofillManager
2 java.net.Socket
2 android.content.pm.PackageInstaller.Session
2 android.net.ipsec.ike.IkeSessionParams
2 android.telephony.euicc.EuiccManager
2 android.text.PrecomputedText
2 java.util.concurrent.PriorityBlockingQueue
2 android.media.AudioManager
2 android.app.admin.DevicePolicyManager
2 java.util.concurrent.ConcurrentHashMap.KeySetView
2 android.accessibilityservice.AccessibilityServiceInfo
2 android.telephony.CarrierConfigManager.Iwlan
2 android.text.util.Linkify
2 android.view.inputmethod.CursorAnchorInfo
2 java.util.Collection
2 java.util.concurrent.LinkedTransferQueue
2 android.provider.Settings
2 android.media.tv.TvContract.RecordedPrograms
2 android.service.controls.Control
2 android.view.inputmethod.InputMethodInfo
2 android.text.Layout
2 android.icu.text.PluralRules
2 android.telecom.PhoneAccount
2 java.lang.SecurityManager
2 android.bluetooth.BluetoothDevice
2 android.net.wifi.p2p.WifiP2pDevice
2 java.security.KeyStoreSpi
2 android.telephony.CarrierConfigManager
2 android.icu.lang.UCharacter
2 android.app.NotificationChannel
2 android.content.pm.PackageInstaller.SessionParams
2 android.media.tv.TvView
2 android.util.ArraySet
2 android.content.Intent
2 android.view.KeyEvent
1 android.content.ClipDescription
1 android.hardware.camera2.params.RecommendedStreamConfigurationMap
1 java.util.SplittableRandom
1 java.lang.Thread
1 java.util.concurrent.ConcurrentLinkedDeque
1 android.icu.lang.UCharacter.UnicodeBlock
1 java.nio.ByteBuffer
1 android.webkit.WebChromeClient
1 java.lang.invoke.MethodType
1 android.R.id
1 android.app.job.JobParameters
1 android.os.storage.StorageManager
1 android.telecom.TelecomManager
1 android.app.ApplicationExitInfo
1 android.os.BaseBundle
1 android.location.GnssMeasurement
1 android.telephony.SmsManager
1 android.media.MediaMetadataRetriever
1 android.os.Build.VERSION_CODES
1 android.content.Context
1 android.content.IntentFilter
1 java.util.concurrent.ForkJoinPool
1 java.util.concurrent.ThreadPoolExecutor
1 android.preference.PreferenceActivity
1 java.lang.StrictMath
1 android.media.MediaExtractor
1 android.os.BatteryManager
1 android.text.InputType
1 android.media.RingtoneManager
1 android.R.attr
1 android.icu.text.DecimalFormat
1 java.lang.Math
1 java.util.concurrent.LinkedBlockingDeque
1 android.media.tv.TvContract.PreviewPrograms
1 android.media.tv.TvContract.WatchNextPrograms
1 android.icu.lang.UScript
1 android.telephony.SmsMessage
1 android.app.Activity
1 android.content.pm.ActivityInfo
1 android.media.AudioDeviceInfo
1 android.icu.util.VersionInfo
1 android.view.ViewParent
1 org.json.JSONObject
1 android.app.Dialog
1 android.icu.text.DateTimePatternGenerator
1 java.util.jar.JarEntry
1 android.widget.AbsListView
1 android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
<1 android.icu.lang.UCharacter.JoiningGroup
<1 android.widget.RemoteViews
<1 android.provider.Settings.Global
<1 android.provider.Settings.System
<1 android.telecom.Call.Details
<1 android.widget.TextView
<1 android.view.InputDevice
<1 android.media.MediaCodecInfo.CodecProfileLevel
<1 android.app.Instrumentation
<1 android.icu.text.DecimalFormatSymbols
<1 android.app.NotificationManager
<1 android.graphics.Paint
<1 android.service.notification.NotificationListenerService
<1 android.provider.CallLog.Calls
<1 android.telecom.Connection
<1 android.content.pm.ApplicationInfo
<1 android.media.AudioTrack
<1 android.content.res.Configuration
<1 android.icu.util.ULocale
<1 android.view.View
<1 android.icu.text.DateFormat
<1 android.view.WindowManager.LayoutParams
<1 android.view.Window
<1 android.view.MotionEvent
<1 android.R.style
<1 java.security.acl.Permission

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