API Change Statistics

The overall difference between API Levels s-beta1 and s-beta2 is approximately 1.21%.


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 0 42 1 43
Classes and Interfaces 25 131 32 188
Constructors 7 6 2 15
Methods 96 29 85 210
Fields 104 10 68 182
Total 232 218 188 638

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
46 android.net.ipsec.ike.exceptions
33 android.window
26 android.net.vcn
18 android.hardware.lights
15 android.app.appsearch
13 android.telephony.data
13 android.view.textservice
12 android.net.ipsec.ike
9 android.hardware.biometrics
7 android.view.translation
6 android.media.metrics
6 android.hardware
3 android.os
2 android.content.pm
2 android.telephony
1 android.net.wifi.p2p
1 android.net
<1 android.media
<1 android.speech
<1 android.service.autofill
<1 android.hardware.display
<1 android.hardware.camera2.params
<1 android.view
<1 android.graphics.drawable
<1 android.appwidget
<1 android.app
<1 android.app.assist
<1 android.inputmethodservice
<1 android.view.inputmethod
<1 android
<1 android.print
<1 android.hardware.camera2
<1 android.app.job
<1 android.widget
<1 android.service.notification
<1 android.app.admin
<1 android.media.session
<1 android.bluetooth
<1 android.content
<1 android.telecom
<1 android.view.accessibility
<1 android.provider

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.media.MediaDrm.LogMessage
66 android.app.appsearch.ReportUsageRequest
61 android.media.metrics.PlaybackErrorEvent
57 android.app.appsearch.ReportSystemUsageRequest.Builder
57 android.app.appsearch.ReportUsageRequest.Builder
50 android.app.appsearch.AppSearchSchema.DocumentPropertyConfig
50 android.media.EncoderProfiles
50 android.net.ParseException
50 android.net.ipsec.ike.ChildSessionConfiguration
50 android.view.translation.UiTranslationStateCallback
50 android.window.SplashScreen
50 android.window.SplashScreenView
44 android.app.appsearch.AppSearchSchema.DocumentPropertyConfig.Builder
42 android.net.vcn.VcnGatewayConnectionConfig
40 android.app.appsearch.ReportSystemUsageRequest
39 android.view.translation.TranslationManager
36 android.service.autofill.FillEventHistory.Event
33 android.app.appsearch.SetSchemaResponse.MigrationFailure
33 android.net.ipsec.ike.IkeSessionCallback
33 android.os.VibratorManager
31 android.view.translation.TranslationSpec
27 android.net.ipsec.ike.ChildSessionCallback
27 android.net.wifi.p2p.WifiP2pWfdInfo
25 android.net.vcn.VcnGatewayConnectionConfig.Builder
22 android.app.appsearch.SearchResult.MatchInfo.Builder
22 android.hardware.biometrics.BiometricManager
20 android.app.appsearch.SearchResult
20 android.app.appsearch.SearchResult.Builder
20 android.hardware.lights.LightsManager.LightsSession
20 android.hardware.lights.LightsRequest
20 android.media.MediaSyncEvent
20 android.media.metrics.Event
20 android.net.ipsec.ike.ChildSessionParams
20 android.view.textservice.TextServicesManager
18 android.app.appsearch.AppSearchSession
16 android.graphics.drawable.RippleDrawable
16 android.hardware.lights.LightState
16 android.media.metrics.MediaMetricsManager
16 android.net.vcn.VcnManager.VcnStatusCallback
16 android.view.translation.Translator
15 android.net.ipsec.ike.IkeSessionParams.Builder
14 android.net.ipsec.ike.IkeSessionConnectionInfo
14 android.net.ipsec.ike.IkeSessionParams
14 android.net.ipsec.ike.TransportModeChildSessionParams.Builder
13 android.hardware.lights.Light
13 android.content.pm.PackageInstaller.SessionParams
12 android.telephony.data.TrafficDescriptor.Builder
11 android.hardware.camera2.params.MandatoryStreamCombination.MandatoryStreamInformation
11 android.view.ContentInfo
10 android.telephony.data.TrafficDescriptor
10 android.widget.EdgeEffect
9 android.content.pm.PackageInstaller
9 android.view.Surface
9 android.os.VibrationEffect.Composition
8 android.app.Notification.BubbleMetadata.Builder
8 android.media.EncoderProfiles.AudioProfile
8 android.net.ipsec.ike.TunnelModeChildSessionParams.Builder
8 android.content.pm.PackageInstaller.Session
7 android.net.Proxy
7 android.net.ipsec.ike.IkeSession
7 android.net.ipsec.ike.IkeSessionConfiguration
7 android.media.EncoderProfiles.VideoProfile
7 android.view.translation.ViewTranslationRequest
6 android.app.Notification.CallStyle
6 android.view.SurfaceControl.Transaction
6 android.view.translation.TranslationResponse.Builder
6 android.print.PrintAttributes.MediaSize
5 android.hardware.camera2.CameraExtensionCharacteristics
5 android.widget.RemoteViews
5 android.telephony.PreciseDataConnectionState
5 android.inputmethodservice.InputMethodService.InputMethodSessionImpl
4 android.R.dimen
4 android.net.NetworkRequest.Builder
4 android.app.appsearch.GenericDocument
4 android.media.ApplicationMediaCapabilities
4 android.net.vcn.VcnManager
4 android.speech.SpeechRecognizer
4 android.view.SurfaceView
4 android.view.translation.TranslationCapability
4 android.widget.HorizontalScrollView
4 android.view.inputmethod.InputMethodSession
4 android.widget.ScrollView
3 android.media.CamcorderProfile
3 android.media.MediaRouter2
3 android.content.pm.ComponentInfo
3 android.content.pm.PackageInstaller.SessionInfo
3 android.hardware.display.DeviceProductInfo
2 android.os.Vibrator
2 android.R.color
2 android.view.inputmethod.InputMethodInfo
2 android.content.pm.ApplicationInfo
2 android.view.InputDevice
2 android.appwidget.AppWidgetProviderInfo
2 android.telephony.PhysicalChannelConfig
2 android.view.inputmethod.InputMethodManager
1 android.content.pm.ShortcutManager
1 android.app.AlarmManager
1 android.view.ViewStructure
1 android.app.job.JobParameters
1 android.app.assist.AssistStructure.ViewNode
1 android.os.Build
1 android.speech.RecognizerIntent
1 android.app.admin.DevicePolicyManager
1 android.media.AudioFormat
1 android.media.AudioDeviceInfo
1 android.media.session.PlaybackState
1 android.widget.AbsListView
1 android.view.View
1 android.net.NetworkCapabilities
<1 android.content.Intent
<1 android.media.MediaFormat
<1 android.Manifest.permission
<1 android.telephony.SubscriptionManager
<1 android.media.AudioManager
<1 android.bluetooth.BluetoothAdapter
<1 android.app.NotificationManager
<1 android.net.ConnectivityManager
<1 android.service.notification.NotificationListenerService
<1 android.telecom.TelecomManager
<1 android.provider.Settings
<1 android.provider.Settings.System
<1 android.content.Context
<1 android.app.Activity
<1 android.telephony.TelephonyManager
<1 android.view.ViewGroup
<1 android.telephony.CarrierConfigManager
<1 android.app.Notification
<1 android.view.Window
<1 android.view.accessibility.AccessibilityNodeInfo
<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%.