API Change Statistics

The overall difference between API Levels 34 and v-beta1 is approximately 3.47%.


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 80 0 87
Classes and Interfaces 112 267 2 381
Constructors 20 11 0 31
Methods 432 91 89 612
Fields 260 50 2 312
Total 831 499 93 1423

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
60 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
20 android.adservices.customaudience
15 android.net.nsd
13 android.nfc.cardemulation
12 android.service.notification
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.adservices.adid
9 android.app.usage
9 android.graphics.text
8 java.security.spec
7 java.nio
4 android.media.audiofx
4 java.security
4 android.accessibilityservice
4 android.app.role
3 java.util
3 android.media.midi
3 android.content.pm
3 android.content.res
3 javax.crypto.spec
2 android.content.om
2 android.security
2 android.os
2 android.net.http
2 android.net
2 android.graphics.fonts
1 android.health.connect.datatypes
1 android.view
1 android.database.sqlite
1 android.hardware.biometrics
1 android.hardware.input
1 android.hardware
1 android.media
1 java.util.concurrent
1 android.content
1 android.app
1 android.health.connect
<1 android.provider
<1 android.net.vcn
<1 android.telephony
<1 android.graphics
<1 java.util.zip
<1 android.nfc
<1 android.text.style
<1 android.appwidget
<1 android.net.wifi.rtt
<1 android.telephony.data
<1 android.bluetooth
<1 android.hardware.camera2
<1 android.companion
<1 java.lang
<1 android
<1 android.inputmethodservice
<1 android.speech
<1 android.app.admin
<1 android.text
<1 java.lang.invoke
<1 java.io
<1 android.view.inputmethod
<1 android.net.wifi
<1 android.system
<1 android.telecom
<1 android.widget
<1 android.util
<1 android.webkit
<1 android.icu.util
<1 android.icu.text

* 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
71 java.util.concurrent.ThreadLocalRandom
70 android.telephony.PhoneNumberFormattingTextWatcher
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
54 java.security.Provider
50 android.app.appsearch.AppSearchSchema
50 android.graphics.pdf.PdfRenderer
50 android.hardware.ConsumerIrManager.CarrierFrequencyRange
50 android.media.audiofx.Virtualizer
50 android.media.audiofx.Virtualizer.OnParameterChangeListener
50 android.security.FileIntegrityManager
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.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
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
27 android.view.WindowManager
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.adservices.customaudience.CustomAudienceManager
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.graphics.text.LineBreakConfig.Builder
20 android.graphics.text.PositionedGlyphs
20 android.media.metrics.EditingSession
20 android.os.PerformanceHintManager.Session
20 java.security.spec.PKCS8EncodedKeySpec
20 java.security.spec.X509EncodedKeySpec
20 java.util.LinkedHashSet
18 android.nfc.cardemulation.CardEmulation
18 android.app.appsearch.GenericDocument.Builder
17 android.media.MediaRouter2
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.om.FabricatedOverlay
14 android.content.pm.SigningInfo
14 android.graphics.fonts.FontFamily.Builder
14 java.util.LinkedHashMap
13 android.content.pm.PackageInstaller
13 android.nfc.NfcAdapter
13 android.view.SurfaceControlViewHost
12 android.app.appsearch.GetSchemaResponse.Builder
12 java.util.concurrent.ConcurrentLinkedDeque
12 android.service.notification.Condition
12 android.app.appsearch.JoinSpec
11 android.bluetooth.BluetoothCodecConfig
11 java.util.ArrayDeque
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.view.SurfaceControl.Transaction
9 android.adservices.customaudience.AddCustomAudienceOverrideRequest
8 android.app.sdksandbox.SandboxedSdkProvider
8 android.provider.Telephony.Carriers
7 java.util.concurrent.LinkedBlockingDeque
7 android.adservices.customaudience.AddCustomAudienceOverrideRequest.Builder
7 android.adservices.customaudience.CustomAudience
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 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 java.security.interfaces.RSAMultiPrimePrivateCrtKey
6 android.view.SurfaceView
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.adservices.adselection.AdSelectionConfig.Builder
5 android.companion.AssociationInfo
5 android.graphics.text.LineBreaker
5 android.net.NetworkRequest
5 android.provider.CloudMediaProviderContract
5 java.io.Console
5 java.util.Map.Entry
5 android.net.nsd.NsdServiceInfo
4 android.adservices.adselection.AdSelectionConfig
4 android.hardware.SyncFence
4 android.hardware.input.InputManager
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 java.util.stream.LongStream
4 android.adservices.customaudience.CustomAudience.Builder
4 android.net.NetworkRequest.Builder
4 java.util.NavigableSet
4 java.util.stream.IntStream
4 java.nio.ByteBuffer
4 android.provider.MediaStore
4 android.app.ActivityManager
4 android.app.role.RoleManager
4 android.appwidget.AppWidgetManager
3 android.R.color
3 android.telephony.SubscriptionInfo
3 android.widget.ZoomButtonsController
3 android.text.DynamicLayout.Builder
3 android.app.NotificationManager
3 java.util.Collections
3 android.media.MediaRouter2.RoutingController
3 android.telephony.NetworkRegistrationInfo
3 android.view.ViewStructure
3 android.view.inputmethod.InputMethod
3 android.view.MotionEvent.PointerCoords
3 android.view.Window
3 android.database.sqlite.SQLiteDatabase
2 android.os.Process
2 android.app.admin.DevicePolicyIdentifiers
2 java.util.Deque
2 android.app.usage.UsageStatsManager
2 android.content.IntentFilter
2 java.util.NavigableMap
2 android.content.pm.PackageInfo
2 android.content.pm.PackageItemInfo
2 android.net.NetworkCapabilities
2 android.net.nsd.NsdManager
2 android.service.notification.ZenPolicy.Builder
2 android.app.Notification.Builder
1 android.telephony.SubscriptionManager
1 android.hardware.camera2.CameraCharacteristics
1 android.net.wifi.WifiConfiguration
1 android.telephony.CarrierConfigManager
1 java.util.List
1 android.provider.Settings
1 android.os.PowerManager
1 android.telephony.data.ApnSetting.Builder
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.content.pm.LauncherApps
1 java.lang.ClassLoader
1 android.content.pm.PackageInstaller.SessionParams
1 java.util.zip.ZipEntry
1 android.service.notification.ZenPolicy
1 android.telephony.ServiceState
1 android.hardware.camera2.CaptureRequest
1 android.util.DisplayMetrics
1 java.lang.Double
1 android.text.Layout
1 android.telephony.TelephonyManager
1 java.lang.Float
1 android.os.BatteryManager
1 java.lang.invoke.VarHandle
1 java.util.stream.Collectors
1 android.hardware.camera2.CaptureResult
<1 android.widget.RemoteViews
<1 android.content.pm.PackageInstaller.SessionInfo
<1 android.graphics.Path
<1 java.util.zip.ZipFile
<1 android.webkit.WebSettings
<1 android.content.pm.PackageManager
<1 android.Manifest.permission
<1 android.telecom.Call.Details
<1 android.health.connect.HealthPermissions
<1 android.os.Debug
<1 java.lang.Character
<1 android.app.admin.DevicePolicyManager
<1 android.graphics.Paint
<1 android.telephony.DisconnectCause
<1 android.view.WindowManager.LayoutParams
<1 android.health.connect.datatypes.NutritionRecord
<1 java.lang.String
<1 android.content.Context
<1 android.hardware.camera2.CameraMetadata
<1 android.content.Intent
<1 android.telecom.TelecomManager
<1 android.icu.text.UnicodeSet
<1 android.R.attr
<1 android.system.OsConstants
<1 android.os.UserManager
<1 android.accessibilityservice.AccessibilityService
<1 android.app.Activity
<1 android.telephony.SmsManager
<1 android.icu.util.Calendar
<1 android.media.MediaFormat
<1 android.view.KeyEvent
<1 android.view.View

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