API Change Statistics

The overall difference between API Levels q-beta1 and q-beta2 is approximately 0.31%.


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 38 0 38
Classes and Interfaces 11 101 5 117
Constructors 2 2 2 6
Methods 137 45 48 230
Fields 40 3 10 53
Total 190 189 65 444

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
13 android.app.role
9 android.net.wifi.aware
6 android.app.admin
5 android.service.carrier
4 android.view.inspector
3 android.telephony.mbms
2 android.service.notification
2 android.hardware.biometrics
2 android.content
1 android.graphics
1 android.app
1 android.service.voice
1 android.provider
1 android.app.backup
<1 android.telecom
<1 android.os.storage
<1 android.content.res
<1 java.lang.invoke
<1 android.media.session
<1 android.telephony
<1 android.telephony.data
<1 android.widget
<1 android.media
<1 android.content.pm
<1 android.view.textclassifier
<1 android.graphics.drawable
<1 android.os
<1 android.database.sqlite
<1 android.view
<1 android.location
<1 android.net.wifi
<1 android.system
<1 android.text.style
<1 android.icu.text
<1 android.view.animation
<1 android
<1 android.net
<1 android.hardware.camera2

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.net.wifi.aware.PeerHandle
50 android.telephony.mbms.MbmsGroupCallSessionCallback
45 android.provider.MediaStore.Images.Media
37 android.telephony.mbms.GroupCallCallback
33 android.provider.DocumentsContract
21 android.telecom.CallIdentification.Builder
16 android.provider.MediaStore.Video
15 android.provider.MediaStore.MediaColumns
15 android.widget.ScrollView
14 android.service.notification.Adjustment
14 android.os.FileUtils
13 android.app.AppComponentFactory
13 android.service.voice.VoiceInteractionService
13 android.telecom.CallIdentification
13 android.app.role.RoleManager
12 android.graphics.RenderNode
12 android.widget.HorizontalScrollView
12 android.hardware.biometrics.BiometricPrompt.Builder
12 android.service.notification.NotificationAssistantService
12 android.graphics.Insets
11 android.app.backup.BackupManager
11 android.os.Build.Partition
11 android.telephony.UiccCardInfo
11 android.view.textclassifier.TextClassificationManager
11 android.widget.EdgeEffect
10 android.graphics.drawable.GradientDrawable
9 android.content.res.Resources.Theme
9 android.media.MediaSession2.Builder
9 android.media.MediaSession2.SessionCallback
9 android.view.ContextThemeWrapper
9 android.widget.NumberPicker
9 android.widget.ProgressBar
8 android.content.pm.PackageInstaller.SessionInfo
8 android.database.sqlite.SQLiteQueryBuilder
8 android.view.WindowInsets.Builder
7 android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint
7 android.icu.text.BreakIterator
7 java.lang.invoke.MethodHandleInfo
6 android.telephony.CellIdentityNr
6 android.provider.MediaStore
5 android.media.MediaSession2
5 android.telephony.CellIdentityTdscdma
5 android.widget.ViewFlipper
5 android.widget.PopupWindow
5 android.text.style.DynamicDrawableSpan
5 android.view.LayoutInflater
5 android.widget.ToggleButton
5 android.telephony.AvailableNetworkInfo
4 android.media.Session2Token
3 android.telephony.SignalStrength
3 android.widget.PopupMenu
3 android.location.GnssMeasurement
3 android.widget.AbsListView
3 android.widget.SearchView
3 android.app.NotificationChannel
3 android.content.pm.PackageInstaller.SessionParams
3 android.content.pm.ProviderInfo
2 android.widget.AutoCompleteTextView
2 android.net.wifi.WifiInfo
2 android.hardware.biometrics.BiometricPrompt
2 android.media.session.MediaController.TransportControls
2 android.service.notification.NotificationListenerService.Ranking
2 android.media.session.MediaController
2 android.content.ContentResolver
2 android.media.session.MediaSession.Callback
2 android.graphics.ImageFormat
2 android.media.session.MediaSession
2 android.os.storage.StorageManager
1 android.content.ContentProviderClient
1 android.media.AudioRecord
1 android.telephony.TelephonyManager
1 android.view.animation.Animation
1 android.widget.ListPopupWindow
1 android.app.Service
1 android.content.pm.PackageInstaller
1 android.widget.RelativeLayout
1 android.net.NetworkCapabilities
1 android.Manifest.permission
1 android.view.ViewConfiguration
1 android.content.ContentProvider
1 android.system.Os
1 android.telephony.data.ApnSetting
<1 android.view.View
<1 android.provider.Settings.Global
<1 android.view.InputDevice
<1 android.app.NotificationManager
<1 android.media.MediaFormat
<1 android.app.Notification.Builder
<1 android.net.ConnectivityManager
<1 android.media.ExifInterface
<1 android.net.wifi.WifiManager
<1 android.provider.Settings
<1 android.content.Intent
<1 android.app.Notification
<1 android.view.ViewGroup
<1 android.telephony.CarrierConfigManager
<1 android.app.admin.DevicePolicyManager
<1 android.hardware.camera2.CameraMetadata
<1 android.content.pm.PackageManager
<1 android.R.style
<1 android.R.attr

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