API Change Statistics

The overall difference between API Levels 29 and rdp1 is approximately 3.21%.


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 9 68 0 77
Classes and Interfaces 99 281 0 380
Constructors 34 27 0 61
Methods 458 177 0 635
Fields 584 30 8 622
Total 1184 583 8 1775

Changed Packages, Sorted by Percentage Difference

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

* 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
73 android.widget.TabWidget
70 android.util.TimingLogger
66 android.os.AsyncTask
65 android.widget.TabHost
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.text.AlteredCharSequence
50 android.text.LoginFilter
50 android.widget.TabHost.OnTabChangeListener
50 android.widget.TabHost.TabContentFactory
45 android.media.MediaCas
40 android.net.wifi.WifiManager.LocalOnlyHotspotReservation
38 android.content.pm.CrossProfileApps
37 android.location.LocationListener
36 android.media.tv.TvInputService
33 android.hardware.biometrics.BiometricPrompt.AuthenticationResult
33 android.media.MediaCas.EventListener
33 android.os.FileUtils
33 android.os.RemoteException
33 java.util.List
32 android.provider.MediaStore.MediaColumns
30 android.telephony.SmsManager
28 android.provider.MediaStore.Audio.AudioColumns
28 android.content.ContentProviderOperation.Builder
27 android.hardware.biometrics.BiometricManager
26 android.hardware.camera2.CameraDevice
25 android.companion.WifiDeviceFilter.Builder
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.service.voice.AlwaysOnHotwordDetector
24 android.net.wifi.p2p.WifiP2pConfig
21 android.app.Notification.BubbleMetadata
21 android.location.LocationManager
20 android.app.AppOpsManager
20 java.util.Map
20 android.app.Notification.BubbleMetadata.Builder
20 android.content.ContentProviderResult
20 android.net.wifi.aware.Characteristics
20 android.security.AttestedKeyPair
18 android.net.wifi.ScanResult
17 android.net.NetworkRequest.Builder
17 android.net.wifi.WifiConfiguration
17 android.net.wifi.WifiNetworkSuggestion.Builder
17 android.service.autofill.SaveInfo
17 android.telephony.CarrierConfigManager
17 android.media.tv.TvInputManager
17 java.util.Objects
16 android.hardware.biometrics.BiometricPrompt
16 android.text.style.ReplacementSpan
16 android.telephony.CellInfo
15 android.provider.MediaStore.Files.FileColumns
14 android.telephony.PhoneStateListener
14 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.media.tv.TvTrackInfo.Builder
14 android.net.rtp.AudioGroup
14 android.service.autofill.Dataset.Builder
14 android.util.TimeUtils
14 android.view.WindowInsets.Builder
14 android.view.textclassifier.TextClassificationSessionId
13 android.net.ProxyInfo
13 android.telephony.AccessNetworkConstants.UtranBand
13 android.view.SurfaceControl.Transaction
12 android.provider.MediaStore.Audio.ArtistColumns
12 android.provider.Telephony.Sms.Intents
12 android.view.WindowInsets
12 android.media.CamcorderProfile
11 android.database.sqlite.SQLiteQueryBuilder
11 android.net.NetworkCapabilities
11 android.hardware.biometrics.BiometricPrompt.Builder
11 android.net.sip.SipManager
11 android.net.wifi.WifiManager
11 android.accessibilityservice.GestureDescription
11 android.gesture.GestureLibraries
11 android.net.wifi.WifiConfiguration.Protocol
11 android.net.wifi.p2p.WifiP2pGroup
11 android.provider.ContactsContract.RawContactsColumns
11 android.provider.MediaStore.Downloads
11 android.telephony.CellIdentityNr
11 android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo
10 android.net.wifi.WifiEnterpriseConfig
10 android.net.LinkProperties
10 android.provider.Settings
10 android.content.ContentProviderOperation
10 android.content.pm.LauncherApps.Callback
10 android.media.AudioTrack.Builder
10 android.media.tv.TvTrackInfo
10 android.net.wifi.hotspot2.PasspointConfiguration
10 android.provider.ContactsContract.RawContacts
10 android.telephony.CellIdentityTdscdma
10 android.view.accessibility.AccessibilityNodeInfo.CollectionInfo
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.provider.Telephony.Mms.Addr
9 android.se.omapi.SEService
9 android.view.textclassifier.TextLinks.Request.Builder
8 android.telephony.TelephonyManager
8 android.os.PersistableBundle
8 android.telephony.CellIdentityWcdma
8 android.view.DisplayCutout
8 android.view.HapticFeedbackConstants
7 android.accessibilityservice.AccessibilityService
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.CellIdentityLte
7 android.telephony.CellSignalStrengthWcdma
7 android.content.ContentProvider
7 android.app.NotificationManager
7 android.os.storage.StorageManager
7 android.view.accessibility.AccessibilityWindowInfo
7 android.net.MacAddress
7 android.view.contentcapture.ContentCaptureSession
6 android.net.wifi.WifiInfo
6 android.app.NotificationChannel
6 android.icu.util.JapaneseCalendar
6 android.location.GpsStatus
6 android.net.wifi.WifiConfiguration.GroupCipher
6 android.nfc.cardemulation.CardEmulation
6 android.telephony.SignalStrength
6 android.telephony.SubscriptionPlan.Builder
6 android.telecom.TelecomManager
6 android.R.id
6 android.net.sip.SipProfile
5 android.net.NetworkInfo
5 android.telephony.CellSignalStrengthGsm
5 android.view.accessibility.AccessibilityNodeInfo.RangeInfo
5 android.view.textclassifier.TextLinks.Request
5 android.nfc.NfcAdapter
5 android.telephony.euicc.EuiccManager
5 android.content.ContentProviderClient
5 android.os.Handler
5 android.graphics.drawable.Icon
5 android.hardware.camera2.CameraCaptureSession
5 android.net.wifi.WifiEnterpriseConfig.Eap
5 android.service.autofill.FillRequest
5 android.content.ContentResolver
5 android.location.GnssStatus
4 android.app.Notification.MessagingStyle.Message
4 android.media.session.MediaController.PlaybackInfo
4 android.net.DhcpInfo
4 android.net.wifi.p2p.WifiP2pDevice
4 android.provider.MediaStore.Audio.Media
4 android.telephony.CellSignalStrength
4 android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
4 android.content.pm.ServiceInfo
4 android.net.sip.SipAudioCall
4 android.service.autofill.SaveInfo.Builder
4 android.content.res.Resources
4 android.telephony.SubscriptionManager
4 android.media.MediaMetadataRetriever
4 android.provider.MediaStore.Images.Media
4 android.telephony.CellIdentityGsm
3 android.os.Looper
3 android.service.autofill.FillEventHistory.Event
3 android.service.autofill.FillResponse.Builder
3 android.view.textclassifier.TextLinks
3 android.widget.TextClock
3 android.app.admin.DevicePolicyManager
3 android.R.string
3 android.appwidget.AppWidgetHost
3 android.icu.util.VersionInfo
3 android.provider.Telephony.Mms.Part
3 android.app.ActivityManager
3 android.icu.lang.UCharacter.IndicPositionalCategory
3 android.media.MediaCodec
3 android.graphics.PointF
3 android.telephony.ServiceState
2 android.accessibilityservice.AccessibilityServiceInfo
2 android.telecom.Call
2 android.app.usage.UsageStatsManager
2 android.os.IBinder
2 android.provider.MediaStore.Video.Thumbnails
2 android.security.KeyChain
2 android.service.quicksettings.TileService
2 android.telephony.SubscriptionPlan
2 android.content.pm.PackageInstaller
2 android.icu.lang.UCharacter.UnicodeBlock
2 android.view.accessibility.AccessibilityEvent
2 android.os.UserManager
2 android.app.Activity
2 android.content.ClipDescription
2 android.content.pm.PackageInstaller.SessionInfo
2 android.util.SparseArray
2 android.media.AudioTrack
2 android.net.TrafficStats
2 android.telecom.Call.Details
2 android.content.Context
2 android.media.MediaFormat
2 android.media.session.MediaController
2 android.provider.MediaStore.Images.Thumbnails
2 android.media.ExifInterface
2 android.service.notification.StatusBarNotification
2 android.util.ArraySet
2 android.provider.DocumentsContract.Document
1 android.telecom.DisconnectCause
1 android.view.accessibility.AccessibilityRecord
1 android.icu.lang.UScript
1 android.view.accessibility.AccessibilityNodeInfo
1 android.Manifest.permission
1 android.location.GnssMeasurement
1 android.view.animation.Animation
1 android.media.MediaRecorder
1 android.content.pm.PackageManager
1 android.bluetooth.BluetoothDevice
1 android.icu.util.Currency
1 android.os.Build.VERSION_CODES
1 android.hardware.camera2.CaptureRequest
1 android.app.UiAutomation
1 android.provider.CallLog.Calls
1 android.drm.DrmManagerClient
1 android.content.ContentValues
1 android.icu.util.MeasureUnit
1 android.media.AudioDeviceInfo
1 android.hardware.camera2.CameraMetadata
1 android.os.PowerManager
1 android.net.wifi.rtt.ResponderLocation
1 android.app.admin.SecurityLog
1 android.os.Environment
1 android.view.textclassifier.TextClassifierEvent
1 android.database.sqlite.SQLiteDatabase
1 android.view.Display
1 android.view.View
1 android.inputmethodservice.InputMethodService
1 android.os.Process
1 android.telephony.SmsMessage
1 android.hardware.camera2.CaptureResult
1 android.icu.text.DateTimePatternGenerator
1 android.telecom.Conference
1 android.view.WindowManager.LayoutParams
1 android.hardware.camera2.CameraCharacteristics
1 android.telephony.data.ApnSetting
<1 android.system.Os
<1 android.view.Window
<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.MediaDrm
<1 android.media.AudioManager
<1 android.content.pm.ActivityInfo
<1 android.R.attr
<1 android.content.Intent
<1 android.system.OsConstants
<1 android.media.MediaCodecInfo.CodecProfileLevel
<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%.