API Change Statistics

The overall difference between API Levels 32 and t-dp1 is approximately 1.68%.


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 75 0 76
Classes and Interfaces 78 270 0 348
Constructors 29 15 0 44
Methods 544 161 7 712
Fields 316 24 0 340
Total 968 545 7 1520

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
56 java.security.acl
31 android.net.vcn
24 android.net.eap
16 android.companion
16 java.lang.ref
14 android.accessibilityservice
14 java.util.concurrent.atomic
13 android.net.wifi.rtt
12 android.bluetooth
11 android.view.autofill
11 android.view.accessibility
9 java.lang.invoke
8 android.window
6 android.telephony.ims
6 android.net.wifi.aware
6 android.view.inputmethod
5 android.service.carrier
5 android.content.pm
5 android.telephony
5 android.bluetooth.le
4 android.location
4 android.graphics.text
4 android.media.session
3 java.math
2 android.app.job
2 android.security
2 android.net.wifi
2 android.icu.text
2 java.util
1 android.provider
1 android.hardware
1 android.icu.util
1 java.io
1 android.app
1 java.lang.reflect
1 java.util.concurrent
1 android.hardware.camera2
1 android.telephony.data
1 android.service.controls
1 android.net
1 android.text.style
<1 android.telephony.euicc
<1 java.security.cert
<1 android.os
<1 java.lang
<1 android.graphics
<1 java.util.stream
<1 java.net
<1 java.util.concurrent.locks
<1 android.text.util
<1 java.nio.channels
<1 android.view
<1 android.app.appsearch
<1 android.nfc.cardemulation
<1 android.net.ipsec.ike
<1 android.icu.number
<1 android.media
<1 android.telecom
<1 android
<1 android.media.tv
<1 android.icu.lang
<1 android.text
<1 android.content
<1 java.util.function
<1 android.database.sqlite
<1 android.graphics.drawable
<1 android.inputmethodservice
<1 java.nio
<1 android.net.wifi.p2p
<1 java.util.jar
<1 java.nio.file
<1 android.webkit
<1 android.util
<1 android.content.res
<1 android.app.admin

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.app.StatusBarManager
73 android.telephony.CarrierConfigManager.Ims
60 android.location.Geocoder
60 java.util.Observable
57 android.companion.CompanionDeviceService
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
37 java.util.concurrent.atomic.AtomicReference
37 android.companion.CompanionDeviceManager.Callback
35 java.util.concurrent.atomic.AtomicReferenceArray
33 android.accessibilityservice.AccessibilityService.MagnificationController.OnMagnificationChangedListener
33 android.bluetooth.BluetoothStatusCodes
33 android.graphics.text.MeasuredText.Builder
33 android.net.DnsResolver.DnsException
33 java.lang.reflect.MalformedParameterizedTypeException
30 android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo
30 java.util.OptionalDouble
30 java.util.OptionalInt
30 java.util.OptionalLong
29 android.bluetooth.BluetoothGattCallback
28 java.io.FileWriter
27 java.util.concurrent.atomic.AtomicIntegerArray
27 java.util.concurrent.atomic.AtomicLongArray
27 android.companion.AssociationRequest
25 android.accessibilityservice.AccessibilityService.SoftKeyboardController
25 android.bluetooth.BluetoothClass
25 android.icu.text.ListFormatter
25 android.net.wifi.aware.WifiAwareNetworkSpecifier
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.telephony.UiccCardInfo
21 android.view.SurfaceControl.Transaction
20 java.util.Optional
20 java.io.InputStream
20 java.lang.IndexOutOfBoundsException
20 java.net.URLEncoder
20 java.util.Enumeration
18 android.net.RouteInfo
18 android.view.accessibility.AccessibilityNodeInfo.CollectionInfo
17 android.os.Parcel
16 android.accessibilityservice.AccessibilityService.MagnificationController
16 android.media.session.MediaSessionManager
16 android.net.wifi.aware.Characteristics
15 java.util.Arrays
14 android.app.appsearch.SearchResult.MatchInfo
14 android.hardware.camera2.CameraManager.TorchCallback
14 android.net.wifi.aware.AttachCallback
14 android.telephony.ims.ImsRcsManager
14 java.net.URLDecoder
13 java.nio.channels.Selector
12 android.bluetooth.BluetoothGatt
12 android.bluetooth.BluetoothGattCharacteristic
12 android.view.accessibility.AccessibilityManager
12 java.lang.invoke.MethodHandles
11 android.content.pm.PackageManager
11 java.lang.Boolean
11 android.content.pm.PackageInstaller.SessionInfo
11 android.app.appsearch.SearchResult.MatchInfo.Builder
11 android.location.GnssMeasurementRequest
11 android.location.GnssMeasurementRequest.Builder
11 android.media.ImageReader
11 android.net.vcn.VcnGatewayConnectionConfig
11 android.text.style.StyleSpan
11 android.view.inputmethod.InlineSuggestionsRequest.Builder
10 android.hardware.camera2.CameraExtensionCharacteristics
10 java.util.concurrent.TimeUnit
10 android.app.job.JobWorkItem
10 android.net.wifi.rtt.RangingRequest.Builder
9 android.bluetooth.BluetoothGattServer
9 android.location.Location
9 android.app.GameManager
9 android.companion.AssociationRequest.Builder
9 android.content.AttributionSource.Builder
9 android.media.Image
9 android.os.VibrationAttributes
9 android.os.VibrationAttributes.Builder
9 android.text.BoringLayout
9 java.nio.channels.Channels
9 java.util.function.Predicate
8 java.math.BigDecimal
8 android.net.wifi.ScanResult
8 android.telephony.data.ApnSetting.Builder
8 java.io.ByteArrayInputStream
8 android.os.Vibrator
8 java.lang.Float
8 android.net.wifi.SoftApConfiguration
7 android.bluetooth.BluetoothLeAudio
7 android.net.ipsec.ike.IkeSessionConfiguration
7 android.net.vcn.VcnGatewayConnectionConfig.Builder
7 android.net.wifi.aware.WifiAwareNetworkInfo
7 java.io.ByteArrayOutputStream
7 java.io.OutputStream
7 java.io.Reader
7 android.telephony.SubscriptionManager
7 java.util.stream.Collectors
7 java.util.concurrent.locks.StampedLock
7 android.app.job.JobInfo
6 android.app.ActivityOptions
6 android.accessibilityservice.AccessibilityGestureEvent
6 android.graphics.drawable.AdaptiveIconDrawable
6 android.hardware.camera2.CameraManager
6 android.icu.number.FormattedNumber
6 android.net.IpPrefix
6 android.net.wifi.WifiConfiguration
6 android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder
6 android.os.SystemClock
6 android.view.SurfaceControl.Builder
6 java.util.concurrent.ConcurrentLinkedQueue
6 android.net.wifi.WifiNetworkSuggestion
6 java.lang.invoke.MethodHandles.Lookup
6 android.telephony.SubscriptionInfo
6 java.lang.Long
6 java.lang.Integer
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 java.util.IntSummaryStatistics
5 android.view.accessibility.AccessibilityRecord
5 android.database.sqlite.SQLiteDatabase
5 android.os.Process
5 android.bluetooth.BluetoothProfile
5 android.icu.text.DateIntervalFormat
5 android.view.accessibility.AccessibilityNodeInfo.RangeInfo
5 android.view.inputmethod.InputConnection
5 java.lang.Double
5 android.bluetooth.le.AdvertiseData
5 java.nio.channels.SelectionKey
5 java.util.LongSummaryStatistics
5 android.bluetooth.BluetoothGattDescriptor
5 android.graphics.HardwareRenderer
4 android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
4 android.app.Service
4 android.bluetooth.BluetoothClass.Service
4 android.content.AttributionSource
4 android.net.VpnService.Builder
4 android.media.MediaFormat
4 java.math.BigInteger
4 android.graphics.RenderEffect
4 android.os.SharedMemory
4 android.telephony.AvailableNetworkInfo
4 java.io.Writer
4 java.nio.file.FileStore
4 android.app.job.JobInfo.Builder
4 android.net.wifi.aware.WifiAwareManager
3 android.provider.MediaStore
3 android.view.accessibility.AccessibilityEvent
3 android.telephony.euicc.EuiccManager
3 android.media.AudioAttributes
3 android.Manifest.permission_group
3 android.content.pm.SharedLibraryInfo
3 android.icu.number.NumberFormatterSettings
3 android.media.tv.TvContract.Programs
3 java.io.PrintStream
3 java.lang.String
3 android.net.wifi.WifiNetworkSuggestion.Builder
3 android.icu.util.MeasureUnit
3 android.graphics.SurfaceTexture
3 android.service.controls.Control.StatefulBuilder
3 android.telecom.CallAudioState
3 java.io.PrintWriter
3 java.util.concurrent.ArrayBlockingQueue
3 java.util.concurrent.LinkedBlockingQueue
3 android.net.wifi.WifiEnterpriseConfig
3 android.icu.util.Currency
2 android.accessibilityservice.AccessibilityService
2 android.view.autofill.AutofillManager
2 android.telephony.TelephonyManager
2 android.app.UiAutomation
2 android.content.pm.PackageInstaller.Session
2 android.content.pm.ShortcutInfo
2 android.content.pm.ShortcutInfo.Builder
2 android.net.ipsec.ike.IkeSessionParams
2 java.util.concurrent.PriorityBlockingQueue
2 android.view.accessibility.AccessibilityNodeInfo
2 java.util.concurrent.ConcurrentHashMap.KeySetView
2 android.R.id
2 android.telephony.CarrierConfigManager.Iwlan
2 android.text.util.Linkify
2 java.util.Collection
2 java.util.concurrent.LinkedTransferQueue
2 android.net.wifi.WifiManager
2 android.os.UserManager
2 android.provider.Settings
2 android.media.tv.TvContract.RecordedPrograms
2 android.os.PowerManager
2 android.service.controls.Control
2 android.view.inputmethod.InputMethodInfo
2 android.text.Layout
2 android.icu.text.PluralRules
2 java.lang.SecurityManager
2 android.media.AudioManager
2 android.inputmethodservice.InputMethodService
2 android.bluetooth.BluetoothAdapter
2 android.net.wifi.p2p.WifiP2pManager
2 android.icu.lang.UCharacter
2 android.app.NotificationChannel
2 android.nfc.cardemulation.CardEmulation
2 android.util.ArraySet
2 android.view.inputmethod.InputMethodManager
2 android.view.KeyEvent
2 android.net.NetworkCapabilities
1 java.util.SplittableRandom
1 android.telephony.data.ApnSetting
1 java.lang.Thread
1 java.util.concurrent.ConcurrentLinkedDeque
1 android.icu.lang.UCharacter.UnicodeBlock
1 android.Manifest.permission
1 java.nio.ByteBuffer
1 android.webkit.WebChromeClient
1 android.view.accessibility.AccessibilityWindowInfo
1 android.content.Context
1 android.app.job.JobParameters
1 android.telecom.Call.Details
1 android.media.MediaMetadataRetriever
1 android.os.Build.VERSION_CODES
1 android.content.IntentFilter
1 java.util.concurrent.ForkJoinPool
1 java.util.concurrent.ThreadPoolExecutor
1 java.lang.StrictMath
1 android.media.MediaExtractor
1 android.webkit.WebSettings
1 android.hardware.HardwareBuffer
1 android.text.InputType
1 android.icu.text.DecimalFormat
1 java.lang.Math
1 java.util.concurrent.LinkedBlockingDeque
1 android.media.tv.TvContract.PreviewPrograms
1 android.net.wifi.WifiInfo
1 android.media.tv.TvContract.WatchNextPrograms
1 android.icu.lang.UScript
1 android.icu.util.VersionInfo
1 android.telephony.SmsManager
1 android.icu.text.DateTimePatternGenerator
1 java.util.jar.JarEntry
1 android.telecom.TelecomManager
1 android.telephony.CarrierConfigManager
<1 android.icu.lang.UCharacter.JoiningGroup
<1 android.content.Intent
<1 android.hardware.camera2.CameraCharacteristics
<1 android.provider.Settings.Global
<1 android.telecom.Connection
<1 android.bluetooth.BluetoothDevice
<1 android.icu.text.DecimalFormatSymbols
<1 android.app.NotificationManager
<1 android.graphics.Paint
<1 android.provider.CallLog.Calls
<1 android.media.AudioTrack
<1 android.content.res.Configuration
<1 android.icu.util.ULocale
<1 android.icu.text.DateFormat
<1 android.R.attr
<1 android.hardware.camera2.CameraMetadata
<1 android.app.admin.DevicePolicyManager
<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%.