API Change Statistics

The overall difference between API Levels 30 and s-dp1 is approximately 2.27%.


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 62 0 66
Classes and Interfaces 90 223 4 317
Constructors 8 15 0 23
Methods 319 97 3 419
Fields 273 71 3 347
Total 694 468 10 1172

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
66 android.telephony.cdma
19 android.location
19 android.telephony
14 android.service.voice
14 android.graphics.text
14 android.telephony.euicc
12 android.telephony.gsm
11 android.companion
10 android.telephony.ims.feature
9 android.view.textservice
8 android.net.wifi.rtt
7 android.service.controls.templates
6 android.telephony.ims
6 android.security
6 android.net.wifi
5 android.net.wifi.aware
4 android.content.pm
4 android.security.keystore
4 android.net.wifi.hotspot2.pps
3 android.os
3 android.graphics.fonts
3 android.graphics
2 android.app.admin
2 android.service.textservice
2 android.provider
2 android.os.strictmode
2 android.icu.text
2 android.view.inputmethod
2 android.media
1 android.app.job
1 android.bluetooth
1 android.text
1 android.media.tv
1 android.accessibilityservice
1 android.media.audiofx
1 java.lang
1 android.service.notification
1 android.icu.number
1 android.telecom
1 java.math
1 android.view
<1 android.os.storage
<1 android.view.textclassifier
<1 android.telephony.mbms
<1 android.bluetooth.le
<1 android.app.usage
<1 android.service.autofill
<1 android.app
<1 android.view.accessibility
<1 android.net
<1 android.util
<1 android.app.assist
<1 android.graphics.drawable
<1 android.speech.tts
<1 android.hardware.camera2
<1 android
<1 java.time
<1 android.media.session
<1 android.content.res
<1 android.text.style
<1 java.util
<1 android.content

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.graphics.RecordingCanvas
87 android.location.GnssCapabilities
71 android.view.textservice.TextServicesManager
66 android.provider.FontRequest
66 android.telephony.cdma.CdmaCellLocation
62 android.telephony.gsm.GsmCellLocation
55 android.telephony.CarrierConfigManager.Ims
54 android.graphics.BitmapRegionDecoder
50 android.location.GnssAntennaInfo.Listener
50 android.provider.FontsContract
50 android.provider.FontsContract.Columns
50 android.provider.FontsContract.FontFamilyResult
50 android.provider.FontsContract.FontInfo
50 android.provider.FontsContract.FontRequestCallback
50 android.telephony.CellLocation
50 android.telephony.ims.RegistrationManager.RegistrationCallback
39 android.location.LocationProvider
35 android.location.GnssMeasurementsEvent.Callback
33 android.location.GnssNavigationMessage.Callback
33 android.net.wifi.rtt.RangingRequest
28 android.location.GnssAntennaInfo.Builder
27 android.net.wifi.ScanResult.InformationElement
26 android.net.wifi.aware.WifiAwareManager
25 android.telephony.PhoneStateListener
25 android.provider.MediaStore.Audio.Artists.Albums
22 android.service.autofill.FillEventHistory.Event
21 android.net.wifi.hotspot2.pps.HomeSp
20 android.graphics.fonts.Font
20 android.location.LocationListener
20 android.media.tv.TvRecordingClient
20 android.net.wifi.rtt.RangingRequest.Builder
20 android.telephony.ims.feature.MmTelFeature.MmTelCapabilities
19 android.provider.ContactsContract.CommonDataKinds.Im
16 android.accessibilityservice.AccessibilityGestureEvent
16 android.app.PictureInPictureParams.Builder
16 android.icu.number.FormattedNumber
16 android.location.LocationManager
15 android.net.wifi.WifiNetworkSuggestion.Builder
14 android.companion.AssociationRequest
14 android.companion.CompanionDeviceManager
14 android.telephony.mbms.MbmsErrors.DownloadErrors
12 android.app.Notification.BigPictureStyle
12 android.icu.number.FormattedNumberRange
12 android.icu.text.RelativeDateTimeFormatter
11 android.provider.CallLog.Calls
11 android.net.IpSecAlgorithm
11 android.net.wifi.WifiNetworkSpecifier.Builder
11 android.telecom.ConnectionService
11 android.companion.AssociationRequest.Builder
11 android.graphics.RadialGradient
11 android.media.AudioPlaybackConfiguration
11 android.media.DrmInitData.SchemeInitData
11 android.view.textclassifier.TextSelection.Request.Builder
10 java.lang.Byte
10 android.view.WindowInsetsController
10 java.lang.Short
9 android.media.tv.TvInputInfo.Builder
9 android.service.notification.NotificationListenerService.Ranking
9 android.telephony.CarrierConfigManager.Apn
9 android.view.textclassifier.TextSelection.Builder
8 android.media.tv.TvInputService.RecordingSession
8 android.net.wifi.WifiInfo
8 android.net.wifi.WifiNetworkSuggestion
7 android.app.usage.StorageStats
7 android.icu.text.NumberFormat.Field
7 android.net.wifi.aware.WifiAwareNetworkInfo
7 android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder
7 android.telephony.CellSignalStrengthNr
7 android.telephony.TelephonyManager
6 android.net.wifi.WifiManager
6 android.app.job.JobParameters
6 android.bluetooth.le.AdvertiseData.Builder
6 android.location.GnssStatus
6 android.net.wifi.WifiConfiguration.PairwiseCipher
6 android.telecom.Conference
6 android.telephony.ims.RegistrationManager
6 android.view.Display.Mode
6 android.security.keystore.KeyProperties
6 android.app.job.JobInfo.Builder
6 android.icu.text.DateIntervalFormat
6 android.view.textservice.SuggestionsInfo
6 android.os.StrictMode.VmPolicy.Builder
5 android.bluetooth.le.AdvertiseData
5 android.content.pm.LauncherActivityInfo
5 android.media.MediaMetadata.Builder
5 android.net.wifi.WifiConfiguration.GroupCipher
5 android.telephony.PreciseDataConnectionState
5 android.util.AtomicFile
5 android.telecom.TelecomManager
5 android.telecom.DisconnectCause
5 android.accessibilityservice.AccessibilityService
5 android.icu.text.DecimalFormat
5 android.media.MediaCodec.CryptoInfo
5 android.net.wifi.aware.Characteristics
5 android.os.VibrationEffect.Composition
5 android.service.textservice.SpellCheckerService.Session
5 android.view.textclassifier.TextSelection.Request
5 android.media.AudioDeviceInfo
4 android.net.wifi.ScanResult
4 android.security.keystore.KeyInfo
4 android.content.pm.LauncherApps.Callback
4 android.view.accessibility.AccessibilityManager
4 android.view.textclassifier.TextSelection
4 android.view.inputmethod.InputConnection
4 android.telephony.CarrierConfigManager
4 android.util.Patterns
4 android.telephony.PhoneNumberUtils
4 android.app.Notification.Action.Builder
4 android.net.wifi.aware.DiscoverySessionCallback
4 android.service.controls.templates.ControlTemplate
4 android.bluetooth.BluetoothHeadset
4 android.graphics.drawable.ColorStateListDrawable
4 android.graphics.fonts.Font.Builder
4 android.net.wifi.EasyConnectStatusCallback
4 android.os.PatternMatcher
4 android.telephony.CellSignalStrengthLte
4 android.telephony.SubscriptionManager
4 java.util.Set
3 android.telephony.AccessNetworkConstants.NgranBands
3 java.math.BigInteger
3 android.app.admin.DevicePolicyManager
3 android.bluetooth.BluetoothGattCallback
3 android.service.voice.VoiceInteractionService
3 android.telecom.PhoneAccount
3 java.lang.StrictMath
3 android.os.Build
3 android.os.storage.StorageVolume
3 android.view.SurfaceControl.Transaction
3 android.app.NotificationManager
3 android.provider.ContactsContract.DataColumns
3 android.telephony.DataFailCause
3 android.app.PendingIntent
3 android.telephony.ims.ImsMmTelManager
3 java.lang.Math
3 android.media.AudioManager
3 android.graphics.ColorSpace
3 android.media.tv.TvContract.Channels
3 android.content.pm.PackageInstaller.Session
3 android.net.wifi.rtt.RangingResult
3 android.telephony.SignalStrength
2 android.media.MediaMetadataRetriever
2 android.app.UiAutomation
2 android.telephony.MbmsDownloadSession
2 android.content.pm.PackageManager
2 android.content.pm.PermissionInfo
2 android.security.KeyChain
2 android.telephony.SmsManager
2 android.graphics.ImageDecoder
2 android.os.PowerManager
2 android.security.keystore.KeyProtection.Builder
2 android.util.SparseArray
2 android.view.Surface
2 android.app.NotificationChannel
2 android.content.pm.PackageInstaller.SessionInfo
2 android.graphics.Rect
2 android.net.TrafficStats
2 android.telecom.Call.Details
2 android.icu.text.PluralRules
2 android.net.wifi.WifiConfiguration
2 android.icu.text.Normalizer2
2 android.net.wifi.WifiEnterpriseConfig
2 android.telecom.Connection
2 android.Manifest.permission
2 android.app.job.JobInfo
2 android.app.Notification
2 android.text.style.SuggestionSpan
2 android.app.AppOpsManager
2 android.icu.text.DateFormatSymbols
1 java.time.LocalTime
1 android.app.Notification.Action
1 android.telephony.NetworkRegistrationInfo
1 android.security.keystore.KeyGenParameterSpec
1 android.security.keystore.KeyGenParameterSpec.Builder
1 android.media.tv.TvInputInfo
1 android.graphics.Matrix
1 android.speech.tts.TextToSpeech
1 android.view.InputDevice
1 android.telecom.RemoteConnection
1 android.graphics.drawable.BitmapDrawable
1 android.os.Build.VERSION_CODES
1 android.provider.MediaStore
1 android.graphics.Bitmap
1 android.media.MediaCas
1 android.content.pm.PackageInstaller
1 android.media.AudioAttributes
1 android.media.AudioFormat
1 android.graphics.Canvas
1 android.content.pm.PackageInfo
1 android.app.admin.SecurityLog
1 android.media.MediaDrm
1 android.media.MediaMetadata
1 android.media.audiofx.AudioEffect
1 android.telephony.SmsMessage
1 android.view.ViewConfiguration
1 android.hardware.camera2.CameraMetadata
1 android.media.session.PlaybackState
1 android.hardware.camera2.CaptureResult
1 android.media.ExifInterface
1 android.content.Context
1 android.view.inputmethod.EditorInfo
<1 android.accessibilityservice.AccessibilityServiceInfo
<1 android.telecom.Call
<1 android.view.ViewStructure
<1 android.content.res.Configuration
<1 java.lang.Class
<1 android.app.assist.AssistStructure.ViewNode
<1 android.hardware.camera2.CaptureRequest
<1 android.graphics.RenderNode
<1 android.content.Intent
<1 android.app.Notification.Builder
<1 android.graphics.drawable.Drawable
<1 android.view.WindowManager.LayoutParams
<1 android.media.MediaFormat
<1 java.math.BigDecimal
<1 android.content.pm.ActivityInfo
<1 android.hardware.camera2.CameraCharacteristics
<1 android.R.attr
<1 android.provider.Settings
<1 android.view.View
<1 android.view.Window
<1 android.telephony.ims.ImsReasonInfo
<1 android.view.KeyEvent
<1 java.lang.Deprecated

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