API Change Statistics

The overall difference between API Levels 35 and b-beta2 is approximately 4.62%.


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 18 73 0 91
Classes and Interfaces 135 271 0 406
Constructors 20 3 0 23
Methods 397 65 5 467
Fields 513 56 0 569
Total 1083 468 5 1556

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
33 java.lang.runtime
27 android.health.connect
24 android.net.wifi.p2p.nsd
24 android.app.sdksandbox.sdkprovider
22 android.net.wifi.rtt
16 android.adservices.adid
16 android.companion
15 android.app.appsearch
13 android.net.wifi.p2p
12 android.adservices.customaudience
11 android.hardware.display
11 android.net.nsd
10 android.nfc.cardemulation
10 android.hardware.fingerprint
8 android.adservices.ondevicepersonalization
8 android.adservices.adselection
7 android.view.autofill
7 android.window
6 android.adservices.common
6 android.os
6 android.net
5 android.app.job
5 android.service.wallpaper
5 android.net.wifi
5 android.service.carrier
5 android.os.health
4 android.hardware
3 android.bluetooth
3 android.health.connect.datatypes
3 android.media.tv
3 android.security.keystore
3 android.view.accessibility
3 android.adservices.measurement
3 java.lang.invoke
2 java.util.concurrent
2 android.graphics
1 android.provider
1 android.text.style
1 android.hardware.biometrics
1 android.media.tv.interactive
1 android.content.pm
1 android.telephony
1 android.inputmethodservice
<1 android.view
<1 android.app
<1 android.icu.number
<1 android.app.assist
<1 android.security
<1 android.hardware.usb
<1 java.lang
<1 android.service.autofill
<1 android
<1 android.service.quickaccesswallet
<1 android.hardware.camera2
<1 android.net.vcn
<1 android.view.inputmethod
<1 android.net.wifi.aware
<1 android.net.http
<1 android.nfc
<1 android.media
<1 android.view.contentcapture
<1 android.icu.lang
<1 android.appwidget
<1 java.util
<1 android.app.admin
<1 android.telephony.data
<1 android.hardware.camera2.params
<1 android.icu.util
<1 android.content
<1 android.view.textclassifier
<1 android.service.notification
<1 android.accessibilityservice
<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.app.appsearch.AppSearchSchema.BooleanPropertyConfig
100 android.app.appsearch.AppSearchSchema.DoublePropertyConfig
100 android.graphics.RecordingCanvas
60 android.adservices.ondevicepersonalization.IsolatedServiceException
53 android.adservices.ondevicepersonalization.OnDevicePersonalizationException
50 android.adservices.common.AdServicesOutcomeReceiver
50 android.telephony.CellIdentityCdma
50 android.telephony.CellInfoCdma
50 java.util.concurrent.ThreadLocalRandom
48 android.service.carrier.CarrierMessagingService
42 android.hardware.fingerprint.FingerprintManager
41 android.adservices.measurement.MeasurementManager
41 android.os.health.SystemHealthManager
38 android.view.autofill.AutofillId
33 android.adservices.adid.AdIdManager
33 android.adservices.ondevicepersonalization.DownloadCompletedInput
33 android.app.appsearch.AppSearchSchema.Builder
33 android.net.wifi.p2p.WifiP2pManager.ServiceResponseListener
30 android.app.appsearch.SearchSpec.Builder
28 android.provider.CloudMediaProviderContract
28 java.util.concurrent.ConcurrentHashMap.KeySetView
28 android.app.appsearch.GetSchemaResponse.Builder
26 android.companion.CompanionDeviceService
25 android.adservices.ondevicepersonalization.TrainingExamplesInput
23 android.health.connect.HealthConnectManager
23 java.util.concurrent.Future
22 android.os.RemoteCallbackList
20 android.net.wifi.p2p.WifiP2pConfig
20 android.adservices.adselection.GetAdSelectionDataRequest
20 android.adservices.ondevicepersonalization.EventInput
20 android.adservices.ondevicepersonalization.ExecuteInput
20 android.adservices.ondevicepersonalization.OnDevicePersonalizationManager
20 android.net.wifi.p2p.nsd.WifiP2pServiceRequest
20 android.net.wifi.rtt.RangingRequest
20 android.telephony.CarrierConfigManager.Gps
19 android.nfc.cardemulation.CardEmulation
17 android.hardware.display.VirtualDisplayConfig.Builder
17 android.os.ProfilingManager
17 android.os.TestLooperManager
17 android.window.BackEvent
17 android.app.appsearch.AppSearchSession
17 android.content.pm.SigningInfo
16 android.app.appsearch.JoinSpec.Builder
16 android.app.appsearch.StorageInfo.Builder
16 android.content.pm.LauncherUserInfo
16 android.net.wifi.p2p.WifiP2pGroup
16 java.util.concurrent.ForkJoinWorkerThread
16 android.telephony.SubscriptionPlan
15 android.companion.CompanionDeviceManager
15 android.provider.ContactsContract.CommonDataKinds.SipAddress
14 android.adservices.ondevicepersonalization.RenderInput
14 android.adservices.ondevicepersonalization.WebTriggerInput
14 android.app.appsearch.AppSearchSchema.BooleanPropertyConfig.Builder
14 android.app.appsearch.AppSearchSchema.DoublePropertyConfig.Builder
14 android.app.appsearch.AppSearchSchema.LongPropertyConfig
14 android.app.appsearch.EnterpriseGlobalSearchSession
14 android.app.appsearch.SearchResult.Builder
14 android.app.appsearch.StorageInfo
14 android.hardware.biometrics.BiometricManager.Authenticators
14 android.icu.number.LocalizedNumberRangeFormatter
14 android.media.MediaCodecInfo
14 android.net.wifi.SoftApConfiguration
14 android.net.wifi.p2p.WifiP2pConfig.Builder
14 android.net.wifi.p2p.nsd.WifiP2pServiceInfo
14 android.net.wifi.rtt.WifiRttManager
14 android.security.NetworkSecurityPolicy
13 android.media.MediaCodecInfo.CodecProfileLevel
13 android.provider.CloudMediaProvider
12 android.graphics.Gainmap
12 android.hardware.display.DisplayManager
12 android.media.tv.TvInputManager
11 android.adservices.adselection.AdSelectionOutcome
11 android.adservices.adselection.AdSelectionOutcome.Builder
11 android.adservices.adselection.GetAdSelectionDataRequest.Builder
11 android.adservices.ondevicepersonalization.AppInfo
11 android.adservices.ondevicepersonalization.ExecuteOutput
11 android.app.appsearch.AppSearchSchema.LongPropertyConfig.Builder
11 android.app.sdksandbox.sdkprovider.SdkSandboxController
11 android.media.tv.BroadcastInfoRequest
11 android.net.http.X509TrustManagerExtensions
11 android.net.wifi.rtt.RangingResult.Builder
11 android.os.VibrationEffect.Composition
11 android.text.style.TtsSpan.TimeBuilder
11 android.window.OnBackInvokedDispatcher
10 android.app.appsearch.SearchSpec
10 android.view.SurfaceView
10 android.R.integer
10 android.app.appsearch.SearchResult
10 android.media.AudioPlaybackConfiguration
10 android.provider.ContactsContract.Settings
10 android.view.accessibility.AccessibilityNodeInfo.RangeInfo
9 android.health.connect.HealthPermissions
9 android.net.wifi.p2p.WifiP2pDevice
9 android.net.wifi.rtt.RangingResult
9 android.adservices.customaudience.CustomAudienceManager
9 android.app.appsearch.AppSearchBatchResult.Builder
9 android.app.appsearch.AppSearchResult
9 android.app.appsearch.SetSchemaRequest.Builder
9 android.companion.CompanionDeviceManager.Callback
9 android.hardware.OverlayProperties
9 android.hardware.biometrics.BiometricManager
9 android.hardware.display.VirtualDisplay
9 android.icu.number.LocalizedNumberFormatter
9 android.media.AudioRouting
9 android.service.autofill.FillEventHistory
9 android.service.wallpaper.WallpaperService
9 java.util.Random
9 java.util.WeakHashMap
8 android.os.BatteryManager
8 android.service.autofill.AutofillService
8 android.app.AppOpsManager
8 java.lang.Thread
8 android.app.appsearch.GenericDocument
8 android.app.appsearch.SearchSuggestionSpec.Builder
8 android.hardware.display.VirtualDisplayConfig
7 android.adservices.customaudience.CustomAudience.Builder
7 android.net.wifi.aware.AwarePairingConfig.Builder
7 android.os.VibrationEffect
7 android.view.accessibility.AccessibilityNodeInfo
7 java.util.Locale
7 android.bluetooth.BluetoothDevice
6 android.view.inputmethod.InputMethodSubtype
6 android.view.autofill.AutofillManager
6 android.app.ActivityOptions
6 android.adservices.customaudience.CustomAudience
6 android.adservices.ondevicepersonalization.ExecuteOutput.Builder
6 android.app.appsearch.GlobalSearchSession
6 android.hardware.camera2.MultiResolutionImageReader
6 android.inputmethodservice.AbstractInputMethodService
6 android.media.MediaCodec.Callback
6 android.os.Vibrator
6 android.service.autofill.FillEventHistory.Event
6 android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder
6 android.provider.ContactsContract.CommonDataKinds.Im
6 android.hardware.usb.UsbManager
6 android.media.tv.interactive.TvInteractiveAppView.TvInteractiveAppCallback
5 android.app.appsearch.GenericDocument.Builder
5 android.graphics.RuntimeShader
5 android.inputmethodservice.AbstractInputMethodService.AbstractInputMethodSessionImpl
5 android.view.AttachedSurfaceControl
5 android.view.Display
5 android.app.ApplicationStartInfo
5 android.media.AudioFormat
5 android.net.vcn.VcnGatewayConnectionConfig
5 android.os.IBinder
5 android.telephony.SubscriptionPlan.Builder
5 android.provider.MediaStore.Audio.AudioColumns
4 android.provider.MediaStore
4 android.view.accessibility.AccessibilityManager
4 android.companion.AssociationInfo
4 android.media.tv.TvView
4 android.media.tv.interactive.TvInteractiveAppView
4 android.net.ConnectivityManager.NetworkCallback
4 android.nfc.NfcAdapter
4 android.app.job.JobScheduler
4 android.content.IntentSender
4 android.content.pm.LauncherApps.Callback
4 android.net.wifi.rtt.RangingRequest.Builder
4 android.net.wifi.rtt.ResponderConfig.Builder
4 android.service.quickaccesswallet.QuickAccessWalletService
4 android.media.tv.TvInputService.Session
4 android.app.appsearch.SearchSuggestionSpec
4 android.bluetooth.BluetoothSocket
4 android.media.Spatializer
4 android.net.wifi.WifiAvailableChannel
4 android.os.Build.VERSION
4 android.view.inputmethod.InputMethodInfo
4 java.util.concurrent.ExecutorService
3 android.net.wifi.p2p.WifiP2pManager
3 java.util.concurrent.ForkJoinPool
3 android.service.autofill.FillRequest
3 android.graphics.ImageFormat
3 android.os.StrictMode.VmPolicy.Builder
3 java.util.concurrent.ForkJoinTask
3 android.view.inputmethod.EditorInfo
3 android.telephony.TelephonyManager
3 android.media.tv.interactive.TvInteractiveAppService.Session
3 android.content.pm.SharedLibraryInfo
3 android.media.MediaRoute2Info
3 android.app.assist.AssistContent
3 android.net.wifi.rtt.ResponderConfig
3 android.view.inputmethod.InputMethodManager
3 android.net.wifi.aware.AwarePairingConfig
3 android.os.Build
3 android.os.ProfilingResult
3 android.view.FrameMetrics
2 java.lang.Character.UnicodeBlock
2 android.hardware.biometrics.BiometricPrompt
2 android.view.SurfaceControl.Transaction
2 android.view.contentcapture.ContentCaptureSession
2 android.graphics.Path
2 android.os.PowerManager
2 android.graphics.ColorSpace.Named
2 android.hardware.camera2.CaptureRequest
2 android.view.textclassifier.TextClassifier
2 java.lang.Float
2 java.util.Objects
2 android.hardware.camera2.CaptureResult
2 android.media.tv.TvContract.Channels
2 android.telephony.CarrierConfigManager
2 android.app.admin.DevicePolicyIdentifiers
2 android.icu.text.Normalizer2
2 android.media.tv.TvView.TvInputCallback
2 android.net.nsd.NsdServiceInfo
2 android.hardware.camera2.params.OutputConfiguration
2 android.provider.MediaStore.MediaColumns
2 android.view.KeyEvent
2 android.view.accessibility.AccessibilityEvent
2 java.lang.Character.UnicodeScript
2 android.media.AudioDeviceInfo
2 android.view.Surface
2 android.app.admin.SecurityLog
1 android.Manifest.permission
1 java.lang.Long
1 java.lang.Integer
1 android.net.wifi.ScanResult
1 java.lang.Character
1 android.provider.Settings
1 android.service.wallpaper.WallpaperService.Engine
1 android.R.string
1 android.icu.lang.UScript
1 android.media.MediaFormat
1 android.telephony.data.ApnSetting
1 android.hardware.camera2.CameraMetadata
1 android.view.ViewStructure
1 android.app.admin.DevicePolicyManager
1 android.icu.lang.UCharacter.UnicodeBlock
1 android.app.job.JobParameters
1 android.content.pm.PackageInstaller.SessionParams
1 android.content.pm.LauncherApps
1 android.icu.lang.UCharacter.IndicSyllabicCategory
1 android.os.Build.VERSION_CODES
1 android.net.wifi.WifiManager
1 android.icu.lang.UProperty
1 android.bluetooth.BluetoothLeAudioCodecConfig
1 android.text.style.TtsSpan
1 android.hardware.camera2.CameraCharacteristics
1 android.telephony.SmsMessage
1 android.appwidget.AppWidgetProviderInfo
1 android.icu.util.Calendar
1 android.content.pm.ActivityInfo
1 android.hardware.HardwareBuffer
1 android.content.Context
1 android.hardware.DataSpace
1 android.icu.util.VersionInfo
1 android.inputmethodservice.InputMethodService
<1 android.icu.util.TimeZone
<1 android.app.Notification
<1 android.app.job.JobInfo
<1 android.graphics.Paint
<1 android.content.pm.PackageInstaller.SessionInfo
<1 android.accessibilityservice.AccessibilityService
<1 android.content.pm.PackageManager
<1 android.net.NetworkCapabilities
<1 android.bluetooth.BluetoothAdapter
<1 android.app.Notification.Builder
<1 android.net.ConnectivityManager
<1 java.util.concurrent.CompletableFuture
<1 android.service.notification.NotificationListenerService
<1 android.media.MediaCodecInfo.CodecCapabilities
<1 android.app.NotificationManager
<1 android.icu.util.MeasureUnit
<1 android.icu.text.UnicodeSet
<1 android.icu.lang.UCharacter.JoiningGroup
<1 android.os.UserManager
<1 android.graphics.Canvas
<1 android.view.ViewGroup
<1 android.view.View
<1 android.R.attr
<1 java.util.Arrays
<1 android.content.Intent

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