API Change Statistics

The overall difference between API Levels 29 and r-dp2 is approximately 4.96%.


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 13 75 0 88
Classes and Interfaces 123 356 0 479
Constructors 35 48 0 83
Methods 570 296 0 866
Fields 745 125 8 878
Total 1486 900 8 2394

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
52 android.drm
50 android.service.chooser
24 android.hardware.biometrics
19 android.os.storage
18 android.location
16 android.telephony.euicc
15 android.net.wifi
13 android.view.contentcapture
13 android.telephony
11 android.view.inputmethod
11 android.accessibilityservice
10 android.net
9 android.media
8 android.app.admin
7 android.hardware.camera2
7 android.net.wifi.hotspot2
6 android.text
6 android.view
5 android.view.accessibility
5 android.security
4 android.service.voice
4 android.app
4 android.service.quicksettings
4 android.net.wifi.p2p
4 android.os
3 android.media.tv
3 android.accounts
3 android.hardware.input
3 java.util.concurrent
3 android.hardware.fingerprint
3 android.net.rtp
3 android.hardware.camera2.params
3 android.content.pm
2 android.service.autofill
2 android.system
2 android.companion
2 android.widget
2 android.util
1 android.se.omapi
1 android.service.notification
1 android.telecom
1 android.net.wifi.aware
1 android.security.keystore
1 java.util
1 android.nfc.cardemulation
1 android.provider
1 android.content
1 android.service.wallpaper
<1 android.appwidget
<1 android.gesture
<1 android.view.textclassifier
<1 android
<1 android.icu.text
<1 android.telephony.data
<1 android.media.session
<1 android.database.sqlite
<1 android.nfc
<1 android.graphics
<1 android.icu.util
<1 android.icu.lang
<1 android.net.sip
<1 android.text.style
<1 java.time.chrono
<1 android.app.usage
<1 android.text.format
<1 android.app.assist
<1 android.net.wifi.rtt
<1 android.content.res
<1 android.graphics.drawable
<1 android.inputmethodservice
<1 android.speech.tts
<1 android.view.animation
<1 android.media.audiofx
<1 android.bluetooth
<1 android.hardware

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.telephony.AccessNetworkConstants
100 java.util.Set
92 android.widget.TabHost.TabSpec
83 android.text.LoginFilter.PasswordFilterGMail
83 android.text.LoginFilter.UsernameFilterGMail
83 android.text.LoginFilter.UsernameFilterGeneric
77 android.drm.DrmRights
75 android.media.DrmInitData
73 android.widget.TabWidget
73 android.drm.DrmManagerClient
70 android.util.TimingLogger
66 android.os.AsyncTask
65 android.widget.TabHost
62 android.drm.DrmInfoEvent
61 android.drm.DrmInfo
60 android.drm.DrmErrorEvent
60 android.drm.DrmEvent
50 android.accounts.AccountAuthenticatorActivity
50 android.app.AliasActivity
50 android.app.ExpandableListActivity
50 android.app.IntentService
50 android.app.LauncherActivity
50 android.app.LauncherActivity.IconResizer
50 android.app.LauncherActivity.ListItem
50 android.app.ListActivity
50 android.drm.DrmConvertedStatus
50 android.drm.DrmInfoRequest
50 android.drm.DrmInfoStatus
50 android.drm.DrmManagerClient.OnErrorListener
50 android.drm.DrmManagerClient.OnEventListener
50 android.drm.DrmManagerClient.OnInfoListener
50 android.drm.DrmStore
50 android.drm.DrmStore.ConstraintsColumns
50 android.drm.DrmUtils
50 android.drm.DrmUtils.ExtendedMetadataParser
50 android.drm.ProcessedData
50 android.service.chooser.ChooserTarget
50 android.service.chooser.ChooserTargetService
50 android.telephony.euicc.EuiccManager
50 android.text.AlteredCharSequence
50 android.text.LoginFilter
50 android.view.View.OnSystemUiVisibilityChangeListener
50 android.view.WindowManager
50 android.widget.TabHost.OnTabChangeListener
50 android.widget.TabHost.TabContentFactory
45 android.media.MediaCas
44 android.drm.DrmStore.Action
43 android.drm.DrmSupportInfo
40 android.drm.DrmStore.DrmObjectType
40 android.drm.DrmStore.Playback
40 android.drm.DrmStore.RightsStatus
40 android.net.wifi.WifiManager.LocalOnlyHotspotReservation
39 android.view.WindowInsets
38 android.content.pm.CrossProfileApps
38 android.view.WindowInsets.Builder
37 android.location.LocationListener
36 android.media.tv.TvInputService
33 android.hardware.biometrics.BiometricManager
33 android.hardware.biometrics.BiometricPrompt.AuthenticationResult
33 android.media.DrmInitData.SchemeInitData
33 android.media.MediaCas.EventListener
33 android.os.FileUtils
33 android.os.RemoteException
33 android.provider.MediaStore.MediaColumns
33 java.util.List
30 android.telephony.SmsManager
28 android.provider.MediaStore.Audio.AudioColumns
28 android.view.contentcapture.ContentCaptureManager
28 android.content.ContentProviderOperation.Builder
27 android.accessibilityservice.AccessibilityService
27 android.service.voice.AlwaysOnHotwordDetector
26 android.hardware.camera2.CameraDevice
25 android.companion.WifiDeviceFilter.Builder
25 android.graphics.Canvas.EdgeType
25 android.os.AsyncTask.Status
25 android.provider.MediaStore.Audio
25 android.provider.MediaStore.Images.ImageColumns
25 android.provider.MediaStore.Video.VideoColumns
25 android.system.ErrnoException
24 android.net.wifi.p2p.WifiP2pConfig
23 android.location.LocationManager
21 android.app.Notification.BubbleMetadata
21 android.app.AppOpsManager
20 java.util.Map
20 android.app.Notification.BubbleMetadata.Builder
20 android.content.ContentProviderResult
20 android.hardware.camera2.CameraManager.AvailabilityCallback
20 android.net.wifi.aware.Characteristics
20 android.security.AttestedKeyPair
19 android.telephony.CarrierConfigManager
18 android.hardware.biometrics.BiometricPrompt
18 android.net.wifi.ScanResult
18 android.os.Vibrator
17 android.net.NetworkRequest.Builder
17 android.net.wifi.WifiConfiguration
17 android.net.wifi.WifiNetworkSuggestion.Builder
17 android.service.autofill.SaveInfo
17 android.media.tv.TvInputManager
17 android.media.tv.TvTrackInfo.Builder
17 java.util.Objects
17 android.telephony.PhoneStateListener
16 android.text.style.ReplacementSpan
16 android.view.SurfaceControl.Transaction
16 android.telephony.CellInfo
15 android.provider.MediaStore.Files.FileColumns
15 android.content.pm.ShortcutManager
15 android.view.HapticFeedbackConstants
15 android.provider.MediaStore
14 android.telecom.Connection
14 android.accessibilityservice.GestureDescription.Builder
14 android.app.UiModeManager
14 android.hardware.biometrics.BiometricPrompt.CryptoObject
14 android.hardware.fingerprint.FingerprintManager.CryptoObject
14 android.net.rtp.AudioGroup
14 android.net.wifi.hotspot2.PasspointConfiguration
14 android.service.autofill.Dataset.Builder
14 android.util.TimeUtils
14 android.view.textclassifier.TextClassificationSessionId
13 android.net.NetworkCapabilities
13 android.net.ProxyInfo
13 android.telephony.AccessNetworkConstants.UtranBand
12 android.provider.MediaStore.Audio.ArtistColumns
12 android.provider.Telephony.Sms.Intents
12 android.net.wifi.WifiManager
12 android.media.tv.TvTrackInfo
12 android.media.CamcorderProfile
11 android.database.sqlite.SQLiteQueryBuilder
11 android.hardware.biometrics.BiometricPrompt.Builder
11 android.location.GnssClock
11 android.accessibilityservice.GestureDescription
11 android.gesture.GestureLibraries
11 android.net.wifi.WifiConfiguration.Protocol
11 android.net.wifi.p2p.WifiP2pGroup
11 android.provider.MediaStore.Downloads
11 android.telephony.CellIdentityLte
11 android.telephony.CellIdentityNr
11 android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo
10 android.net.wifi.WifiEnterpriseConfig
10 android.provider.Settings
10 android.net.LinkProperties
10 android.service.autofill.FillResponse.Builder
10 android.location.GnssNavigationMessage
10 android.content.ContentProviderOperation
10 android.content.pm.LauncherApps.Callback
10 android.media.AudioTrack.Builder
10 android.provider.ContactsContract.RawContacts
10 android.telephony.CellIdentityTdscdma
10 android.view.accessibility.AccessibilityNodeInfo.CollectionInfo
9 android.service.notification.ZenPolicy
9 android.provider.MediaStore.Audio.AlbumColumns
9 android.widget.Toast
9 android.accessibilityservice.AccessibilityService.SoftKeyboardController
9 android.media.MediaCas.Session
9 android.media.VolumeProvider
9 android.net.NetworkRequest
9 android.net.wifi.WifiConfiguration.AuthAlgorithm
9 android.net.wifi.aware.WifiAwareNetworkSpecifier.Builder
9 android.os.storage.StorageManager
9 android.provider.Telephony.Mms.Addr
9 android.se.omapi.SEService
9 android.view.SurfaceView
9 android.view.textclassifier.TextLinks.Request.Builder
8 android.telephony.TelephonyManager
8 android.app.NotificationManager.Policy
8 android.view.Surface
8 android.hardware.camera2.CameraManager
8 android.os.PersistableBundle
8 android.telecom.ConnectionRequest
8 android.telephony.CellIdentityWcdma
8 android.view.DisplayCutout
8 android.location.GnssMeasurement
8 android.telecom.ConnectionService
7 android.hardware.input.InputManager
7 android.media.AudioRecord.Builder
7 android.net.wifi.WifiConfiguration.PairwiseCipher
7 android.os.storage.StorageVolume
7 android.provider.MediaStore.Video.Media
7 android.telephony.AccessNetworkConstants.AccessNetworkType
7 android.telephony.CellSignalStrengthWcdma
7 android.media.AudioTrack
7 android.content.ContentProvider
7 android.app.NotificationManager
7 android.telecom.DisconnectCause
7 android.view.accessibility.AccessibilityWindowInfo
7 android.net.MacAddress
7 android.view.contentcapture.ContentCaptureSession
6 android.net.wifi.WifiInfo
6 android.telecom.TelecomManager
6 android.app.NotificationChannel
6 android.R.id
6 android.icu.util.JapaneseCalendar
6 android.location.GpsStatus
6 android.media.tv.TvRecordingClient
6 android.net.wifi.WifiConfiguration.GroupCipher
6 android.nfc.cardemulation.CardEmulation
6 android.telephony.SignalStrength
6 android.telephony.SubscriptionPlan.Builder
5 android.net.NetworkInfo
5 android.telephony.CellSignalStrengthGsm
5 android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
5 android.view.accessibility.AccessibilityNodeInfo.RangeInfo
5 android.view.inputmethod.EditorInfo
5 android.view.textclassifier.TextLinks.Request
5 java.time.chrono.JapaneseEra
5 android.view.WindowManager.LayoutParams
5 android.telecom.Call
5 android.nfc.NfcAdapter
5 android.provider.ContactsContract.RawContactsColumns
5 android.service.quicksettings.Tile
5 android.content.ContentProviderClient
5 android.graphics.Outline
5 android.os.Handler
5 android.security.keystore.KeyProtection.Builder
5 android.graphics.drawable.Icon
5 android.hardware.camera2.CameraCaptureSession
5 android.net.wifi.WifiEnterpriseConfig.Eap
5 android.os.Build.VERSION
5 android.provider.Settings.Global
5 android.service.autofill.FillRequest
5 android.content.ContentResolver
5 android.location.GnssStatus
4 android.accessibilityservice.AccessibilityServiceInfo
4 android.app.admin.DevicePolicyManager
4 android.view.Display
4 android.app.Notification.MessagingStyle.Message
4 android.media.session.MediaController.PlaybackInfo
4 android.media.tv.TvInputService.RecordingSession
4 android.net.DhcpInfo
4 android.net.wifi.p2p.WifiP2pDevice
4 android.provider.MediaStore.Audio.Media
4 android.telephony.CellSignalStrength
4 android.content.pm.ServiceInfo
4 android.content.pm.LauncherApps.ShortcutQuery
4 android.os.VibrationEffect
4 android.service.autofill.SaveInfo.Builder
4 android.telephony.SubscriptionManager
4 android.telecom.Conference
4 android.graphics.Canvas
4 android.media.AudioDeviceInfo
4 android.content.pm.PackageInstaller.SessionInfo
4 android.media.MediaMetadataRetriever
4 android.provider.MediaStore.Images.Media
4 android.telephony.CellIdentityGsm
3 android.media.tv.TvContract.Programs
3 android.os.Looper
3 android.security.keystore.KeyGenParameterSpec.Builder
3 android.service.autofill.FillEventHistory.Event
3 android.view.textclassifier.TextLinks
3 android.widget.TextClock
3 android.R.string
3 android.app.ActivityManager.TaskDescription
3 android.appwidget.AppWidgetHost
3 android.icu.util.VersionInfo
3 android.provider.Telephony.Mms.Part
3 android.content.Context
3 android.app.ActivityManager
3 android.media.MediaFormat
3 android.icu.lang.UCharacter.IndicPositionalCategory
3 android.net.sip.SipProfile
3 android.media.MediaCodec
3 android.Manifest.permission
3 android.graphics.PointF
3 android.telephony.ServiceState
2 android.app.Activity
2 android.app.usage.UsageStatsManager
2 android.os.IBinder
2 android.provider.MediaStore.Video.Thumbnails
2 android.security.KeyChain
2 android.security.keystore.KeyProtection
2 android.service.quicksettings.TileService
2 android.telephony.SubscriptionPlan
2 android.content.pm.PackageInstaller
2 android.icu.lang.UCharacter.UnicodeBlock
2 android.security.keystore.KeyProperties
2 android.view.accessibility.AccessibilityEvent
2 android.os.UserManager
2 android.content.ClipDescription
2 android.os.PowerManager
2 android.util.SparseArray
2 android.content.pm.PackageManager
2 android.net.TrafficStats
2 android.telecom.Call.Details
2 android.security.keystore.KeyInfo
2 android.hardware.camera2.CameraMetadata
2 android.view.View
2 android.media.audiofx.AudioEffect
2 android.view.accessibility.AccessibilityNodeInfo
2 android.view.ViewConfiguration
2 android.hardware.camera2.CaptureRequest
2 android.media.session.MediaController
2 android.provider.MediaStore.Images.Thumbnails
2 android.service.notification.ZenPolicy.Builder
2 android.media.ExifInterface
2 android.service.notification.StatusBarNotification
2 android.content.pm.ResolveInfo
2 android.util.ArraySet
2 android.hardware.camera2.CameraCharacteristics
2 android.provider.DocumentsContract.Document
2 android.service.wallpaper.WallpaperService.Engine
1 android.view.accessibility.AccessibilityRecord
1 android.icu.lang.UScript
1 android.security.keystore.KeyGenParameterSpec
1 android.content.res.Resources
1 android.view.animation.Animation
1 android.hardware.camera2.CaptureResult
1 android.media.MediaRecorder
1 android.bluetooth.BluetoothDevice
1 android.icu.util.Currency
1 android.os.Build.VERSION_CODES
1 android.app.UiAutomation
1 android.provider.CallLog.Calls
1 android.content.pm.ShortcutInfo
1 android.content.ContentValues
1 android.icu.util.MeasureUnit
1 android.net.wifi.rtt.ResponderLocation
1 android.app.admin.SecurityLog
1 android.media.tv.TvContract.Channels
1 android.os.Environment
1 android.telecom.PhoneAccount
1 android.view.textclassifier.TextClassifierEvent
1 android.media.tv.TvContract.RecordedPrograms
1 android.hardware.Sensor
1 android.database.sqlite.SQLiteDatabase
1 android.view.Window
1 android.inputmethodservice.InputMethodService
1 android.os.Process
1 android.telephony.SmsMessage
1 android.icu.text.DateTimePatternGenerator
1 android.graphics.Path
1 android.appwidget.AppWidgetManager
1 android.telephony.data.ApnSetting
<1 android.system.Os
<1 android.media.AudioRecord
<1 android.view.ViewStructure
<1 android.speech.tts.TextToSpeech
<1 android.os.Parcel
<1 android.text.format.DateUtils
<1 android.widget.RemoteViews
<1 android.app.assist.AssistStructure.ViewNode
<1 android.app.Notification
<1 android.app.Instrumentation
<1 android.media.AudioFormat
<1 android.app.Notification.Builder
<1 android.media.MediaCodecInfo.CodecCapabilities
<1 android.media.tv.TvContract.PreviewPrograms
<1 android.media.MediaDrm
<1 android.media.AudioManager
<1 android.media.tv.TvContract.WatchNextPrograms
<1 android.content.pm.ActivityInfo
<1 android.content.Intent
<1 android.R.attr
<1 android.content.res.Configuration
<1 android.system.OsConstants
<1 android.media.MediaCodecInfo.CodecProfileLevel
<1 android.widget.TextView
<1 android.R.style

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