API Change Statistics

The overall difference between API Levels t-beta1 and t-beta2 is approximately 1.22%.


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 1 41 1 43
Classes and Interfaces 13 82 12 107
Constructors 1 7 1 9
Methods 110 22 73 205
Fields 87 11 16 114
Total 212 163 103 478

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
50 android.adservices
25 android.media.tv.interactive
20 android.window
20 android.app.appsearch.observer
13 android.speech
12 android.app.admin
11 android.view.autofill
7 android.graphics.text
3 android.content.pm
3 android.net.nsd
3 android.bluetooth.le
2 android.media.tv
2 android.bluetooth
1 android.animation
1 android.os
1 android.view.translation
1 android.media.metrics
<1 android.app
<1 android.print
<1 android.net
<1 android.security
<1 android.app.appsearch
<1 android.provider
<1 android.hardware.camera2.params
<1 android.media
<1 android.view.inputmethod
<1 android.service.autofill
<1 android.telephony.data
<1 android.view.animation
<1 android.view.accessibility
<1 android.preference
<1 android.content
<1 android
<1 android.inputmethodservice
<1 android.net.wifi.p2p
<1 android.view
<1 android.location
<1 android.hardware.camera2
<1 android.telephony
<1 android.net.wifi
<1 android.widget

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.app.admin.DevicePolicyResources
77 android.speech.RecognitionSupport.Builder
68 android.bluetooth.le.ScanRecord
60 android.app.PictureInPictureParams
59 android.bluetooth.BluetoothLeAudioCodecStatus
57 android.media.tv.interactive.AppLinkInfo
53 android.speech.RecognitionSupport
50 android.adservices.AdServicesVersion
50 android.window.OnBackInvokedCallback
46 android.media.tv.CommandRequest
44 android.media.tv.CommandResponse
35 android.app.ActivityManager.TaskDescription
33 android.view.translation.UiTranslationStateCallback
28 android.app.appsearch.GlobalSearchSession
23 android.bluetooth.BluetoothLeAudioCodecConfig
23 android.media.RouteDiscoveryPreference
20 android.graphics.text.LineBreakConfig
20 android.media.tv.StreamEventResponse
20 android.print.PrintManager
18 android.net.nsd.NsdManager
18 android.bluetooth.BluetoothLeAudioCodecConfig.Builder
16 android.media.RouteDiscoveryPreference.Builder
15 android.provider.CloudMediaProviderContract
14 android.app.LocaleManager
14 android.media.Spatializer
14 android.media.metrics.BundleSession
13 android.media.tv.interactive.TvInteractiveAppView
12 android.window.OnBackInvokedDispatcher
11 android.security.KeyStoreException
11 android.bluetooth.le.ScanFilter.Builder
11 android.os.VibrationEffect
11 android.os.VibrationEffect.Composition
11 android.view.inputmethod.InlineSuggestionsRequest.Builder
10 android.service.autofill.FillEventHistory.Event
9 android.os.Vibrator
8 android.content.pm.ShortcutInfo
7 android.media.tv.interactive.TvInteractiveAppService.Session
7 android.media.metrics.MediaMetricsManager
7 android.media.tv.TimelineResponse
6 android.media.tv.TvView.TvInputCallback
6 android.net.VpnManager
6 android.hardware.camera2.params.MandatoryStreamCombination.MandatoryStreamInformation
5 android.media.tv.interactive.TvInteractiveAppManager
4 android.view.animation.Animation
4 android.content.pm.CrossProfileApps
4 android.bluetooth.BluetoothStatusCodes
4 android.media.tv.interactive.TvInteractiveAppView.TvInteractiveAppCallback
4 android.service.autofill.FillRequest
4 android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo
3 android.animation.ValueAnimator
3 android.net.Ikev2VpnProfile
3 android.media.MediaRoute2Info.Builder
2 android.hardware.camera2.params.OutputConfiguration
2 android.view.autofill.AutofillManager
2 android.content.pm.ShortcutInfo.Builder
2 android.media.tv.interactive.TvInteractiveAppService
2 android.provider.CloudMediaProvider
1 android.content.ClipDescription
1 android.media.MediaRoute2Info
1 android.view.SurfaceControl.Transaction
1 android.telephony.data.ApnSetting
1 android.content.Intent
1 android.telephony.TelephonyManager
1 android.preference.PreferenceActivity
1 android.media.MediaFormat
1 android.widget.TextView
1 android.view.ViewParent
<1 android.Manifest.permission
<1 android.app.admin.DevicePolicyManager
<1 android.content.Context
<1 android.net.wifi.p2p.WifiP2pManager
<1 android.app.Activity
<1 android.location.Location
<1 android.app.Instrumentation
<1 android.inputmethodservice.InputMethodService
<1 android.app.Dialog
<1 android.hardware.camera2.CameraCharacteristics
<1 android.view.WindowManager.LayoutParams
<1 android.net.wifi.WifiManager
<1 android.view.Window
<1 android.R.attr
<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%.