API Change Statistics

The overall difference between API Levels 34 and v-beta2 is approximately 4.43%.


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 8 98 0 106
Classes and Interfaces 178 382 2 562
Constructors 28 18 0 46
Methods 647 152 89 888
Fields 431 99 2 532
Total 1292 749 93 2134

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
60 android.adservices.adselection
55 android.app.slice
55 android.companion.virtual
54 android.adservices.common
44 android.graphics.pdf
38 android.service.chooser
37 android.hardware.biometrics
33 javax.security.auth.x500
23 android.app.sdksandbox
22 android.adservices.topics
20 android.location.altitude
15 android.net.nsd
12 android.service.notification
12 android.health.connect.datatypes
12 android.nfc.cardemulation
12 android.app.appsearch.observer
11 android.app.appsearch
11 android.app.sdksandbox.sdkprovider
11 java.util.stream
11 android.window
11 android.media.metrics
10 android.adservices.measurement
10 java.security.interfaces
10 android.app.usage
10 android.adservices.adid
9 android.graphics.text
9 android.adservices.customaudience
8 android.net.wifi.rtt
8 java.security.spec
7 java.nio
6 android.net.wifi.p2p
4 android.health.connect.datatypes.units
4 android.media.audiofx
4 android.content.pm
4 java.security
4 android.accessibilityservice
4 android.icu.text
4 android.app.role
3 android.telephony.ims.feature
3 java.util
3 android.media.midi
3 android.content.res
3 android.os
3 android.os.health
3 android.hardware
3 android.content
3 javax.crypto.spec
2 android.content.om
2 android.view.accessibility
2 android.hardware.camera2
2 android.service.controls
2 android.bluetooth
2 android.net.http
2 android.net
2 android.graphics.fonts
2 android.app
1 android.view
1 android.media
1 android.database.sqlite
1 android.text
1 android.hardware.input
1 android.appwidget
1 android.graphics
1 android.telephony
1 android.security
1 java.util.concurrent
1 android.health.connect
1 android.hardware.camera2.params
1 android.view.inputmethod
1 android.nfc
<1 android.provider
<1 android.net.vcn
<1 java.util.zip
<1 android.text.style
<1 android.telecom
<1 android.security.keystore
<1 android.app.job
<1 android.widget
<1 android.net.wifi
<1 android.app.admin
<1 android.telephony.euicc
<1 android.companion
<1 android.telephony.data
<1 android.icu.number
<1 android.net.ipsec.ike
<1 java.lang
<1 android
<1 android.icu.lang
<1 android.inputmethodservice
<1 android.speech
<1 android.location
<1 java.lang.invoke
<1 java.io
<1 android.service.voice
<1 android.icu.util
<1 android.system
<1 android.util
<1 android.webkit

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.graphics.RecordingCanvas
83 android.media.audiofx.Virtualizer.Settings
80 android.app.sdksandbox.RequestSurfacePackageException
76 java.util.SplittableRandom
75 android.app.slice.SliceProvider
71 java.util.concurrent.ThreadLocalRandom
70 android.telephony.PhoneNumberFormattingTextWatcher
68 android.telephony.CarrierConfigManager.ImsEmergency
66 android.net.http.SslCertificate.DName
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
57 android.app.slice.Slice.Builder
57 android.app.slice.SliceManager
54 java.security.Provider
50 android.app.appsearch.AppSearchSchema
50 android.app.slice.Slice
50 android.app.slice.SliceItem
50 android.app.slice.SliceMetrics
50 android.app.slice.SliceSpec
50 android.graphics.pdf.PdfRenderer
50 android.hardware.ConsumerIrManager.CarrierFrequencyRange
50 android.media.audiofx.Virtualizer
50 android.media.audiofx.Virtualizer.OnParameterChangeListener
50 android.view.SurfaceControl.TrustedPresentationThresholds
50 java.nio.MappedByteBuffer
46 android.graphics.pdf.PdfRenderer.Page
44 android.graphics.text.LineBreakConfig
42 android.adservices.adselection.AdSelectionManager
42 android.app.appsearch.RemoveByDocumentIdRequest
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.AppOpsManager.OnOpActiveChangedListener
33 android.app.AppOpsManager.OnOpChangedListener
33 android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder
33 android.app.appsearch.GetSchemaResponse
33 android.app.appsearch.PutDocumentsRequest
33 android.app.appsearch.ReportUsageRequest
33 android.app.appsearch.StorageInfo
33 android.app.usage.StorageStats
33 android.net.IpSecTransform
33 java.security.SecureRandomSpi
33 java.security.interfaces.RSAKey
31 android.content.ComponentCallbacks2
31 android.view.WindowManager
30 android.adservices.measurement.MeasurementManager
30 java.security.spec.MGF1ParameterSpec
28 android.companion.virtual.VirtualDevice
27 android.adservices.common.AdData.Builder
27 android.app.AutomaticZenRule
27 android.app.appsearch.SetSchemaResponse
25 android.content.ComponentCallbacks
25 android.os.health.SystemHealthManager
25 android.security.FileIntegrityManager
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.GetByDocumentIdRequest
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.GrammaticalInflectionManager
20 android.app.appsearch.AppSearchManager
20 android.app.appsearch.AppSearchSchema.DocumentPropertyConfig
20 android.app.appsearch.PutDocumentsRequest.Builder
20 android.app.appsearch.SearchResult
20 android.app.appsearch.SearchSuggestionSpec
20 android.content.ContextParams
20 android.graphics.text.LineBreakConfig.Builder
20 android.graphics.text.PositionedGlyphs
20 android.location.altitude.AltitudeConverter
20 android.media.metrics.EditingSession
20 android.os.PerformanceHintManager.Session
20 android.text.BoringLayout.Metrics
20 java.security.spec.PKCS8EncodedKeySpec
20 java.security.spec.X509EncodedKeySpec
20 java.util.LinkedHashSet
18 android.app.appsearch.GenericDocument.Builder
18 android.net.wifi.rtt.RangingResult
18 android.hardware.biometrics.BiometricPrompt.Builder
17 android.media.MediaRouter2
17 android.hardware.camera2.params.ExtensionSessionConfiguration
16 java.security.spec.RSAKeyGenParameterSpec
15 android.app.sdksandbox.SdkSandboxManager
15 android.nfc.NfcAdapter
14 java.util.LinkedList
14 android.adservices.adselection.ReportImpressionRequest
14 android.app.appsearch.AppSearchSchema.Builder
14 android.app.appsearch.SearchResult.MatchInfo
14 android.content.om.FabricatedOverlay
14 android.content.pm.SigningInfo
14 android.graphics.Paint.FontMetricsInt
14 android.graphics.fonts.FontFamily.Builder
14 java.util.LinkedHashMap
13 android.content.pm.PackageInstaller
13 android.text.DynamicLayout.Builder
13 android.view.SurfaceControlViewHost
13 android.media.MediaRoute2Info
12 android.bluetooth.BluetoothCodecConfig
12 android.app.appsearch.GetSchemaResponse.Builder
12 android.media.RoutingSessionInfo
12 java.util.concurrent.ConcurrentLinkedDeque
12 android.service.notification.Condition
12 android.app.appsearch.JoinSpec
12 android.view.accessibility.AccessibilityNodeInfo.CollectionInfo
11 java.util.ArrayDeque
11 android.nfc.cardemulation.CardEmulation
11 android.adservices.customaudience.CustomAudienceManager
11 android.app.PictureInPictureUiState
11 android.app.appsearch.SetSchemaRequest.Builder
11 android.hardware.biometrics.BiometricManager
11 android.health.connect.AggregateRecordsGroupedByDurationResponse
11 android.health.connect.AggregateRecordsGroupedByPeriodResponse
11 android.service.controls.ControlsProviderService
11 android.telecom.CallControl
10 android.text.Layout
10 android.app.appsearch.SearchSpec
10 android.app.admin.DevicePolicyIdentifiers
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.view.SurfaceControl.Transaction
9 android.adservices.customaudience.AddCustomAudienceOverrideRequest
9 android.bluetooth.BluetoothLeAudioCodecConfig
9 android.content.ContextParams.Builder
9 android.hardware.biometrics.BiometricPrompt.CryptoObject
9 android.telecom.CallEventCallback
9 android.view.WindowInsets.Builder
8 android.bluetooth.BluetoothCodecConfig.Builder
8 android.text.StaticLayout.Builder
8 android.app.sdksandbox.SandboxedSdkProvider
8 android.content.pm.CrossProfileApps
8 android.media.MediaCodec.QueueRequest
8 android.provider.Telephony.Carriers
7 android.hardware.biometrics.BiometricPrompt
7 java.util.concurrent.LinkedBlockingDeque
7 android.adservices.customaudience.AddCustomAudienceOverrideRequest.Builder
7 android.adservices.customaudience.CustomAudience
7 android.app.usage.UsageStatsManager
7 android.graphics.text.LineBreaker.Builder
7 android.media.MediaCodec.Callback
7 android.media.MediaCodec.OutputFrame
7 android.net.ipsec.ike.IkeSession
7 android.telecom.PhoneAccount.Builder
7 android.telephony.ims.feature.MmTelFeature.MmTelCapabilities
7 java.util.HashMap
7 java.util.ServiceLoader
7 java.util.SortedMap
7 java.util.SortedSet
7 android.net.wifi.p2p.WifiP2pManager
7 android.hardware.camera2.params.OutputConfiguration
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.appwidget.AppWidgetManager
6 android.content.AttributionSource.Builder
6 android.media.MediaRouter2.RoutingController
6 android.net.wifi.WifiInfo.Builder
6 android.view.AttachedSurfaceControl
6 java.lang.CharSequence
6 java.nio.CharBuffer
6 java.security.spec.RSAPrivateCrtKeySpec
6 java.util.HashSet
6 android.telephony.CarrierConfigManager.Iwlan
6 android.app.Notification.Style
6 android.app.appsearch.AppSearchResult
6 android.hardware.camera2.CameraExtensionCharacteristics
6 android.view.WindowInsetsController
6 java.security.interfaces.RSAMultiPrimePrivateCrtKey
6 android.content.pm.LauncherApps
6 android.view.SurfaceView
5 android.graphics.BitmapShader
5 android.hardware.camera2.CameraManager
5 android.health.connect.datatypes.ExerciseSessionRecord
5 android.icu.number.FormattedNumber
5 android.net.vcn.VcnGatewayConnectionConfig
5 android.net.wifi.rtt.WifiRttManager
5 android.os.SystemClock
5 android.view.SurfaceControlViewHost.SurfacePackage
5 java.security.spec.PSSParameterSpec
5 java.security.spec.RSAMultiPrimePrivateCrtKeySpec
5 android.view.inputmethod.InputMethodManager
5 android.hardware.camera2.params.SessionConfiguration
5 android.icu.lang.UCharacter.LineBreak
5 android.adservices.adselection.AdSelectionConfig.Builder
5 android.app.job.JobInfo.Builder
5 android.bluetooth.BluetoothA2dp
5 android.companion.AssociationInfo
5 android.graphics.text.LineBreaker
5 android.net.NetworkRequest
5 android.net.ipsec.ike.IkeSessionParams
5 android.provider.CloudMediaProviderContract
5 java.io.Console
5 java.util.Map.Entry
5 android.net.nsd.NsdServiceInfo
5 android.security.keystore.KeyProtection
4 android.telephony.NetworkRegistrationInfo
4 android.adservices.adselection.AdSelectionConfig
4 android.hardware.SyncFence
4 android.hardware.input.InputManager
4 android.media.RoutingSessionInfo.Builder
4 android.net.vcn.VcnGatewayConnectionConfig.Builder
4 android.net.wifi.rtt.ResponderConfig.Builder
4 android.nfc.cardemulation.HostApduService
4 java.util.stream.DoubleStream
4 android.health.connect.HealthPermissions
4 android.hardware.HardwareBuffer
4 java.util.stream.LongStream
4 android.adservices.customaudience.CustomAudience.Builder
4 android.health.connect.datatypes.ExerciseSessionRecord.Builder
4 android.net.NetworkRequest.Builder
4 java.util.NavigableSet
4 java.util.stream.IntStream
4 android.view.Window
4 android.view.WindowInsets
4 java.nio.ByteBuffer
4 android.provider.MediaStore
4 android.app.ActivityManager
4 android.app.role.RoleManager
4 android.content.AttributionSource
3 android.R.color
3 android.media.MediaCodec
3 android.telephony.SubscriptionInfo
3 android.widget.ZoomButtonsController
3 android.net.wifi.WifiManager
3 android.app.LocaleConfig
3 android.app.NotificationManager
3 android.location.GnssNavigationMessage
3 java.util.Collections
3 android.content.ClipData.Item
3 android.icu.number.NumberFormatterSettings
3 android.icu.text.NumberFormat.Field
3 android.net.wifi.rtt.ResponderConfig
3 android.view.ViewStructure
3 android.view.inputmethod.InputMethod
3 android.security.keystore.KeyGenParameterSpec
3 android.view.MotionEvent.PointerCoords
3 android.os.UserManager
3 android.database.sqlite.SQLiteDatabase
3 android.telecom.CallAttributes
2 android.os.Process
2 java.util.Deque
2 android.hardware.camera2.CameraCharacteristics
2 android.content.IntentFilter
2 android.media.MediaRoute2Info.Builder
2 java.util.NavigableMap
2 android.content.pm.PackageInfo
2 android.content.pm.PackageItemInfo
2 android.graphics.Gainmap
2 android.media.MediaCodecInfo.CodecCapabilities
2 android.net.NetworkCapabilities
2 android.security.keystore.KeyProtection.Builder
2 android.net.nsd.NsdManager
2 android.service.notification.ZenPolicy.Builder
2 android.net.wifi.p2p.WifiP2pDevice
2 android.telecom.PhoneAccount
2 android.view.inputmethod.InputMethodInfo
2 android.app.Activity
2 android.telephony.CarrierConfigManager
2 android.icu.text.DateTimePatternGenerator
2 android.bluetooth.BluetoothSocketException
2 android.app.Notification.Builder
1 android.telephony.SubscriptionManager
1 android.app.NotificationChannel
1 android.companion.CompanionDeviceManager
1 android.net.wifi.ScanResult
1 android.net.wifi.WifiConfiguration
1 java.util.List
1 android.provider.Settings
1 android.os.PowerManager
1 android.Manifest.permission
1 android.app.job.JobInfo
1 android.app.usage.UsageEvents.Event
1 android.net.wifi.WifiNetworkSuggestion
1 android.telephony.data.ApnSetting.Builder
1 android.view.inputmethod.EditorInfo
1 android.widget.RemoteViews
1 android.view.WindowManager.LayoutParams
1 android.telephony.euicc.EuiccManager
1 android.app.Notification.WearableExtender
1 android.speech.RecognizerIntent
1 android.app.admin.DeviceAdminInfo
1 android.telephony.data.ApnSetting
1 android.content.pm.ServiceInfo
1 android.inputmethodservice.KeyboardView
1 android.view.PointerIcon
1 android.net.wifi.WifiNetworkSuggestion.Builder
1 android.security.keystore.KeyGenParameterSpec.Builder
1 android.telecom.Call
1 java.lang.ClassLoader
1 android.telecom.Call.Details
1 android.app.Service
1 android.content.pm.PackageInstaller.SessionParams
1 android.telephony.TelephonyManager
1 java.util.zip.ZipEntry
1 android.widget.TextView
1 android.service.notification.ZenPolicy
1 android.telephony.ServiceState
1 android.bluetooth.BluetoothDevice
1 android.hardware.camera2.CaptureRequest
1 android.content.Intent
1 android.os.Build.VERSION_CODES
1 android.util.DisplayMetrics
1 java.lang.Double
1 java.lang.Float
1 android.view.View
1 android.graphics.Canvas
1 android.graphics.Paint
1 android.bluetooth.BluetoothGatt
1 android.os.BatteryManager
1 java.lang.invoke.VarHandle
1 android.provider.CallLog.Calls
1 java.util.stream.Collectors
1 android.appwidget.AppWidgetProviderInfo
1 android.content.Context
1 android.app.admin.SecurityLog
1 android.icu.util.VersionInfo
1 android.inputmethodservice.InputMethodService
1 android.net.wifi.WifiInfo
1 android.telecom.TelecomManager
1 android.view.Display
1 android.hardware.camera2.CaptureResult
<1 android.content.pm.PackageInstaller.SessionInfo
<1 android.graphics.Path
<1 android.telephony.PhoneNumberUtils
<1 java.util.zip.ZipFile
<1 android.R.attr
<1 android.webkit.WebSettings
<1 android.content.res.Resources
<1 android.content.pm.PackageManager
<1 android.service.voice.VoiceInteractionSession
<1 android.app.admin.DevicePolicyManager
<1 android.media.MediaFormat
<1 android.app.Instrumentation
<1 android.os.Debug
<1 android.view.accessibility.AccessibilityNodeInfo
<1 java.lang.Character
<1 android.telephony.DisconnectCause
<1 android.icu.util.MeasureUnit
<1 android.health.connect.datatypes.NutritionRecord
<1 java.lang.String
<1 android.hardware.camera2.CameraMetadata
<1 android.icu.text.UnicodeSet
<1 android.system.OsConstants
<1 android.accessibilityservice.AccessibilityService
<1 android.app.Notification
<1 android.telephony.SmsManager
<1 android.icu.util.Calendar
<1 android.view.KeyEvent
<1 android.media.AudioManager
<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%.