API Change Statistics

The overall difference between API Levels 34 and v-dp1 is approximately 2.06%.


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 3 63 0 66
Classes and Interfaces 57 159 2 218
Constructors 7 6 0 13
Methods 234 57 51 342
Fields 111 38 3 152
Total 412 323 56 791

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
59 android.adservices.adselection
55 android.companion.virtual
52 android.adservices.common
33 javax.security.auth.x500
23 android.app.sdksandbox
22 android.adservices.topics
12 android.app.appsearch.observer
11 android.app.sdksandbox.sdkprovider
11 java.util.stream
10 android.adservices.measurement
10 java.security.interfaces
10 android.adservices.adid
8 android.adservices.customaudience
7 java.nio
7 android.app.usage
6 android.app.appsearch
4 java.security
3 android.media.midi
3 android.content.res
3 android.graphics.text
3 javax.crypto.spec
2 java.security.spec
2 android.view.accessibility
2 android.security
2 android.companion
2 android.graphics.fonts
1 android.health.connect.datatypes
1 java.util
1 android.hardware
1 android.health.connect
<1 java.util.concurrent
<1 android.net.vcn
<1 android.telephony
<1 android.appwidget
<1 android.app.job
<1 android.os
<1 android.net.wifi.rtt
<1 android.hardware.camera2
<1 android.media
<1 android.nfc.cardemulation
<1 android.bluetooth
<1 android.app
<1 android.provider
<1 android.telephony.data
<1 android.icu.lang
<1 android.hardware.biometrics
<1 android.view
<1 android.inputmethodservice
<1 android.accessibilityservice
<1 java.lang
<1 android.graphics
<1 java.lang.invoke
<1 java.util.zip
<1 android.view.inputmethod
<1 android.content.pm
<1 android.net.wifi
<1 android.system
<1 android.view.textclassifier
<1 android.telecom
<1 android.widget
<1 android.util
<1 android.webkit
<1 android

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
80 android.app.sdksandbox.RequestSurfacePackageException
76 java.util.SplittableRandom
71 java.util.concurrent.ThreadLocalRandom
70 android.telephony.PhoneNumberFormattingTextWatcher
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
50 android.security.FileIntegrityManager
50 java.nio.MappedByteBuffer
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.PutDocumentsRequest
33 android.app.appsearch.StorageInfo
33 java.security.SecureRandomSpi
33 java.security.interfaces.RSAKey
30 android.adservices.measurement.MeasurementManager
28 android.companion.virtual.VirtualDevice
28 android.companion.CompanionDeviceService
27 android.adservices.common.AdData.Builder
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
23 android.provider.ContactsContract.CommonDataKinds.Im
23 android.adservices.common.AdData
23 android.app.appsearch.GetSchemaResponse
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.app.appsearch.PutDocumentsRequest.Builder
20 android.app.appsearch.SearchResult
20 android.app.appsearch.SearchSuggestionSpec
20 android.graphics.text.PositionedGlyphs
20 android.os.PerformanceHintManager.Session
15 android.app.sdksandbox.SdkSandboxManager
14 android.adservices.adselection.ReportImpressionRequest
14 android.app.appsearch.AppSearchSchema.Builder
14 android.app.appsearch.SearchResult.MatchInfo
14 android.graphics.fonts.FontFamily.Builder
13 android.view.WindowManager
12 android.view.AttachedSurfaceControl
12 android.app.appsearch.JoinSpec
12 android.view.accessibility.AccessibilityNodeInfo.CollectionInfo
11 android.bluetooth.BluetoothCodecConfig
11 android.adservices.customaudience.CustomAudienceManager
11 android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder
11 android.graphics.text.LineBreakConfig
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 android.adservices.customaudience.AddCustomAudienceOverrideRequest
8 android.media.MediaRouter2
8 android.app.sdksandbox.SandboxedSdkProvider
8 android.provider.Telephony.Carriers
7 android.adservices.customaudience.AddCustomAudienceOverrideRequest.Builder
7 android.app.usage.UsageStatsManager
7 java.util.ServiceLoader
7 android.media.MediaRoute2Info
7 android.app.appsearch.SearchSpec.Builder
7 android.media.RemoteControlClient.MetadataEditor
7 java.security.interfaces.RSAPrivateCrtKey
6 java.lang.CharSequence
6 java.nio.CharBuffer
6 android.telephony.CarrierConfigManager.Iwlan
6 java.security.interfaces.RSAMultiPrimePrivateCrtKey
5 android.graphics.BitmapShader
5 android.hardware.camera2.CameraManager
5 android.net.vcn.VcnGatewayConnectionConfig
5 android.os.SystemClock
5 android.icu.lang.UCharacter.LineBreak
5 android.adservices.adselection.AdSelectionConfig.Builder
5 android.app.job.JobInfo.Builder
5 android.companion.AssociationInfo
5 android.provider.CloudMediaProviderContract
5 java.util.Map.Entry
4 android.adservices.adselection.AdSelectionConfig
4 android.net.vcn.VcnGatewayConnectionConfig.Builder
4 android.net.wifi.rtt.RangingResult
4 java.util.stream.DoubleStream
4 android.bluetooth.BluetoothCodecConfig.Builder
4 android.hardware.HardwareBuffer
4 java.util.stream.LongStream
4 android.app.appsearch.GenericDocument.Builder
4 java.util.stream.IntStream
4 java.nio.ByteBuffer
4 android.hardware.camera2.CameraDevice
4 android.appwidget.AppWidgetManager
3 android.widget.ZoomButtonsController
3 android.app.LocaleConfig
3 android.content.pm.SharedLibraryInfo
3 android.media.Ringtone
3 android.view.inputmethod.InputMethod
3 android.view.MotionEvent.PointerCoords
2 android.hardware.camera2.CameraCharacteristics
2 android.graphics.Gainmap
2 android.nfc.cardemulation.CardEmulation
2 android.accessibilityservice.AccessibilityService
2 android.os.Process
1 android.net.wifi.WifiConfiguration
1 android.os.PowerManager
1 android.app.job.JobInfo
1 android.app.usage.UsageEvents.Event
1 android.telephony.data.ApnSetting.Builder
1 android.app.Notification.WearableExtender
1 android.hardware.biometrics.BiometricPrompt
1 android.inputmethodservice.KeyboardView
1 android.view.PointerIcon
1 java.lang.ClassLoader
1 java.util.zip.ZipEntry
1 android.util.DisplayMetrics
1 android.view.textclassifier.TextClassifier
1 java.lang.invoke.VarHandle
1 java.util.stream.Collectors
1 android.view.Display
1 android.hardware.camera2.CaptureResult
<1 android.widget.RemoteViews
<1 android.graphics.Path
<1 android.telephony.data.ApnSetting
<1 android.webkit.WebSettings
<1 android.telecom.Call.Details
<1 android.hardware.camera2.CaptureRequest
<1 android.view.accessibility.AccessibilityNodeInfo
<1 java.lang.Character
<1 android.view.WindowManager.LayoutParams
<1 android.telephony.CarrierConfigManager
<1 android.health.connect.datatypes.NutritionRecord
<1 android.view.Window
<1 java.lang.String
<1 android.hardware.camera2.CameraMetadata
<1 android.telecom.TelecomManager
<1 android.system.OsConstants
<1 android.telephony.TelephonyManager
<1 android.provider.Settings
<1 android.content.pm.PackageManager
<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%.