API Change Statistics

The overall difference between API Levels q-beta2 and q-beta3 is approximately 0.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 0 40 0 40
Classes and Interfaces 18 159 26 203
Constructors 11 13 4 28
Methods 174 54 79 307
Fields 79 13 88 180
Total 282 279 197 758

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
29 android.view.inspector
16 android.service.notification
15 android.net.wifi.rtt
12 android.graphics.text
8 android.net.wifi.aware
8 android.app.role
7 android.net
5 android.media
5 android.system
4 android.telecom
4 android.graphics.fonts
4 android.hardware.biometrics
3 android.webkit
3 android.telephony.emergency
2 android.graphics
2 android.telephony
2 android.content.pm
1 android.os
1 android.location
1 android.net.wifi
1 android.hardware.camera2.params
<1 android.hardware.camera2
<1 android.text
<1 android.app.admin
<1 android.service.carrier
<1 android.service.autofill
<1 android.content
<1 android
<1 android.widget
<1 android.view.textclassifier
<1 android.nfc
<1 android.content.res
<1 android.provider
<1 android.bluetooth
<1 android.database.sqlite
<1 android.view
<1 android.graphics.drawable
<1 android.app
<1 android.app.usage
<1 android.view.accessibility

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.graphics.ComposeShader
100 android.media.MediaPlayer2.DrmPreparationInfo
66 android.media.MicrophoneDirection
61 android.widget.ZoomControls
50 android.graphics.PorterDuff
50 android.graphics.PorterDuffXfermode
50 android.net.ParseException
50 android.telecom.CallScreeningService
50 android.view.inspector.IntFlagMapping
43 android.net.wifi.rtt.ResponderLocation
42 android.provider.Telephony.CarrierId
33 android.media.Session2Command.Result
27 android.net.DnsResolver
27 android.net.LinkProperties
25 android.graphics.PorterDuff.Mode
25 android.hardware.biometrics.BiometricPrompt.Builder
20 android.content.pm.PermissionGroupInfo
20 android.graphics.text.LineBreaker.Result
20 android.media.AudioTrack.MetricsConstants
20 android.media.MediaPlayer2.DrmEventCallback
20 android.media.TimedMetaData
20 android.view.WindowInsets.Builder
20 android.view.inspector.InspectionCompanion
17 android.net.wifi.WifiNetworkSuggestion.Builder
16 android.graphics.fonts.Font.Builder
16 android.graphics.fonts.FontFamily.Builder
16 android.graphics.text.LineBreaker.Builder
16 android.graphics.text.LineBreaker.ParagraphConstraints
16 android.hardware.camera2.params.MandatoryStreamCombination
16 android.media.Session2CommandGroup.Builder
16 android.service.autofill.VisibilitySetterAction.Builder
14 android.graphics.text.MeasuredText
14 android.hardware.camera2.CameraManager.AvailabilityCallback
14 android.media.MediaDrm.SessionException
14 android.media.Session2Command
14 android.provider.Settings.Panel
13 android.location.GnssMeasurement
13 android.media.MediaPlayer2.DrmPreparationInfo.Builder
12 android.app.admin.DelegatedAdminReceiver
12 android.media.AudioAttributes.Builder
12 android.net.wifi.WifiNetworkSpecifier.Builder
12 android.telephony.CellIdentityNr
12 android.net.SocketKeepalive
11 android.Manifest.permission_group
11 android.app.Notification.BubbleMetadata.Builder
11 android.media.SubtitleData
11 android.telecom.CallScreeningService.CallResponse
11 android.view.inspector.PropertyMapper
10 android.app.Notification.BubbleMetadata
10 android.media.AudioRecord.MetricsConstants
10 android.media.MediaItem2.Builder
9 android.location.GnssClock
9 android.telephony.AvailableNetworkInfo
9 android.content.pm.PermissionInfo
9 android.media.AudioRecord.Builder
9 android.media.MediaTimestamp
9 android.os.VibrationEffect
9 android.provider.MediaStore.MediaColumns
9 android.service.autofill.FillContext
9 android.view.textclassifier.ConversationActions.Request.Builder
8 android.os.PowerManager
8 android.app.role.RoleManager
8 android.graphics.Typeface.CustomFallbackBuilder
8 android.os.Binder
8 android.graphics.HardwareRenderer
7 android.telephony.TelephonyManager
7 android.bluetooth.BluetoothHealthAppConfiguration
7 android.database.sqlite.SQLiteQueryBuilder
7 android.os.SystemClock
7 android.telecom.CallScreeningService.CallResponse.Builder
7 android.graphics.text.MeasuredText.Builder
7 android.service.carrier.CarrierIdentifier
6 android.hardware.camera2.CaptureFailure
6 android.media.MediaDrm.KeyStatus
6 android.telephony.SubscriptionManager
6 android.net.wifi.rtt.RangingResult
6 android.view.WindowInsets
6 android.media.AudioAttributes
5 android.content.pm.PackageInstaller.SessionParams
5 android.media.MediaDrm
5 android.graphics.drawable.Icon
5 android.media.AudioPresentation.Builder
5 android.media.MediaPlayer2.EventCallback
5 android.graphics.Paint
5 android.net.wifi.WifiInfo
5 android.widget.PopupWindow
5 android.widget.Magnifier.Builder
4 android.telephony.CellInfo
4 android.view.textclassifier.ConversationActions.Request
4 android.nfc.NfcAdapter
4 android.media.MediaPlayer2
4 android.provider.CallLog.Calls
4 android.telecom.PhoneAccountSuggestion
4 android.view.MenuItem
4 android.view.ViewTreeObserver
4 android.content.res.Resources.Theme
4 android.media.MediaCodecInfo.VideoCapabilities.PerformancePoint
4 android.os.DropBoxManager
3 android.media.AudioRecord
3 android.telephony.PhoneStateListener
3 android.content.pm.ShortcutInfo.Builder
3 android.telephony.emergency.EmergencyNumber
3 android.webkit.WebView
3 android.view.inspector.PropertyReader
3 android.app.NotificationManager
3 android.telephony.ServiceState
3 android.webkit.WebSettings
2 android.content.pm.PackageInstaller.SessionInfo
2 android.location.GnssStatus
2 android.location.Location
2 android.os.Environment
2 android.media.RingtoneManager
2 android.location.LocationManager
2 android.media.SoundPool
2 android.Manifest.permission
2 android.net.NetworkCapabilities
2 android.bluetooth.BluetoothHealth
2 android.content.pm.ServiceInfo
2 android.service.notification.ZenPolicy.Builder
2 android.provider.Settings
2 android.media.AudioTrack
2 android.telephony.SubscriptionInfo
2 android.graphics.drawable.Drawable
2 android.hardware.camera2.params.RecommendedStreamConfigurationMap
1 android.app.usage.UsageEvents.Event
1 android.media.MediaCodecInfo.CodecProfileLevel
1 android.app.AppOpsManager
1 android.media.MediaRecorder
1 android.content.pm.PackageManager
1 android.content.pm.LauncherApps
1 android.system.Os
1 android.service.notification.NotificationListenerService
1 android.content.pm.PackageInstaller
1 android.app.admin.DevicePolicyManager
1 android.graphics.ImageDecoder
1 android.telecom.TelecomManager
1 android.net.Uri
1 android.net.wifi.WifiManager
1 android.provider.MediaStore
1 android.widget.AbsListView
1 android.media.MediaFormat
1 android.telecom.Call
<1 android.view.View
<1 android.media.AudioManager
<1 android.content.res.Resources
<1 android.telecom.Call.Details
<1 android.content.Context
<1 android.content.pm.ApplicationInfo
<1 android.os.UserManager
<1 android.view.accessibility.AccessibilityNodeInfo
<1 android.media.MediaPlayer
<1 android.system.OsConstants
<1 android.app.Notification
<1 android.telephony.CarrierConfigManager
<1 android.app.Activity
<1 android.R.attr
<1 android.view.KeyEvent
<1 android.media.MediaDrm.HdcpLevel
<1 android.media.MediaDrm.SecurityLevel

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