API Change Statistics

The overall difference between API Levels v-dp1 and v-dp2 is approximately 1.64%.


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 4 52 1 57
Classes and Interfaces 64 164 1 229
Constructors 15 3 1 19
Methods 238 41 50 329
Fields 202 11 9 222
Total 523 271 62 856

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
44 android.graphics.pdf
25 android.adservices.ondevicepersonalization
15 android.net.nsd
12 android.service.notification
10 android.nfc.cardemulation
10 android.companion
7 android.adservices.adselection
5 android.window
5 android.graphics.text
5 java.security.spec
4 android.media.audiofx
4 android.icu.text
3 android.app.usage
3 android.content.pm
3 android.app.appsearch
2 android.net
1 java.util
1 android.content
1 android.database.sqlite
1 android.adservices.common
1 android.hardware.biometrics
1 android.view
1 android.view.inputmethod
<1 android.nfc
<1 java.util.zip
<1 android.text.style
<1 android.security.keystore
<1 android.appwidget
<1 android.security
<1 android.app
<1 android.telephony
<1 android.hardware
<1 android.media
<1 java.util.concurrent
<1 android.hardware.camera2
<1 android.icu.number
<1 android
<1 java.lang
<1 android.app.admin
<1 android.speech
<1 android.telephony.data
<1 android.inputmethodservice
<1 java.io
<1 android.text
<1 android.content.res
<1 android.icu.util
<1 android.os
<1 android.telecom
<1 android.webkit
<1 android.widget
<1 android.provider
<1 android.icu.lang

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.adservices.ondevicepersonalization.DownloadCompletedInput
100 android.adservices.ondevicepersonalization.TrainingExamplesOutput
83 android.media.audiofx.Virtualizer.Settings
68 android.telephony.CarrierConfigManager.ImsEmergency
60 android.adservices.ondevicepersonalization.TrainingExamplesOutput.Builder
54 android.adservices.ondevicepersonalization.IsolatedWorker
52 android.graphics.pdf.PdfRenderer
50 android.media.audiofx.Virtualizer
50 android.media.audiofx.Virtualizer.OnParameterChangeListener
48 android.graphics.pdf.PdfRenderer.Page
35 android.graphics.text.LineBreakConfig
33 android.adservices.adselection.AddAdSelectionOverrideRequest
33 android.adservices.ondevicepersonalization.ExecuteOutput
33 android.app.usage.StorageStats
33 android.net.IpSecTransform
30 android.companion.CompanionDeviceService
30 java.security.spec.MGF1ParameterSpec
27 android.adservices.ondevicepersonalization.ExecuteOutput.Builder
27 android.app.AutomaticZenRule
25 android.adservices.adselection.GetAdSelectionDataOutcome
25 android.adservices.ondevicepersonalization.FederatedComputeScheduler
25 android.adservices.ondevicepersonalization.OnDevicePersonalizationManager
25 java.security.spec.EncodedKeySpec
25 java.security.spec.RSAPrivateKeySpec
25 java.security.spec.RSAPublicKeySpec
20 android.adservices.common.AdServicesPermissions
20 android.adservices.ondevicepersonalization.OnDevicePersonalizationException
20 android.app.appsearch.AppSearchManager
20 android.graphics.text.LineBreakConfig.Builder
20 java.security.spec.PKCS8EncodedKeySpec
20 java.security.spec.X509EncodedKeySpec
20 java.util.LinkedHashSet
17 android.view.AttachedSurfaceControl
17 android.view.WindowManager
16 android.adservices.adselection.PersistAdSelectionResultRequest
16 java.security.spec.RSAKeyGenParameterSpec
15 android.adservices.ondevicepersonalization.UserData
14 java.util.LinkedList
14 android.app.appsearch.GenericDocument.Builder
14 android.app.usage.UsageEventsQuery.Builder
14 android.content.pm.SigningInfo
14 android.security.NetworkSecurityPolicy
14 java.util.LinkedHashMap
13 android.content.pm.PackageInstaller
13 android.nfc.NfcAdapter
12 android.app.appsearch.GetSchemaResponse.Builder
12 java.util.concurrent.ConcurrentLinkedDeque
12 android.service.notification.Condition
11 java.util.ArrayDeque
11 android.app.appsearch.GetSchemaResponse
11 android.app.appsearch.SetSchemaRequest.Builder
11 android.hardware.OverlayProperties
11 android.hardware.biometrics.BiometricManager
10 android.adservices.adselection.AdSelectionConfig.Builder
10 android.adservices.adselection.PersistAdSelectionResultRequest.Builder
9 java.lang.Math
9 java.lang.StrictMath
9 java.util.zip.Inflater
9 android.adservices.adselection.AdSelectionConfig
9 android.view.WindowInsets.Builder
7 java.util.concurrent.LinkedBlockingDeque
7 android.app.usage.UsageEventsQuery
7 java.util.HashMap
7 java.util.SortedMap
7 java.util.SortedSet
7 android.app.appsearch.SetSchemaRequest
7 java.util.TreeMap
7 java.util.zip.Deflater
6 java.util.concurrent.ConcurrentSkipListMap
6 android.view.SurfaceControlViewHost
6 java.security.spec.RSAPrivateCrtKeySpec
6 java.util.HashSet
6 android.view.SurfaceControl.Transaction
6 android.view.WindowInsetsController
5 android.hardware.camera2.CameraManager
5 android.icu.number.FormattedNumber
5 android.view.SurfaceControlViewHost.SurfacePackage
5 java.security.spec.PSSParameterSpec
5 java.security.spec.RSAMultiPrimePrivateCrtKeySpec
5 android.companion.CompanionDeviceManager
5 android.adservices.ondevicepersonalization.IsolatedService
5 android.net.NetworkRequest
5 java.io.Console
5 android.media.MediaRouter2
5 android.net.nsd.NsdServiceInfo
5 android.security.keystore.KeyProtection
5 android.view.inputmethod.InputMethodManager
4 android.hardware.SyncFence
4 android.nfc.cardemulation.HostApduService
4 android.hardware.HardwareBuffer
4 android.net.NetworkRequest.Builder
4 java.util.NavigableSet
4 android.view.WindowInsets
4 android.app.ActivityManager
4 android.hardware.camera2.CameraDevice
4 android.appwidget.AppWidgetManager
4 android.nfc.cardemulation.CardEmulation
3 android.R.color
3 android.telephony.SubscriptionInfo
3 android.text.DynamicLayout.Builder
3 android.app.NotificationManager
3 java.util.Collections
3 android.content.ClipData.Item
3 android.icu.number.NumberFormatterSettings
3 android.icu.text.NumberFormat.Field
3 android.media.Ringtone
3 android.telephony.NetworkRegistrationInfo
3 android.security.keystore.KeyGenParameterSpec
3 android.database.sqlite.SQLiteDatabase
3 android.view.SurfaceView
2 android.app.admin.DevicePolicyIdentifiers
2 java.util.Deque
2 android.content.IntentFilter
2 java.util.NavigableMap
2 android.view.Window
2 android.content.pm.PackageInfo
2 android.content.pm.PackageItemInfo
2 android.net.NetworkCapabilities
2 android.security.keystore.KeyProtection.Builder
2 android.net.nsd.NsdManager
2 android.service.notification.ZenPolicy.Builder
2 android.view.inputmethod.InputMethodInfo
2 android.icu.text.DateTimePatternGenerator
1 android.telephony.SubscriptionManager
1 android.telephony.CarrierConfigManager
1 android.media.MediaRoute2Info
1 java.util.List
1 android.view.inputmethod.EditorInfo
1 android.speech.RecognizerIntent
1 android.content.pm.ServiceInfo
1 android.security.keystore.KeyGenParameterSpec.Builder
1 android.content.pm.LauncherApps
1 android.provider.Settings
1 android.content.pm.PackageInstaller.SessionParams
1 android.service.notification.ZenPolicy
1 android.telephony.ServiceState
1 android.widget.RemoteViews
1 java.lang.Double
1 java.lang.Float
1 android.os.BatteryManager
1 android.icu.util.VersionInfo
1 android.inputmethodservice.InputMethodService
<1 android.os.Process
<1 android.content.pm.PackageInstaller.SessionInfo
<1 android.telephony.TelephonyManager
<1 java.util.zip.ZipFile
<1 android.webkit.WebSettings
<1 android.content.res.Resources
<1 android.telephony.data.ApnSetting
<1 android.Manifest.permission
<1 android.app.admin.DevicePolicyManager
<1 android.telecom.Call.Details
<1 android.os.Debug
<1 android.content.pm.PackageManager
<1 android.telephony.DisconnectCause
<1 android.icu.util.MeasureUnit
<1 android.R.attr
<1 android.os.UserManager
<1 android.content.Intent
<1 java.lang.Character.UnicodeScript
<1 android.view.KeyEvent
<1 android.view.View
<1 android.content.Context
<1 android.icu.lang.UCharacter.UnicodeBlock

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