API Change Statistics

The overall difference between API Levels 34 and v-dp2 is approximately 3.54%.


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 7 79 1 87
Classes and Interfaces 106 272 2 380
Constructors 21 9 0 30
Methods 446 73 85 604
Fields 302 49 2 353
Total 882 482 90 1454

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
59 android.adservices.adselection
55 android.companion.virtual
54 android.adservices.common
44 android.graphics.pdf
33 javax.security.auth.x500
23 android.app.sdksandbox
22 android.adservices.topics
15 android.net.nsd
12 android.service.notification
12 android.app.appsearch.observer
11 android.app.sdksandbox.sdkprovider
11 java.util.stream
11 android.nfc.cardemulation
10 android.adservices.measurement
10 java.security.interfaces
10 android.app.usage
10 android.adservices.adid
9 android.companion
9 android.app.appsearch
8 android.adservices.customaudience
8 android.graphics.text
8 java.security.spec
7 java.nio
5 android.window
4 android.media.audiofx
4 java.security
4 android.icu.text
3 java.util
3 android.content.pm
3 android.media.midi
3 android.security
3 android.content.res
3 javax.crypto.spec
2 android.view.accessibility
2 android.net
2 android.graphics.fonts
1 android.health.connect.datatypes
1 android.content
1 android.database.sqlite
1 android.hardware
1 android.hardware.biometrics
1 android.telephony
1 java.util.concurrent
1 android.view
1 android.view.inputmethod
1 android.app
1 android.health.connect
<1 android.net.vcn
<1 java.util.zip
<1 android.nfc
<1 android.media
<1 android.text.style
<1 android.os
<1 android.security.keystore
<1 android.app.job
<1 android.net.wifi.rtt
<1 android.telephony.data
<1 android.bluetooth
<1 android.icu.number
<1 android.provider
<1 java.lang
<1 android.icu.lang
<1 android
<1 android.inputmethodservice
<1 android.hardware.camera2
<1 android.app.admin
<1 android.speech
<1 android.accessibilityservice
<1 android.graphics
<1 java.lang.invoke
<1 java.io
<1 android.text
<1 android.net.wifi
<1 android.telecom
<1 android.icu.util
<1 android.system
<1 android.view.textclassifier
<1 android.widget
<1 android.util

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
83 android.media.audiofx.Virtualizer.Settings
80 android.app.sdksandbox.RequestSurfacePackageException
76 java.util.SplittableRandom
71 java.util.concurrent.ThreadLocalRandom
70 android.telephony.PhoneNumberFormattingTextWatcher
68 android.telephony.CarrierConfigManager.ImsEmergency
65 java.util.Random
60 android.adservices.topics.GetTopicsResponse.Builder
60 android.app.appsearch.SearchSuggestionResult
60 android.app.appsearch.observer.ObserverSpec
60 android.companion.virtual.VirtualDeviceManager
60 android.health.connect.datatypes.CyclingPedalingCadenceRecord
60 android.health.connect.datatypes.SpeedRecord
60 android.health.connect.datatypes.StepsCadenceRecord
54 java.security.Provider
52 android.graphics.pdf.PdfRenderer
50 android.media.audiofx.Virtualizer
50 android.media.audiofx.Virtualizer.OnParameterChangeListener
50 android.security.FileIntegrityManager
50 java.nio.MappedByteBuffer
48 android.graphics.pdf.PdfRenderer.Page
44 android.graphics.text.LineBreakConfig
42 android.adservices.adselection.AdSelectionManager
42 android.app.appsearch.AppSearchSchema
42 android.health.connect.datatypes.BloodPressureRecord
38 java.util.Properties
35 android.provider.ContactsContract.CommonDataKinds.SipAddress
33 android.adservices.adselection.AdSelectionOutcome
33 android.adservices.adselection.TestAdSelectionManager
33 android.adservices.topics.GetTopicsResponse
33 android.app.appsearch.GetSchemaResponse
33 android.app.appsearch.PutDocumentsRequest
33 android.app.appsearch.StorageInfo
33 android.app.usage.StorageStats
33 android.net.IpSecTransform
33 java.security.SecureRandomSpi
33 java.security.interfaces.RSAKey
30 android.adservices.measurement.MeasurementManager
30 java.security.spec.MGF1ParameterSpec
29 android.view.WindowManager
28 android.companion.virtual.VirtualDevice
27 android.adservices.common.AdData.Builder
27 android.app.AutomaticZenRule
27 android.app.appsearch.SetSchemaResponse
25 java.security.interfaces.DSAPrivateKey
25 java.security.interfaces.DSAPublicKey
25 java.security.interfaces.ECPrivateKey
25 java.security.interfaces.ECPublicKey
25 java.security.interfaces.RSAPrivateKey
25 java.security.interfaces.RSAPublicKey
25 java.security.spec.EncodedKeySpec
25 java.security.spec.RSAPrivateKeySpec
25 java.security.spec.RSAPublicKeySpec
23 android.provider.ContactsContract.CommonDataKinds.Im
23 android.adservices.common.AdData
23 android.app.appsearch.SetSchemaResponse.MigrationFailure
23 android.app.sdksandbox.sdkprovider.SdkSandboxController
23 android.telephony.PreciseDataConnectionState
21 java.security.SecureRandom
20 android.adservices.adid.AdIdManager
20 android.adservices.adselection.AddAdSelectionOverrideRequest
20 android.adservices.common.AdServicesPermissions
20 android.app.appsearch.AppSearchManager
20 android.app.appsearch.PutDocumentsRequest.Builder
20 android.app.appsearch.SearchResult
20 android.app.appsearch.SearchSuggestionSpec
20 android.graphics.text.LineBreakConfig.Builder
20 android.graphics.text.PositionedGlyphs
20 android.os.PerformanceHintManager.Session
20 java.security.spec.PKCS8EncodedKeySpec
20 java.security.spec.X509EncodedKeySpec
20 java.util.LinkedHashSet
18 android.app.appsearch.GenericDocument.Builder
16 java.security.spec.RSAKeyGenParameterSpec
15 android.app.sdksandbox.SdkSandboxManager
14 java.util.LinkedList
14 android.adservices.adselection.ReportImpressionRequest
14 android.app.appsearch.AppSearchSchema.Builder
14 android.app.appsearch.SearchResult.MatchInfo
14 android.content.pm.SigningInfo
14 android.graphics.fonts.FontFamily.Builder
14 android.security.NetworkSecurityPolicy
14 java.util.LinkedHashMap
13 android.content.pm.PackageInstaller
13 android.media.MediaRouter2
13 android.nfc.NfcAdapter
12 android.app.appsearch.GetSchemaResponse.Builder
12 java.util.concurrent.ConcurrentLinkedDeque
12 android.service.notification.Condition
12 android.app.appsearch.JoinSpec
12 android.view.accessibility.AccessibilityNodeInfo.CollectionInfo
11 android.bluetooth.BluetoothCodecConfig
11 java.util.ArrayDeque
11 android.adservices.customaudience.CustomAudienceManager
11 android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder
11 android.app.appsearch.SetSchemaRequest.Builder
11 android.hardware.biometrics.BiometricManager
11 android.health.connect.AggregateRecordsGroupedByDurationResponse
11 android.health.connect.AggregateRecordsGroupedByPeriodResponse
10 android.app.appsearch.SearchSpec
10 android.app.appsearch.SearchSuggestionSpec.Builder
9 java.nio.DoubleBuffer
9 java.nio.FloatBuffer
9 java.nio.IntBuffer
9 java.nio.LongBuffer
9 java.nio.ShortBuffer
9 java.lang.Math
9 java.lang.StrictMath
9 java.util.zip.Inflater
9 android.media.MediaRoute2Info
9 android.adservices.customaudience.AddCustomAudienceOverrideRequest
9 android.view.WindowInsets.Builder
8 android.app.sdksandbox.SandboxedSdkProvider
8 android.provider.Telephony.Carriers
7 java.util.concurrent.LinkedBlockingDeque
7 android.adservices.customaudience.AddCustomAudienceOverrideRequest.Builder
7 android.app.usage.UsageStatsManager
7 java.util.HashMap
7 java.util.ServiceLoader
7 java.util.SortedMap
7 java.util.SortedSet
7 android.app.appsearch.SearchSpec.Builder
7 android.app.appsearch.SetSchemaRequest
7 android.media.RemoteControlClient.MetadataEditor
7 java.security.interfaces.RSAPrivateCrtKey
7 java.util.TreeMap
7 java.util.zip.Deflater
6 java.util.concurrent.ConcurrentSkipListMap
6 android.view.AttachedSurfaceControl
6 android.view.SurfaceControlViewHost
6 java.lang.CharSequence
6 java.nio.CharBuffer
6 java.security.spec.RSAPrivateCrtKeySpec
6 java.util.HashSet
6 android.telephony.CarrierConfigManager.Iwlan
6 android.view.SurfaceControl.Transaction
6 android.view.WindowInsetsController
6 java.security.interfaces.RSAMultiPrimePrivateCrtKey
6 android.nfc.cardemulation.CardEmulation
5 android.graphics.BitmapShader
5 android.icu.number.FormattedNumber
5 android.net.vcn.VcnGatewayConnectionConfig
5 android.os.SystemClock
5 android.view.SurfaceControlViewHost.SurfacePackage
5 java.security.spec.PSSParameterSpec
5 java.security.spec.RSAMultiPrimePrivateCrtKeySpec
5 android.companion.CompanionDeviceManager
5 android.icu.lang.UCharacter.LineBreak
5 android.adservices.adselection.AdSelectionConfig.Builder
5 android.app.job.JobInfo.Builder
5 android.companion.AssociationInfo
5 android.companion.CompanionDeviceService
5 android.net.NetworkRequest
5 android.provider.CloudMediaProviderContract
5 java.io.Console
5 java.util.Map.Entry
5 android.net.nsd.NsdServiceInfo
5 android.security.keystore.KeyProtection
5 android.view.inputmethod.InputMethodManager
4 android.adservices.adselection.AdSelectionConfig
4 android.hardware.SyncFence
4 android.net.vcn.VcnGatewayConnectionConfig.Builder
4 android.net.wifi.rtt.RangingResult
4 android.nfc.cardemulation.HostApduService
4 java.util.stream.DoubleStream
4 android.bluetooth.BluetoothCodecConfig.Builder
4 android.hardware.HardwareBuffer
4 java.util.stream.LongStream
4 android.net.NetworkRequest.Builder
4 java.util.NavigableSet
4 java.util.stream.IntStream
4 android.view.WindowInsets
4 java.nio.ByteBuffer
4 android.app.ActivityManager
3 android.R.color
3 android.telephony.SubscriptionInfo
3 android.widget.ZoomButtonsController
3 android.app.LocaleConfig
3 android.text.DynamicLayout.Builder
3 android.app.NotificationManager
3 java.util.Collections
3 android.content.ClipData.Item
3 android.content.pm.SharedLibraryInfo
3 android.icu.number.NumberFormatterSettings
3 android.icu.text.NumberFormat.Field
3 android.telephony.NetworkRegistrationInfo
3 android.view.inputmethod.InputMethod
3 android.security.keystore.KeyGenParameterSpec
3 android.view.MotionEvent.PointerCoords
3 android.view.Window
3 android.database.sqlite.SQLiteDatabase
3 android.view.SurfaceView
2 android.os.Process
2 android.app.admin.DevicePolicyIdentifiers
2 java.util.Deque
2 android.hardware.camera2.CameraCharacteristics
2 android.content.IntentFilter
2 java.util.NavigableMap
2 android.content.pm.PackageInfo
2 android.content.pm.PackageItemInfo
2 android.graphics.Gainmap
2 android.net.NetworkCapabilities
2 android.security.keystore.KeyProtection.Builder
2 android.net.nsd.NsdManager
2 android.service.notification.ZenPolicy.Builder
2 android.view.inputmethod.InputMethodInfo
2 android.icu.text.DateTimePatternGenerator
2 android.accessibilityservice.AccessibilityService
1 android.telephony.SubscriptionManager
1 android.net.wifi.WifiConfiguration
1 android.telephony.CarrierConfigManager
1 java.util.List
1 android.provider.Settings
1 android.os.PowerManager
1 android.app.job.JobInfo
1 android.app.usage.UsageEvents.Event
1 android.telephony.data.ApnSetting.Builder
1 android.view.inputmethod.EditorInfo
1 android.app.Notification.WearableExtender
1 android.speech.RecognizerIntent
1 android.telephony.data.ApnSetting
1 android.content.pm.ServiceInfo
1 android.hardware.biometrics.BiometricPrompt
1 android.inputmethodservice.KeyboardView
1 android.view.PointerIcon
1 android.security.keystore.KeyGenParameterSpec.Builder
1 android.content.pm.LauncherApps
1 java.lang.ClassLoader
1 android.telecom.Call.Details
1 android.content.pm.PackageInstaller.SessionParams
1 java.util.zip.ZipEntry
1 android.service.notification.ZenPolicy
1 android.telephony.ServiceState
1 android.util.DisplayMetrics
1 android.view.textclassifier.TextClassifier
1 java.lang.Double
1 android.telephony.TelephonyManager
1 java.lang.Float
1 android.os.BatteryManager
1 java.lang.invoke.VarHandle
1 java.util.stream.Collectors
1 android.icu.util.VersionInfo
1 android.inputmethodservice.InputMethodService
1 android.view.Display
1 android.hardware.camera2.CaptureResult
<1 android.content.pm.PackageInstaller.SessionInfo
<1 android.graphics.Path
<1 java.util.zip.ZipFile
<1 android.content.res.Resources
<1 android.content.pm.PackageManager
<1 android.Manifest.permission
<1 android.app.admin.DevicePolicyManager
<1 android.hardware.camera2.CaptureRequest
<1 android.os.Debug
<1 android.view.accessibility.AccessibilityNodeInfo
<1 java.lang.Character
<1 android.telephony.DisconnectCause
<1 android.view.WindowManager.LayoutParams
<1 android.icu.util.MeasureUnit
<1 android.R.attr
<1 android.health.connect.datatypes.NutritionRecord
<1 java.lang.String
<1 android.hardware.camera2.CameraMetadata
<1 android.telecom.TelecomManager
<1 android.system.OsConstants
<1 android.widget.RemoteViews
<1 android.os.UserManager
<1 android.content.Intent
<1 android.view.KeyEvent
<1 android.view.View
<1 android.content.Context
<1 android.icu.lang.UCharacter.UnicodeBlock

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