API Change Statistics

The overall difference between API Levels 25 and 26 is approximately 7.13%.


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 18 82 0 100
Classes and Interfaces 145 349 4 498
Constructors 23 16 0 39
Methods 795 139 18 952
Fields 572 69 0 641
Total 1553 655 22 2230

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
50 com.android.internal.util
32 android.app.admin
26 android.bluetooth.le
21 android.app.job
19 android.accessibilityservice
18 dalvik.system
16 java.nio.channels
15 android.app.usage
14 android.os.storage
12 android.test.suitebuilder
11 android.media
10 java.lang.reflect
10 android.telephony
10 android.app.backup
9 android.text.method
9 android.graphics
9 java.nio.channels.spi
8 android.service.notification
8 android.graphics.drawable.shapes
8 javax.security.auth
7 android.media.tv
7 android.content.pm
7 android.net.wifi
6 android.app.assist
5 java.security
4 android.app
4 android.telecom
4 java.lang.annotation
3 android.hardware
3 android.net
3 android.os
3 android.icu.util
2 java.util
2 javax.crypto
2 android.security
2 android.preference
2 android.graphics.drawable
2 java.lang
2 android.appwidget
2 android.hardware.usb
2 android.provider
2 android.accounts
2 java.util.jar
2 android.view
2 android.hardware.camera2.params
1 android.transition
1 android.icu.text
1 android.icu.lang
1 android.bluetooth
1 java.util.logging
1 javax.crypto.spec
1 android.webkit
1 android.view.accessibility
1 android.content
1 android.printservice
1 java.util.regex
1 android.speech.tts
1 android.animation
1 android.service.dreams
1 android.location
1 android.test.mock
1 java.util.zip
<1 android.text.style
<1 android.util
<1 android.content.res
<1 android.text
<1 android.hardware.camera2
<1 android.system
<1 android
<1 android.print
<1 dalvik.bytecode
<1 android.media.session
<1 android.opengl
<1 android.widget
<1 java.security.spec
<1 android.service.voice
<1 java.security.cert
<1 android.os.health
<1 javax.microedition.khronos.egl
<1 android.view.inputmethod
<1 java.net
<1 java.io

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.app.backup.FullBackupDataOutput
100 java.security.KeyStore.Entry
74 android.media.tv.TvContract
73 android.os.Vibrator
66 android.text.method.DigitsKeyListener
58 android.text.method.DateKeyListener
58 android.text.method.DateTimeKeyListener
58 android.text.method.TimeKeyListener
55 java.security.KeyStore.PasswordProtection
54 android.bluetooth.le.ScanResult
50 android.app.KeyguardManager.OnKeyguardExitResult
50 android.graphics.ColorFilter
50 android.graphics.LightingColorFilter
50 android.graphics.drawable.shapes.ArcShape
50 com.android.internal.util.Predicate
50 java.lang.reflect.GenericDeclaration
50 java.security.PrivateKey
50 javax.crypto.SecretKey
50 javax.security.auth.Destroyable
46 android.graphics.Color
45 android.bluetooth.le.BluetoothLeAdvertiser
43 android.os.storage.StorageManager
38 android.bluetooth.le.BluetoothLeScanner
33 android.graphics.drawable.InsetDrawable
33 android.view.SurfaceHolder.Callback2
33 java.lang.reflect.GenericSignatureFormatError
31 dalvik.system.DexFile
31 java.lang.ProcessBuilder
30 java.util.HashMap
29 android.service.notification.NotificationListenerService
29 java.security.Provider
27 android.accessibilityservice.GestureDescription.StrokeDescription
26 android.media.MediaDescription
25 android.test.suitebuilder.TestSuiteBuilder.FailedToCreateTests
25 java.lang.reflect.Constructor
25 javax.crypto.spec.PBEParameterSpec
23 android.app.job.JobParameters
23 android.net.wifi.WifiEnterpriseConfig.Phase2
22 android.webkit.WebViewDatabase
20 android.security.KeyChain
20 android.animation.Animator.AnimatorListener
20 android.app.backup.BackupDataOutput
20 android.content.ServiceConnection
20 android.content.pm.LauncherApps
20 android.graphics.ColorMatrixColorFilter
20 android.hardware.camera2.params.OutputConfiguration
20 android.media.MediaMuxer.OutputFormat
20 android.text.BidiFormatter
20 android.view.PixelCopy
20 java.security.KeyStore.SecretKeyEntry
20 java.security.KeyStore.TrustedCertificateEntry
19 java.util.logging.Logger
19 android.provider.DocumentsContract
18 android.app.admin.DeviceAdminReceiver
18 android.telephony.CellSignalStrengthLte
17 android.app.assist.AssistStructure
17 android.hardware.usb.UsbRequest
17 java.lang.Process
16 android.app.FragmentContainer
16 android.graphics.Shader
16 android.provider.ContactsContract.PhoneLookup
16 android.telephony.TelephonyManager
16 android.icu.lang.UCharacter.GraphemeClusterBreak
15 android.view.ViewStructure
15 android.telecom.Call.Callback
15 java.lang.reflect.Method
15 android.app.Notification.Builder
14 android.app.Notification
14 android.graphics.Canvas
14 android.media.MediaPlayer
14 android.app.RemoteInput
13 android.accounts.AccountManager
13 android.accounts.AbstractAccountAuthenticator
13 android.location.Location
12 android.icu.lang.UCharacter.WordBreak
12 android.bluetooth.le.ScanSettings.Builder
12 javax.crypto.SecretKeyFactorySpi
12 android.view.MenuItem
12 android.app.NotificationManager
11 android.app.job.JobInfo.Builder
11 android.app.Notification.MessagingStyle
11 android.view.FocusFinder
11 java.nio.channels.Channels
11 java.security.KeyStore.PrivateKeyEntry
11 java.security.Principal
11 android.telephony.CarrierConfigManager
10 android.app.admin.DevicePolicyManager
10 android.animation.AnimatorSet
10 android.bluetooth.BluetoothDevice
10 android.telecom.TelecomManager
10 java.util.Collections
10 android.content.pm.ApplicationInfo
10 android.app.Instrumentation.ActivityMonitor
10 android.provider.VoicemailContract.Voicemails
10 android.service.notification.NotificationListenerService.Ranking
10 java.util.jar.Pack200.Unpacker
9 android.app.FragmentManager
9 android.app.assist.AssistStructure.ViewNode
9 java.lang.AbstractStringBuilder
9 android.app.ActivityOptions
9 android.app.job.JobInfo
9 android.bluetooth.BluetoothGattServerCallback
9 java.lang.ThreadLocal
8 java.lang.Integer
8 android.app.usage.NetworkStats.Bucket
8 android.net.ConnectivityManager
8 android.app.ActivityManager.RunningAppProcessInfo
8 android.content.pm.ShortcutManager
8 android.telephony.SubscriptionManager
8 android.net.wifi.WifiConfiguration
8 android.accessibilityservice.AccessibilityServiceInfo
8 android.content.ContentResolver
8 android.bluetooth.BluetoothGattCallback
8 android.content.pm.PackageInstaller.SessionInfo
8 android.view.accessibility.AccessibilityManager
8 android.widget.OverScroller
8 android.widget.ZoomButton
8 java.util.jar.Attributes.Name
8 android.media.MediaRecorder
7 java.lang.Long
7 android.app.FragmentController
7 android.content.pm.InstrumentationInfo
7 android.graphics.SurfaceTexture
7 android.net.ConnectivityManager.NetworkCallback
7 android.opengl.EGLExt
7 android.os.RemoteCallbackList
7 android.print.PrintJobInfo
7 android.provider.ContactsContract.ProviderStatus
7 android.provider.DocumentsProvider
7 android.view.FrameMetrics
7 android.view.accessibility.AccessibilityNodeProvider
7 java.security.spec.MGF1ParameterSpec
7 java.util.zip.Adler32
7 java.util.zip.CRC32
7 android.media.tv.TvContract.Programs
7 android.bluetooth.le.ScanSettings
7 android.bluetooth.BluetoothGattServer
7 android.service.notification.ConditionProviderService
7 java.lang.reflect.AnnotatedElement
7 java.util.logging.LogManager
7 android.media.tv.TvContract.RecordedPrograms
6 android.telecom.Call
6 android.app.Notification.MessagingStyle.Message
6 android.app.RemoteInput.Builder
6 android.graphics.BitmapFactory.Options
6 android.hardware.camera2.CameraCaptureSession.StateCallback
6 android.media.AudioTrack.Builder
6 android.net.NetworkRequest.Builder
6 android.provider.DocumentsContract.Root
6 android.content.res.Configuration
6 android.media.MediaExtractor
6 java.util.Locale
6 android.printservice.PrintService
6 android.telecom.ConnectionService
6 android.test.suitebuilder.TestMethod
6 android.test.mock.MockPackageManager
5 android.app.KeyguardManager
5 android.app.job.JobScheduler
5 android.location.GnssStatus
5 android.media.MediaMuxer
5 android.media.MediaRecorder.OutputFormat
5 android.os.StrictMode.VmPolicy.Builder
5 android.speech.tts.SynthesisCallback
5 android.speech.tts.UtteranceProgressListener
5 android.telephony.CellSignalStrengthGsm
5 java.nio.channels.ServerSocketChannel
5 java.security.cert.Certificate
5 android.media.AudioTrack
5 android.content.pm.PackageManager
5 android.preference.PreferenceManager
5 javax.crypto.SecretKeyFactory
5 android.media.ExifInterface
5 android.webkit.WebView
5 android.provider.Settings
5 android.app.Fragment
5 android.icu.text.LocaleDisplayNames
5 android.content.pm.PackageInstaller
5 android.preference.Preference
5 android.media.AudioAttributes
5 android.service.notification.StatusBarNotification
5 android.test.suitebuilder.TestSuiteBuilder
4 android.view.View
4 android.os.PersistableBundle
4 android.provider.DocumentsContract.Document
4 android.view.View.AccessibilityDelegate
4 java.util.regex.Matcher
4 java.util.zip.ZipEntry
4 android.content.ContentProviderClient
4 android.media.session.MediaSession
4 android.os.StrictMode.ThreadPolicy.Builder
4 android.view.ViewParent
4 java.lang.Byte
4 java.nio.channels.FileChannel
4 java.util.GregorianCalendar
4 android.telecom.PhoneAccount
4 android.appwidget.AppWidgetManager
4 android.net.wifi.WifiManager
4 android.os.PatternMatcher
4 java.lang.Short
4 java.nio.channels.FileLock
4 java.util.Calendar
4 android.graphics.Bitmap
4 android.bluetooth.BluetoothAdapter
4 android.graphics.PixelFormat
4 android.text.AndroidCharacter
4 java.util.jar.Pack200.Packer
4 android.app.FragmentTransaction
4 android.view.Display
4 android.app.AppOpsManager
4 android.app.Notification.Action
4 android.appwidget.AppWidgetHostView
4 android.hardware.camera2.CameraCaptureSession
4 android.location.GnssMeasurement
4 android.widget.Adapter
4 java.security.SecureRandom
4 java.util.TimeZone
3 android.view.WindowManager.LayoutParams
3 android.hardware.Sensor
3 android.media.AudioManager
3 android.os.UserManager
3 android.widget.ZoomButtonsController
3 java.net.URL
3 android.os.Build
3 android.appwidget.AppWidgetHost
3 android.content.pm.ComponentInfo
3 android.hardware.usb.UsbDeviceConnection
3 android.text.StaticLayout.Builder
3 java.lang.reflect.Field
3 android.widget.TextView
3 android.view.accessibility.AccessibilityNodeInfo
3 android.content.pm.PermissionInfo
3 android.icu.lang.UCharacter.LineBreak
3 java.lang.Class
3 android.content.pm.PackageInstaller.SessionParams
3 android.media.tv.TvContract.Channels
3 android.widget.Chronometer
3 android.widget.ProgressBar
3 android.widget.VideoView
3 android.app.FragmentHostCallback
3 android.content.pm.PackageStats
3 android.content.ClipData
3 android.widget.TimePicker
3 java.util.Date
3 android.system.Os
3 android.Manifest.permission
3 android.net.wifi.WifiEnterpriseConfig
3 android.icu.util.MeasureUnit
3 android.app.Activity
3 android.content.pm.ActivityInfo
3 android.graphics.drawable.Icon
3 android.icu.text.MeasureFormat
3 android.widget.ListView
2 android.content.ClipDescription
2 android.service.voice.VoiceInteractionSession
2 android.view.SurfaceHolder
2 java.security.cert.X509CRL
2 android.media.MediaCodec
2 android.bluetooth.BluetoothGatt
2 android.hardware.Camera
2 android.view.ViewConfiguration
2 android.content.ContentProvider
2 android.webkit.WebViewClient
2 android.content.Context
2 java.nio.channels.DatagramChannel
2 java.lang.Character.UnicodeBlock
2 android.media.MediaMetadata
2 android.widget.DialerFilter
2 android.test.mock.MockContext
2 android.widget.DatePicker
2 java.nio.channels.SocketChannel
2 java.util.ResourceBundle
2 android.content.ContextWrapper
2 android.text.TextUtils
2 android.R.id
2 android.accessibilityservice.AccessibilityService
2 android.app.Instrumentation
2 android.content.pm.ResolveInfo
2 android.provider.AlarmClock
2 android.telecom.Call.Details
2 java.security.cert.X509Certificate
2 android.icu.lang.UScript
2 android.app.ProgressDialog
2 android.R.attr
2 android.view.Window.Callback
2 android.view.accessibility.AccessibilityWindowInfo
2 android.icu.lang.UCharacter.UnicodeBlock
1 android.icu.util.TimeZone
1 android.widget.ArrayAdapter
1 android.provider.CallLog.Calls
1 android.telecom.Connection
1 android.R.string
1 android.content.Intent
1 android.os.Build.VERSION_CODES
1 android.webkit.WebSettings
1 android.app.Notification.WearableExtender
1 android.media.tv.TvInputInfo
1 android.opengl.GLSurfaceView
1 android.provider.Settings.Global
1 android.view.InputDevice
1 android.graphics.Paint
1 android.text.Layout
1 android.app.PendingIntent
1 android.icu.lang.UCharacter.JoiningGroup
1 android.media.tv.TvInputManager
1 android.telecom.Connection.VideoProvider
1 android.content.res.TypedArray
1 android.provider.ContactsContract.Directory
1 java.util.Scanner
1 android.net.NetworkCapabilities
1 android.net.TrafficStats
1 java.lang.reflect.Modifier
1 android.media.AudioDeviceInfo
1 android.view.Menu
1 android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
1 android.media.MediaFormat
1 android.provider.MediaStore
1 java.lang.StringBuffer
1 java.lang.StringBuilder
1 android.os.BatteryManager
1 android.animation.ValueAnimator
1 android.media.MediaDrm
1 android.icu.util.VersionInfo
1 android.view.inputmethod.EditorInfo
1 java.lang.String
1 android.app.ActivityManager
1 android.provider.Settings.Secure
1 android.hardware.SensorManager
1 android.service.dreams.DreamService
1 android.icu.util.Calendar
1 android.graphics.Path
<1 android.view.Window
<1 android.content.res.Resources
<1 java.io.File
<1 java.util.zip.ZipFile
<1 android.hardware.camera2.CaptureRequest
<1 android.telephony.SmsManager
<1 android.os.health.UidHealthStats
<1 android.os.Bundle
<1 android.media.MediaCodecInfo.CodecCapabilities
<1 android.view.ViewGroup
<1 dalvik.bytecode.Opcodes
<1 android.icu.text.NumberFormat
<1 android.hardware.camera2.CaptureResult
<1 android.app.Dialog
<1 javax.microedition.khronos.egl.EGL10
<1 android.opengl.EGL14
<1 android.media.MediaCodecInfo.CodecProfileLevel
<1 android.view.MotionEvent
<1 android.system.OsConstants

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