API Change Statistics

The overall difference between API Levels c-beta2 and 37 is approximately 3.74%.


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 9 47 0 56
Classes and Interfaces 51 189 0 240
Constructors 3 52 0 55
Methods 119 379 7 505
Fields 257 50 0 307
Total 439 717 7 1163

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
100 android.adservices.exceptions
61 android.app.appfunctions
50 android.adservices.adselection
50 android.adservices
50 android.adservices.customaudience
50 android.adservices.measurement
50 android.adservices.signals
50 android.adservices.topics
49 android.media.projection
46 android.adservices.common
26 android.widget.photopicker
21 android.media.quality
11 android.os.storage
7 android.view.autofill
7 android.view.accessibility
5 android.health.connect
2 android.nfc
1 android.app
1 android.app.appsearch
1 javax.xml.parsers
1 java.lang
1 android.text
<1 android.view
<1 android.companion
<1 java.security.spec
<1 javax.net.ssl
<1 android.view.contentcapture
<1 java.util.random
<1 android.security.keystore
<1 android.app.assist
<1 android.ranging
<1 android.appwidget
<1 android.service.voice
<1 android.os
<1 android.view.inputmethod
<1 android.location
<1 android.health.connect.datatypes
<1 android.content.pm
<1 android.net
<1 android
<1 android.hardware.camera2.params
<1 android.service.autofill
<1 android.provider
<1 android.content
<1 android.media
<1 android.telephony
<1 android.widget

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.adservices.exceptions.AdServicesException
92 android.media.quality.MediaQualityContract
75 android.adservices.adselection.ReportImpressionRequest
66 android.adservices.adselection.AddAdSelectionOverrideRequest
64 android.adservices.adselection.SignedContextualAds.Builder
60 android.adservices.adselection.AdSelectionManager
53 android.media.quality.MediaQualityContract.PictureQuality
50 android.adservices.AdServicesState
50 android.adservices.adselection.AdSelectionConfig
50 android.adservices.adselection.AdSelectionConfig.Builder
50 android.adservices.adselection.AdSelectionFromOutcomesConfig
50 android.adservices.adselection.AdSelectionFromOutcomesConfig.Builder
50 android.adservices.adselection.AdSelectionOutcome
50 android.adservices.adselection.AdSelectionOutcome.Builder
50 android.adservices.adselection.AdWithBid
50 android.adservices.adselection.AddAdSelectionFromOutcomesOverrideRequest
50 android.adservices.adselection.DecisionLogic
50 android.adservices.adselection.GetAdSelectionDataRequest
50 android.adservices.adselection.GetAdSelectionDataRequest.Builder
50 android.adservices.adselection.PerBuyerConfiguration
50 android.adservices.adselection.PerBuyerConfiguration.Builder
50 android.adservices.adselection.PerBuyerDecisionLogic
50 android.adservices.adselection.RemoveAdSelectionFromOutcomesOverrideRequest
50 android.adservices.adselection.RemoveAdSelectionOverrideRequest
50 android.adservices.adselection.ReportEventRequest
50 android.adservices.adselection.ReportEventRequest.Builder
50 android.adservices.adselection.SellerConfiguration
50 android.adservices.adselection.SellerConfiguration.Builder
50 android.adservices.adselection.SetAppInstallAdvertisersRequest
50 android.adservices.adselection.SetAppInstallAdvertisersRequest.Builder
50 android.adservices.adselection.SignedContextualAds
50 android.adservices.adselection.TestAdSelectionManager
50 android.adservices.adselection.UpdateAdCounterHistogramRequest
50 android.adservices.adselection.UpdateAdCounterHistogramRequest.Builder
50 android.adservices.common.AdData
50 android.adservices.common.AdData.Builder
50 android.adservices.common.AdFilters
50 android.adservices.common.AdFilters.Builder
50 android.adservices.common.AdSelectionSignals
50 android.adservices.common.AdServicesPermissions
50 android.adservices.common.AdTechIdentifier
50 android.adservices.common.AppInstallFilters
50 android.adservices.common.AppInstallFilters.Builder
50 android.adservices.common.ComponentAdData
50 android.adservices.common.FrequencyCapFilters
50 android.adservices.common.FrequencyCapFilters.Builder
50 android.adservices.common.KeyedFrequencyCap
50 android.adservices.common.KeyedFrequencyCap.Builder
50 android.adservices.customaudience.AddCustomAudienceOverrideRequest
50 android.adservices.customaudience.AddCustomAudienceOverrideRequest.Builder
50 android.adservices.customaudience.CustomAudience
50 android.adservices.customaudience.CustomAudience.Builder
50 android.adservices.customaudience.CustomAudienceManager
50 android.adservices.customaudience.FetchAndJoinCustomAudienceRequest
50 android.adservices.customaudience.FetchAndJoinCustomAudienceRequest.Builder
50 android.adservices.customaudience.JoinCustomAudienceRequest
50 android.adservices.customaudience.JoinCustomAudienceRequest.Builder
50 android.adservices.customaudience.LeaveCustomAudienceRequest
50 android.adservices.customaudience.LeaveCustomAudienceRequest.Builder
50 android.adservices.customaudience.PartialCustomAudience
50 android.adservices.customaudience.PartialCustomAudience.Builder
50 android.adservices.customaudience.RemoveCustomAudienceOverrideRequest
50 android.adservices.customaudience.RemoveCustomAudienceOverrideRequest.Builder
50 android.adservices.customaudience.ScheduleCustomAudienceUpdateRequest
50 android.adservices.customaudience.ScheduleCustomAudienceUpdateRequest.Builder
50 android.adservices.customaudience.TestCustomAudienceManager
50 android.adservices.customaudience.TrustedBiddingData
50 android.adservices.customaudience.TrustedBiddingData.Builder
50 android.adservices.measurement.DeletionRequest
50 android.adservices.measurement.DeletionRequest.Builder
50 android.adservices.measurement.MeasurementManager
50 android.adservices.measurement.SourceRegistrationRequest
50 android.adservices.measurement.SourceRegistrationRequest.Builder
50 android.adservices.measurement.WebSourceParams
50 android.adservices.measurement.WebSourceParams.Builder
50 android.adservices.measurement.WebSourceRegistrationRequest
50 android.adservices.measurement.WebSourceRegistrationRequest.Builder
50 android.adservices.measurement.WebTriggerParams
50 android.adservices.measurement.WebTriggerParams.Builder
50 android.adservices.measurement.WebTriggerRegistrationRequest
50 android.adservices.measurement.WebTriggerRegistrationRequest.Builder
50 android.adservices.signals.ProtectedSignalsManager
50 android.adservices.signals.UpdateSignalsRequest
50 android.adservices.signals.UpdateSignalsRequest.Builder
50 android.adservices.topics.EncryptedTopic
50 android.adservices.topics.GetTopicsRequest
50 android.adservices.topics.GetTopicsRequest.Builder
50 android.adservices.topics.GetTopicsResponse
50 android.adservices.topics.GetTopicsResponse.Builder
50 android.adservices.topics.Topic
50 android.adservices.topics.TopicsManager
47 android.media.projection.MediaProjectionConfig
41 android.adservices.adselection.PersistAdSelectionResultRequest.Builder
37 android.adservices.adselection.PersistAdSelectionResultRequest
37 android.view.accessibility.AccessibilityNodeInfo.ExtraRenderingInfo
33 android.adservices.adselection.GetAdSelectionDataOutcome
33 android.app.ActivityManager.AppTask
33 android.nfc.NfcAdapter.ReaderCallback
30 android.app.appfunctions.AppFunctionManager
27 android.app.appfunctions.ExecuteAppFunctionRequest.Builder
23 android.media.quality.PictureProfile
21 android.media.quality.MediaQualityContract.SoundQuality
20 android.health.connect.MatchmakingRequest
20 android.health.connect.MatchmakingRequest.Builder
20 android.media.quality.SoundProfile
14 java.security.spec.NamedParameterSpec
12 android.app.appfunctions.ExecuteAppFunctionRequest
11 android.app.ActivityManager.TaskDescription.Builder
11 android.app.appfunctions.ExecuteAppFunctionResponse
11 android.media.quality.PictureProfile.Builder
11 android.text.AlteredCharSequence
11 android.view.accessibility.AccessibilityNodeInfo.SelectionPosition
11 javax.net.ssl.ExtendedSSLSession
10 java.lang.ThreadGroup
9 android.health.connect.datatypes.Device.Builder
7 javax.xml.parsers.DocumentBuilderFactory
7 android.media.quality.MediaQualityManager
7 android.widget.photopicker.EmbeddedPhotoPickerFeatureInfo
7 android.widget.photopicker.EmbeddedPhotoPickerFeatureInfo.Builder
6 android.health.connect.HealthConnectManager
6 android.nfc.NfcAntennaInfo
5 android.app.appsearch.GetSchemaResponse.Builder
5 java.lang.CharSequence
5 android.view.AttachedSurfaceControl
5 android.net.DnsResolver
4 android.app.appsearch.GetSchemaResponse
4 android.companion.AssociationRequest.Builder
4 android.text.SpannedString
4 android.view.SurfaceView
4 javax.net.ssl.SSLParameters
4 android.ranging.RangingCapabilities
3 android.nfc.NfcAdapter
3 android.companion.AssociationInfo
3 android.os.StrictMode.VmPolicy.Builder
3 java.lang.Math
3 java.lang.StrictMath
3 android.security.keystore.KeyProperties
3 android.app.appsearch.SetSchemaRequest
3 android.media.quality.ParameterCapability
3 android.view.inputmethod.InputMethodSubtype.InputMethodSubtypeBuilder
2 android.os.BaseBundle
2 java.lang.StringBuffer
2 java.lang.StringBuilder
2 android.app.appsearch.SetSchemaRequest.Builder
2 android.view.contentcapture.ContentCaptureSession
2 android.companion.AssociationRequest
2 android.health.connect.datatypes.Device
2 java.lang.String
2 android.view.inputmethod.InputMethodSubtype
2 java.lang.Character.UnicodeScript
1 android.app.ActivityManager
1 java.lang.Thread
1 android.location.GnssCapabilities.Builder
1 android.provider.Telephony.TextBasedSmsColumns
1 android.text.SpannableStringBuilder
1 android.app.AlarmManager
1 java.lang.Character.UnicodeBlock
1 android.service.autofill.FillEventHistory.Event
1 java.util.random.RandomGenerator
1 android.location.GnssCapabilities
1 android.service.voice.VoiceInteractionSession
1 android.os.Bundle
1 android.content.pm.PermissionInfo
1 android.content.pm.PackageInstaller.SessionParams
1 android.os.Build.VERSION_CODES_FULL
1 android.os.Build.VERSION_CODES
1 android.view.WindowManager
1 android.content.pm.PackageInfo
1 android.hardware.camera2.params.OutputConfiguration
<1 android.media.AudioDeviceInfo
<1 android.provider.DocumentsContract
<1 android.os.Process
<1 android.appwidget.AppWidgetManager
<1 android.content.pm.PackageInstaller.SessionInfo
<1 android.provider.MediaStore
<1 android.Manifest.permission
<1 android.view.accessibility.AccessibilityNodeInfo
<1 android.app.assist.AssistStructure.ViewNode
<1 android.view.InputDevice
<1 android.content.Context
<1 android.app.Notification
<1 android.telephony.CarrierConfigManager
<1 android.widget.RemoteViews
<1 android.provider.Settings
<1 android.view.KeyEvent
<1 android.media.MediaCodecInfo.CodecProfileLevel
<1 android.media.MediaFormat
<1 android.R.attr
<1 android.content.pm.PackageManager

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