API Change Statistics

The overall difference between API Levels 30 and 31 is approximately 6.25%.


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 14 86 0 100
Classes and Interfaces 152 443 4 599
Constructors 19 91 0 110
Methods 675 896 3 1574
Fields 723 231 2 956
Total 1583 1747 9 3339

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
66 android.telephony.cdma
63 android.telephony.data
62 android.renderscript
57 android.net.sip
50 android.net.rtp
21 android.telephony
20 android.net.ssl
19 android.view.textservice
16 android.location
16 android.telephony.ims
14 android.hardware.display
14 android.service.voice
14 android.graphics.text
14 android.telephony.euicc
12 android.telephony.gsm
12 android.hardware.camera2
11 android.hardware.camera2.params
11 android.companion
10 android.net.wifi
10 android.telephony.ims.feature
9 android.system
8 android.net.wifi.rtt
7 android.hardware.biometrics
7 android.service.controls.templates
6 android.security
6 android.content.pm
6 android.net.wifi.aware
5 android.security.keystore
5 android.appwidget
5 android.app.job
4 android.media
4 android.hardware
4 android.os.strictmode
4 android.os
4 android.net.wifi.hotspot2.pps
4 android.se.omapi
3 android.provider
3 android.app.admin
3 android.net.wifi.hotspot2
3 android.service.autofill
3 android.bluetooth
3 android.graphics.fonts
3 android.speech
3 android.hardware.input
3 android.view.inputmethod
3 android.view
2 android
2 android.content
2 android.graphics
2 android.service.textservice
2 android.app
2 android.telecom
2 android.icu.text
2 java.lang.ref
1 android.service.notification
1 android.text
1 android.net
1 android.security.identity
1 android.media.tv
1 android.net.wifi.p2p
1 android.accessibilityservice
1 android.widget
1 android.icu.util
1 android.media.audiofx
1 android.os.storage
1 android.icu.number
1 java.math
<1 android.inputmethodservice
<1 android.view.autofill
<1 android.view.textclassifier
<1 android.media.session
<1 android.util
<1 android.telephony.mbms
<1 android.graphics.drawable
<1 android.bluetooth.le
<1 android.app.usage
<1 java.time
<1 android.content.res
<1 android.print
<1 java.lang
<1 android.view.accessibility
<1 android.app.assist
<1 android.speech.tts
<1 java.util.concurrent
<1 java.util
<1 android.text.style

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.graphics.RecordingCanvas
100 android.net.sip.SipException
100 android.renderscript.ScriptC
87 android.location.GnssCapabilities
85 android.renderscript.Allocation
82 android.renderscript.ScriptIntrinsicBlend
79 android.renderscript.FieldPacker
76 android.renderscript.Script
75 android.renderscript.Byte2
75 android.renderscript.Double2
75 android.renderscript.Element.Builder
75 android.renderscript.Float2
75 android.renderscript.Int2
75 android.renderscript.Long2
75 android.renderscript.Matrix3f
75 android.renderscript.ScriptIntrinsicColorMatrix
75 android.renderscript.Short2
73 android.widget.AnalogClock
72 android.renderscript.ScriptIntrinsicHistogram
70 android.renderscript.Byte3
70 android.renderscript.Double3
70 android.renderscript.Float3
70 android.renderscript.Int3
70 android.renderscript.Long3
70 android.renderscript.ScriptIntrinsic3DLUT
70 android.renderscript.Short3
66 android.provider.FontRequest
66 android.renderscript.Byte4
66 android.renderscript.Double4
66 android.renderscript.Float4
66 android.renderscript.Int4
66 android.renderscript.Long4
66 android.renderscript.ScriptIntrinsicResize
66 android.renderscript.Short4
66 android.telephony.cdma.CdmaCellLocation
66 android.view.textservice.TextServicesManager
64 android.renderscript.ScriptIntrinsicBlur
64 android.renderscript.ScriptIntrinsicConvolve3x3
64 android.renderscript.ScriptIntrinsicConvolve5x5
63 android.telephony.CarrierConfigManager.Ims
62 android.renderscript.ScriptIntrinsicLUT
62 android.telephony.gsm.GsmCellLocation
61 android.net.sip.SipProfile.Builder
61 android.renderscript.Script.FieldBase
60 android.renderscript.ScriptIntrinsicYuvToRGB
59 android.net.sip.SipAudioCall
58 android.net.sip.SipManager
57 android.renderscript.RenderScript
57 android.renderscript.Matrix2f
55 android.renderscript.AllocationAdapter
54 android.graphics.BitmapRegionDecoder
54 android.renderscript.Matrix4f
54 android.net.sip.SipSession.State
53 android.net.sip.SipErrorCode
53 android.telephony.PhoneStateListener
52 android.R.color
50 android.media.MediaDrm.MediaDrmStateException
50 android.net.ParseException
50 android.net.rtp.AudioCodec
50 android.net.rtp.AudioGroup
50 android.net.rtp.AudioStream
50 android.net.rtp.RtpStream
50 android.net.sip.SipAudioCall.Listener
50 android.net.sip.SipProfile
50 android.net.sip.SipRegistrationListener
50 android.net.sip.SipSession
50 android.net.sip.SipSession.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.provider.MediaStore.Audio.Playlists
50 android.provider.MediaStore.Audio.Playlists.Members
50 android.renderscript.Allocation.OnBufferAvailableListener
50 android.renderscript.BaseObj
50 android.renderscript.RSDriverException
50 android.renderscript.RSIllegalArgumentException
50 android.renderscript.RSInvalidStateException
50 android.renderscript.RSRuntimeException
50 android.renderscript.RenderScript.RSErrorHandler
50 android.renderscript.RenderScript.RSMessageHandler
50 android.renderscript.Sampler
50 android.renderscript.Sampler.Builder
50 android.renderscript.Script.LaunchOptions
50 android.renderscript.ScriptGroup.Binding
50 android.renderscript.ScriptGroup.Builder2
50 android.renderscript.ScriptGroup.Closure
50 android.renderscript.ScriptIntrinsicBLAS
50 android.renderscript.Type
50 android.renderscript.Type.Builder
50 android.telephony.CellLocation
50 android.telephony.ims.ImsRcsManager
50 android.telephony.ims.RegistrationManager.RegistrationCallback
49 android.renderscript.Element
44 android.media.MediaDrm.SessionException
40 android.media.MediaCodec.CryptoException
40 android.hardware.camera2.TotalCaptureResult
39 android.location.LocationProvider
37 android.app.job.JobParameters
37 android.provider.MediaStore.Audio.PlaylistsColumns
35 android.location.GnssMeasurementsEvent.Callback
35 android.net.wifi.p2p.WifiP2pWfdInfo
33 android.location.GnssNavigationMessage.Callback
33 android.net.wifi.rtt.RangingRequest
33 android.telecom.CallScreeningService.CallResponse
33 android.view.WindowManager
29 android.net.wifi.WifiInfo
29 android.view.SoundEffectConstants
28 android.location.GnssAntennaInfo.Builder
27 android.net.wifi.ScanResult.InformationElement
27 android.util.SizeF
26 android.net.wifi.aware.WifiAwareManager
26 android.widget.RemoteViews
25 android.security.identity.IdentityCredential
25 android.media.AudioPresentation
25 android.hardware.camera2.params.MandatoryStreamCombination.MandatoryStreamInformation
25 android.provider.MediaStore.Audio.Artists.Albums
25 android.renderscript.Allocation.MipmapControl
25 android.renderscript.Element.DataKind
25 android.renderscript.Element.DataType
25 android.renderscript.RenderScript.ContextType
25 android.renderscript.RenderScript.Priority
25 android.renderscript.Sampler.Value
25 android.renderscript.ScriptGroup
25 android.renderscript.Type.CubemapFace
22 android.media.AudioMetadata.Format
22 android.service.autofill.FillEventHistory.Event
21 android.net.wifi.hotspot2.pps.HomeSp
20 android.graphics.fonts.Font
20 android.hardware.camera2.params.InputConfiguration
20 android.location.LocationListener
20 android.media.MediaSyncEvent
20 android.media.tv.TvRecordingClient
20 android.net.ssl.SSLEngines
20 android.net.ssl.SSLSockets
20 android.net.wifi.aware.WifiAwareSession
20 android.net.wifi.rtt.RangingRequest.Builder
20 android.se.omapi.SEService
20 android.telephony.ims.feature.MmTelFeature.MmTelCapabilities
19 android.provider.ContactsContract.CommonDataKinds.Im
17 android.app.Notification.BigPictureStyle
17 android.provider.Telephony.ServiceStateTable
17 android.net.wifi.WifiNetworkSuggestion.Builder
16 android.accessibilityservice.AccessibilityGestureEvent
16 android.app.PictureInPictureParams.Builder
16 android.app.WallpaperColors
16 android.graphics.drawable.RippleDrawable
16 android.icu.number.FormattedNumber
16 android.media.MediaCodecInfo.AudioCapabilities
16 android.appwidget.AppWidgetHostView
16 android.hardware.display.DisplayManager
14 android.net.wifi.WifiNetworkSpecifier.Builder
14 android.net.wifi.ScanResult
14 android.location.LocationManager
14 android.companion.AssociationRequest
14 android.companion.CompanionDeviceManager
14 android.net.IpSecAlgorithm
14 android.net.wifi.WifiNetworkSpecifier
14 android.os.VibrationEffect.Composition
14 android.telephony.mbms.MbmsErrors.DownloadErrors
13 android.content.pm.PackageInstaller.SessionParams
13 android.content.ClipDescription
13 android.speech.SpeechRecognizer
12 android.net.wifi.WifiNetworkSuggestion
12 android.telephony.SubscriptionManager
12 android.icu.number.FormattedNumberRange
12 android.icu.text.RelativeDateTimeFormatter
12 android.net.NetworkRequest
11 android.provider.CallLog.Calls
11 android.telecom.ConnectionService
11 android.net.wifi.WifiManager
11 android.appwidget.AppWidgetProviderInfo
11 android.R.dimen
11 android.app.admin.DelegatedAdminReceiver
11 android.companion.AssociationRequest.Builder
11 android.content.pm.LauncherActivityInfo
11 android.graphics.RadialGradient
11 android.media.AudioPlaybackConfiguration
11 android.media.DrmInitData.SchemeInitData
11 android.net.ConnectivityManager.NetworkCallback
11 android.service.autofill.Dataset.Builder
11 android.telephony.PreciseDataConnectionState
11 android.view.SurfaceControlViewHost.SurfacePackage
11 android.view.textclassifier.TextSelection.Request.Builder
10 java.lang.Byte
10 android.app.NotificationChannel
10 android.view.WindowInsetsController
10 java.lang.Short
10 android.net.NetworkRequest.Builder
10 android.security.KeyChain
10 java.lang.ref.Reference
9 java.util.concurrent.CompletableFuture
9 android.security.keystore.KeyProperties
9 android.content.pm.ApplicationInfo
9 android.telephony.TelephonyDisplayInfo
9 android.app.PendingIntent
9 android.hardware.camera2.params.OutputConfiguration
9 android.media.tv.TvInputInfo.Builder
9 android.service.notification.NotificationListenerService.Ranking
9 android.view.textclassifier.TextSelection.Builder
9 android.widget.EdgeEffect
8 android.telephony.TelephonyManager
8 java.time.Duration
8 android.app.Notification.BubbleMetadata
8 android.media.tv.TvInputService.RecordingSession
8 android.telephony.CarrierConfigManager.Apn
8 android.view.inputmethod.InputMethodInfo
7 android.app.usage.StorageStats
7 android.icu.text.NumberFormat.Field
7 android.media.MediaCodecInfo.EncoderCapabilities
7 android.net.Proxy
7 android.net.wifi.EasyConnectStatusCallback
7 android.net.wifi.WifiInfo.Builder
7 android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder
7 android.net.wifi.hotspot2.PasspointConfiguration
7 android.telephony.CellSignalStrengthNr
7 android.view.WindowInsets.Builder
7 android.media.AudioDeviceInfo
7 android.util.SparseArray
7 android.view.Surface
7 android.provider.MediaStore
7 android.media.Ringtone
7 android.security.identity.IdentityCredentialStore
7 android.security.keystore.KeyInfo
6 android.telephony.CarrierConfigManager
6 android.app.admin.DevicePolicyManager
6 android.net.wifi.WifiEnterpriseConfig
6 android.app.Notification
6 android.bluetooth.le.AdvertiseData.Builder
6 android.hardware.biometrics.BiometricManager
6 android.hardware.input.InputManager
6 android.inputmethodservice.AbstractInputMethodService
6 android.location.GnssStatus
6 android.media.AudioRecord.Builder
6 android.media.CamcorderProfile
6 android.net.wifi.WifiConfiguration.PairwiseCipher
6 android.os.Build
6 android.service.autofill.InlinePresentation
6 android.telecom.CallScreeningService.CallResponse.Builder
6 android.telecom.Conference
6 android.view.Display.Mode
6 android.view.FrameMetrics
6 android.view.inputmethod.InlineSuggestionsRequest.Builder
6 android.media.AudioManager
6 android.icu.text.DateIntervalFormat
6 android.view.textservice.SuggestionsInfo
6 android.service.notification.NotificationListenerService
6 android.print.PrintAttributes.MediaSize
6 android.os.StrictMode.VmPolicy.Builder
5 android.accessibilityservice.AccessibilityService
5 android.bluetooth.le.AdvertiseData
5 android.media.MediaMetadata.Builder
5 android.net.wifi.WifiConfiguration.GroupCipher
5 android.os.Vibrator
5 android.util.AtomicFile
5 android.telecom.TelecomManager
5 android.media.MediaRecorder
5 android.telecom.DisconnectCause
5 android.hardware.camera2.CameraCharacteristics
5 android.icu.text.DecimalFormat
5 android.media.AudioFormat
5 android.media.MediaCodec.CryptoInfo
5 android.net.wifi.aware.Characteristics
5 android.security.keystore.KeyGenParameterSpec
5 android.security.keystore.KeyGenParameterSpec.Builder
5 android.service.autofill.AutofillService
5 android.service.textservice.SpellCheckerService.Session
5 android.speech.RecognitionService.Callback
5 android.view.inputmethod.InlineSuggestionsRequest
5 android.view.textclassifier.TextSelection.Request
5 android.Manifest.permission
5 android.telecom.Call
5 android.inputmethodservice.InputMethodService.InputMethodSessionImpl
5 android.media.session.MediaSessionManager
5 android.provider.MediaStore.Files.FileColumns
5 android.security.keystore.KeyProtection.Builder
4 android.media.MediaFormat
4 android.content.pm.PackageManager
4 android.view.InputDevice
4 android.content.pm.LauncherApps.Callback
4 android.os.Build.VERSION
4 android.view.accessibility.AccessibilityManager
4 android.view.textclassifier.TextSelection
4 android.view.Display
4 android.view.inputmethod.InputConnection
4 android.util.Patterns
4 android.telephony.PhoneNumberUtils
4 android.app.Notification.Action.Builder
4 android.app.Notification.BubbleMetadata.Builder
4 android.media.MediaCodec
4 android.net.wifi.aware.DiscoverySessionCallback
4 android.service.controls.templates.ControlTemplate
4 android.view.SurfaceView
4 android.content.Context
4 android.app.job.JobInfo.Builder
4 android.net.NetworkCapabilities
4 android.bluetooth.BluetoothHeadset
4 android.view.inputmethod.InputMethodSession
4 android.media.session.MediaSession
4 android.app.NotificationManager
4 android.Manifest.permission_group
4 android.graphics.drawable.ColorStateListDrawable
4 android.graphics.fonts.Font.Builder
4 android.os.PatternMatcher
4 android.telephony.CellSignalStrengthLte
4 java.util.Set
3 android.telephony.AccessNetworkConstants.NgranBands
3 java.math.BigInteger
3 android.app.AlarmManager
3 android.bluetooth.BluetoothGattCallback
3 android.content.ClipData.Item
3 android.content.SyncRequest.Builder
3 android.content.pm.PackageInstaller.SessionInfo
3 android.content.res.ColorStateList
3 android.hardware.camera2.CameraManager
3 android.media.MediaRouter2
3 android.service.voice.VoiceInteractionService
3 android.telecom.PhoneAccount
3 android.view.DisplayCutout
3 android.telephony.DataFailCause
3 java.lang.StrictMath
3 android.content.pm.ComponentInfo
3 android.os.storage.StorageVolume
3 android.view.SurfaceControl.Transaction
3 android.telephony.SmsManager
3 android.provider.ContactsContract.DataColumns
3 android.telecom.Call.Details
3 android.service.autofill.FillResponse.Builder
3 android.telephony.ims.ImsMmTelManager
3 java.lang.Math
3 android.view.inputmethod.InputMethodManager
3 android.graphics.ColorSpace
3 android.view.WindowInsets
3 android.view.autofill.AutofillManager
3 android.media.tv.TvContract.Channels
3 android.content.pm.PackageInstaller.Session
3 android.content.pm.ShortcutInfo.Builder
3 android.net.wifi.rtt.RangingResult
3 android.telephony.SignalStrength
2 android.media.MediaMetadataRetriever
2 android.app.UiAutomation
2 android.telephony.MbmsDownloadSession
2 android.app.admin.DeviceAdminReceiver
2 android.widget.CompoundButton
2 android.accessibilityservice.AccessibilityServiceInfo
2 android.icu.util.MeasureUnit
2 android.media.MediaExtractor
2 android.provider.MediaStore.Audio.AudioColumns
2 android.provider.Settings
2 android.security.keystore.KeyProtection
2 android.content.pm.PackageInfo
2 android.graphics.ImageDecoder
2 android.location.Location
2 android.os.PowerManager
2 android.graphics.Rect
2 android.net.TrafficStats
2 android.app.UiModeManager
2 android.icu.text.PluralRules
2 android.net.wifi.WifiConfiguration
2 android.widget.Switch
2 android.icu.text.Normalizer2
2 android.media.MediaDrm
2 android.telecom.Connection
2 android.bluetooth.BluetoothDevice
2 android.media.session.PlaybackState
2 android.hardware.camera2.CaptureResult
2 android.hardware.camera2.CameraDevice
2 android.media.MediaParser
2 android.text.style.SuggestionSpan
2 android.os.UserManager
2 android.app.AppOpsManager
2 android.graphics.ImageFormat
2 java.util.List
2 android.hardware.camera2.CameraMetadata
2 android.icu.text.DateFormatSymbols
1 android.telephony.data.ApnSetting
1 java.time.LocalTime
1 android.R.attr
1 android.app.Notification.Action
1 android.media.AudioTrack
1 android.media.tv.TvInputInfo
1 android.graphics.Matrix
1 android.media.AudioRecord
1 android.speech.tts.TextToSpeech
1 android.content.pm.LauncherApps
1 android.os.storage.StorageManager
1 android.telecom.RemoteConnection
1 android.view.View
1 android.graphics.drawable.BitmapDrawable
1 android.content.res.TypedArray
1 android.os.Build.VERSION_CODES
1 android.hardware.camera2.CaptureRequest
1 android.speech.RecognizerIntent
1 android.graphics.Bitmap
1 android.view.Window
1 android.content.pm.PermissionInfo
1 android.media.MediaCas
1 android.view.textclassifier.TextClassifier
1 android.content.pm.PackageInstaller
1 android.graphics.Canvas
1 android.net.ConnectivityManager
1 android.view.WindowManager.LayoutParams
1 android.app.admin.SecurityLog
1 java.util.Map
1 android.media.MediaMetadata
1 android.os.Environment
1 android.media.audiofx.AudioEffect
1 android.app.job.JobInfo
1 android.content.pm.ActivityInfo
1 android.view.ViewConfiguration
1 android.content.Intent
1 android.media.ExifInterface
1 android.view.inputmethod.EditorInfo
1 android.appwidget.AppWidgetManager
<1 android.content.ContentProvider
<1 android.system.Os
<1 android.system.OsConstants
<1 android.view.ViewStructure
<1 android.content.res.Configuration
<1 java.lang.Class
<1 android.app.assist.AssistStructure.ViewNode
<1 android.bluetooth.BluetoothAdapter
<1 android.graphics.RenderNode
<1 android.app.Notification.Builder
<1 android.graphics.drawable.Drawable
<1 android.media.MediaCodecInfo.CodecCapabilities
<1 java.math.BigDecimal
<1 android.app.Activity
<1 android.telephony.ims.ImsReasonInfo
<1 android.content.ContentResolver
<1 android.icu.util.ULocale
<1 android.provider.Settings.System
<1 android.view.ViewGroup
<1 android.view.accessibility.AccessibilityNodeInfo
<1 android.view.KeyEvent
<1 android.renderscript.Script.Builder
<1 android.renderscript.Script.FieldID
<1 android.renderscript.Script.InvokeID
<1 android.renderscript.Script.KernelID
<1 android.renderscript.ScriptGroup.Future
<1 android.renderscript.ScriptGroup.Input
<1 android.renderscript.ScriptIntrinsic

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