API Change Statistics

The overall difference between API Levels 27 and p-dp1 is approximately 6.0%.


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 7 83 7 97
Classes and Interfaces 123 451 9 583
Constructors 13 11 0 24
Methods 418 622 168 1208
Fields 404 197 3 604
Total 965 1364 187 2516

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
55 android.view.textclassifier
40 android.hardware.fingerprint
28 java.util.jar
27 android.security
25 android.service.autofill
23 android.telephony
18 android.app.admin
15 android.security.keystore
14 android.mtp
13 android.app.backup
12 android.net
12 android.nfc.tech
10 android.hardware.camera2
9 android.content.res
9 android.bluetooth
8 android.media
7 android.icu.util
7 java.lang.reflect
7 android.hardware.camera2.params
6 java.util.stream
6 android.telecom
6 java.nio.channels
6 android.system
5 android.text
5 android.net.wifi
5 android.webkit
4 android.graphics
4 android.util
4 android.app
4 android.app.job
4 java.util.concurrent.atomic
3 java.time.chrono
3 java.util.concurrent
3 java.nio.file.attribute
3 android.telephony.gsm
3 android.view.autofill
3 android.media.tv
2 android.nfc.cardemulation
2 android.content.pm
2 android.content
2 java.nio.file
2 android.os
2 android.service.notification
2 android.text.util
2 org.apache.http.conn.ssl
2 android.preference
2 android.app.usage
2 android.media.midi
2 java.lang.ref
2 java.util
1 android.provider
1 android.view.accessibility
1 android.net.wifi.aware
1 android.icu.text
1 android.graphics.drawable
1 android.database.sqlite
1 android.icu.lang
1 android.view
1 android.appwidget
1 android.service.dreams
1 android.app.assist
1 java.nio
<1 android.view.inputmethod
<1 android.text.style
<1 java.lang
<1 java.text
<1 android.service.carrier
<1 java.io
<1 android.location
<1 android.widget
<1 android.hardware
<1 android.database
<1 android.nfc
<1 java.security.cert
<1 android.inputmethodservice
<1 java.time.format
<1 android
<1 dalvik.bytecode
<1 android.accessibilityservice
<1 java.net
<1 javax.crypto
<1 java.util.prefs
<1 java.security

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 java.lang.reflect.Type
100 java.nio.channels.AsynchronousChannel
100 java.nio.channels.InterruptibleChannel
100 java.nio.file.DirectoryStream
100 java.util.Set
100 java.util.concurrent.RunnableFuture
90 java.util.jar.JarOutputStream
83 android.content.res.AssetManager.AssetInputStream
83 java.util.jar.JarInputStream
76 java.util.jar.JarEntry
75 android.service.autofill.ImageTransformation.Builder
64 java.util.jar.JarFile
61 android.view.textclassifier.TextClassifier
58 android.app.admin.SecurityLog
56 java.util.concurrent.BlockingDeque
53 android.content.res.AssetManager
52 android.os.Parcel
50 android.app.Fragment.InstantiationException
50 android.app.FragmentBreadCrumbs.OnBreadCrumbClickListener
50 android.app.FragmentManager.OnBackStackChangedListener
50 android.content.Loader.ForceLoadContentObserver
50 android.content.Loader.OnLoadCanceledListener
50 android.content.Loader.OnLoadCompleteListener
50 android.hardware.camera2.CameraCharacteristics.Key
50 android.hardware.camera2.CaptureRequest.Key
50 android.hardware.camera2.CaptureResult.Key
50 android.media.MediaCodecInfo
50 android.mtp.MtpObjectInfo
50 android.mtp.MtpStorageInfo
50 android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback
45 android.provider.MediaStore.Images.Media
42 android.telephony.CellInfo
41 android.media.tv.TvTrackInfo.Builder
40 android.app.Notification.MessagingStyle
39 android.telephony.CellIdentityLte
38 java.util.List
37 android.net.wifi.WifiManager.WpsCallback
36 android.service.autofill.FillEventHistory.Event
36 android.telephony.CellIdentityWcdma
33 android.view.MotionEvent
33 android.app.backup.FullBackupDataOutput
33 android.hardware.camera2.TotalCaptureResult
33 android.media.MediaCrypto
33 android.media.MediaScannerConnection.MediaScannerConnectionClient
33 android.media.tv.TvTrackInfo
33 android.provider.MediaStore.Files
33 android.telephony.CellIdentityGsm
33 android.view.textclassifier.TextClassification
33 java.io.ObjectOutput
33 java.nio.channels.Channel
31 android.media.MediaCodecList
30 android.media.MediaDrm
29 android.app.Notification.Action
28 android.net.Proxy
28 android.view.textclassifier.TextSelection
27 android.app.Notification.MessagingStyle.Message
27 android.media.MediaExtractor
26 android.service.autofill.FillResponse.Builder
26 android.telecom.RemoteConference
25 android.media.MediaDescrambler
25 android.provider.CalendarContract.Attendees
25 android.provider.CalendarContract.EventDays
25 android.provider.CalendarContract.Reminders
25 android.provider.Contacts.Phones
25 android.provider.MediaStore.Audio.Artists.Albums
25 android.service.autofill.FillResponse
25 android.text.style.QuoteSpan
25 android.util.MutableBoolean
25 android.util.MutableByte
25 android.util.MutableChar
25 android.util.MutableDouble
25 android.util.MutableFloat
25 android.util.MutableInt
25 android.util.MutableLong
25 android.util.MutableShort
25 android.webkit.WebViewFragment
23 android.app.ActivityManager.TaskDescription
22 java.util.Deque
22 java.util.concurrent.BlockingQueue
21 android.content.pm.VersionedPackage
21 android.text.DynamicLayout
21 android.text.StaticLayout
20 android.media.MediaCodec
20 android.app.admin.NetworkEvent
20 android.app.usage.UsageStatsManager
20 android.service.autofill.SaveCallback
20 android.service.autofill.Validators
20 android.view.textclassifier.TextClassification.Builder
20 java.nio.channels.MulticastChannel
20 java.nio.channels.SeekableByteChannel
20 java.nio.file.attribute.AclFileAttributeView
20 java.nio.file.attribute.BasicFileAttributeView
20 java.nio.file.attribute.FileOwnerAttributeView
20 java.util.AbstractSequentialList
20 java.util.SortedMap
20 java.util.stream.DoubleStream.Builder
20 java.util.stream.IntStream.Builder
20 java.util.stream.LongStream.Builder
20 java.util.stream.Stream.Builder
18 android.telecom.Call.Callback
17 android.telephony.gsm.SmsManager
17 android.telephony.CellIdentityCdma
17 android.webkit.CookieSyncManager
16 android.app.Fragment.SavedState
16 android.app.FragmentContainer
16 android.app.LoaderManager.LoaderCallbacks
16 android.app.backup.FileBackupHelper
16 android.app.backup.SharedPreferencesBackupHelper
16 android.media.midi.MidiInputPort
16 android.net.wifi.WifiConfiguration.GroupCipher
16 android.nfc.tech.NdefFormatable
16 android.provider.MediaStore.Video
16 android.text.SpannedString
16 android.text.style.BulletSpan
16 java.security.cert.PKIXCertPathChecker
16 android.content.pm.ShortcutInfo
16 android.telephony.ServiceState
15 android.telephony.SubscriptionManager
15 android.app.NotificationChannelGroup
15 android.provider.CalendarContract.Instances
15 android.service.notification.NotificationListenerService.Ranking
15 java.lang.reflect.Executable
15 java.util.NavigableSet
15 android.telecom.ConnectionService
15 java.nio.channels.FileChannel
14 android.app.admin.SecurityLog.SecurityEvent
14 android.app.backup.BackupDataOutput
14 android.app.job.JobWorkItem
14 android.content.ServiceConnection
14 android.database.sqlite.SQLiteDatabase.OpenParams
14 android.hardware.camera2.CaptureRequest.Builder
14 android.media.MediaDrm.KeyRequest
14 android.media.MediaMuxer.OutputFormat
14 android.nfc.cardemulation.OffHostApduService
14 android.nfc.tech.TagTechnology
14 android.os.SystemClock
14 android.service.autofill.CustomDescription.Builder
14 android.telephony.CellSignalStrengthWcdma
14 android.view.autofill.AutofillManager
14 android.view.textclassifier.TextSelection.Builder
14 java.nio.channels.DatagramChannel
14 java.nio.file.WatchService
14 java.nio.file.attribute.PosixFileAttributeView
14 java.time.chrono.ChronoPeriod
14 java.util.TimerTask
14 org.apache.http.conn.ssl.X509HostnameVerifier
13 android.icu.text.DecimalFormatSymbols
13 android.icu.text.CollationElementIterator
13 java.nio.channels.SocketChannel
13 android.icu.text.DecimalFormat
13 android.hardware.fingerprint.FingerprintManager
12 android.graphics.Bitmap
12 android.text.util.Linkify
12 android.app.backup.BackupManager
12 android.hardware.HardwareBuffer
12 android.media.midi.MidiOutputPort
12 android.net.wifi.WifiConfiguration.Protocol
12 android.provider.Contacts.Organizations
12 android.service.autofill.Dataset.Builder
12 android.telephony.CellSignalStrengthGsm
12 java.lang.Character.UnicodeScript
12 java.text.CollationElementIterator
12 java.util.ListIterator
12 android.view.accessibility.AccessibilityEvent
11 android.hardware.camera2.CameraDevice
11 android.os.PowerManager
11 android.media.MediaMetadataRetriever
11 android.app.RemoteInput
11 android.app.backup.BackupAgent
11 android.hardware.camera2.params.OutputConfiguration
11 android.icu.text.DateIntervalInfo.PatternInfo
11 android.net.wifi.aware.SubscribeConfig.Builder
11 android.provider.MediaStore.Audio.Playlists.Members
11 android.widget.AbsoluteLayout
11 java.lang.ref.Reference
11 java.util.concurrent.ConcurrentNavigableMap
10 android.app.admin.DevicePolicyManager
10 android.telephony.PhoneNumberUtils
10 android.net.LinkProperties
10 android.net.wifi.WifiConfiguration.AuthAlgorithm
10 android.net.wifi.WifiConfiguration.PairwiseCipher
10 android.nfc.tech.NfcB
10 android.nfc.tech.NfcBarcode
10 android.nfc.tech.NfcV
10 android.os.Build.VERSION
10 android.provider.ContactsContract.CommonDataKinds.SipAddress
10 android.service.autofill.FillEventHistory
10 android.service.autofill.SaveInfo.Builder
10 android.telecom.ConnectionRequest
10 android.text.SpannableString
9 android.media.MediaFormat
9 java.net.URL
9 android.view.inputmethod.InputMethodManager
9 android.app.job.JobInfo.Builder
9 android.icu.lang.UCharacter
9 android.database.AbstractCursor
9 android.content.QuickViewConstants
9 android.database.sqlite.SQLiteDatabase.OpenParams.Builder
9 android.media.MediaCodecInfo.EncoderCapabilities
9 android.service.autofill.SaveRequest
9 java.nio.file.attribute.DosFileAttributeView
9 java.nio.file.attribute.UserDefinedFileAttributeView
9 java.util.Queue
8 android.graphics.Rect
8 android.os.UserManager
8 android.provider.ContactsContract.CommonDataKinds.Im
8 android.app.FragmentManager.BackStackEntry
8 android.hardware.camera2.params.StreamConfigurationMap
8 android.net.LocalServerSocket
8 android.net.wifi.WifiConfiguration.KeyMgmt
8 android.provider.MediaStore.Audio.Genres.Members
8 android.telephony.CellSignalStrengthLte
8 java.io.Writer
8 java.nio.channels.AsynchronousSocketChannel
8 android.content.pm.SharedLibraryInfo
7 android.app.job.JobInfo
7 android.app.admin.SystemUpdatePolicy
7 android.database.sqlite.SQLiteCursor
7 android.icu.text.RelativeDateTimeFormatter
7 android.location.GnssMeasurementsEvent.Callback
7 android.media.RemoteControlClient.MetadataEditor
7 java.text.RuleBasedCollator
7 java.util.AbstractCollection
7 java.util.NavigableMap
7 android.app.NotificationManager
7 android.app.admin.DeviceAdminReceiver
7 android.telecom.Call
7 android.app.usage.NetworkStats.Bucket
7 android.telephony.TelephonyManager
7 android.content.pm.PackageInfo
7 android.app.LoaderManager
7 android.content.AsyncTaskLoader
7 android.nfc.tech.NfcA
7 android.nfc.tech.NfcF
7 android.telecom.CallAudioState
7 android.telephony.CellSignalStrengthCdma
7 android.view.ViewTreeObserver
7 android.net.wifi.WifiManager
6 java.lang.StringBuilder
6 java.util.Locale
6 android.security.keystore.KeyGenParameterSpec
6 android.security.keystore.KeyGenParameterSpec.Builder
6 android.nfc.tech.IsoDep
6 android.preference.PreferenceFragment
6 android.provider.ContactsContract.CommonDataKinds.Organization
6 android.view.accessibility.AccessibilityNodeInfo.CollectionItemInfo
6 java.util.concurrent.ConcurrentHashMap.KeySetView
6 android.media.AudioFormat
6 android.app.UiAutomation
5 android.media.AudioTrack.Builder
5 android.media.MediaRecorder
5 android.media.MediaSync
5 android.net.TrafficStats
5 android.net.wifi.aware.PublishConfig.Builder
5 java.nio.channels.ServerSocketChannel
5 android.telecom.Connection
5 android.icu.lang.UCharacter.JoiningGroup
5 android.app.KeyguardManager
5 android.graphics.BitmapRegionDecoder
5 android.media.tv.TvContentRating
5 android.provider.ContactsContract.CommonDataKinds.Email
5 android.security.keystore.KeyInfo
5 java.util.concurrent.atomic.DoubleAccumulator
5 java.util.concurrent.atomic.DoubleAdder
5 java.util.concurrent.atomic.LongAccumulator
5 android.app.ActivityOptions
5 android.app.FragmentBreadCrumbs
5 android.app.Notification.Action.Builder
5 android.content.AbstractThreadedSyncAdapter
5 android.graphics.Picture
5 android.media.AudioFocusRequest.Builder
5 android.nfc.NfcAdapter
5 android.provider.ContactsContract.CommonDataKinds.StructuredPostal
5 android.view.WindowInsets
5 android.widget.FrameLayout
5 java.nio.channels.AsynchronousServerSocketChannel
5 android.icu.lang.UScript
5 android.provider.ContactsContract.CommonDataKinds.Event
4 android.app.ActivityManager.RunningAppProcessInfo
4 android.content.pm.LauncherApps.ShortcutQuery
4 android.media.ImageReader
4 android.net.wifi.aware.DiscoverySessionCallback
4 android.provider.ContactsContract.CommonDataKinds.Relation
4 android.service.carrier.CarrierIdentifier
4 java.nio.channels.Selector
4 android.app.ListFragment
4 java.util.concurrent.atomic.LongAdder
4 android.appwidget.AppWidgetProviderInfo
4 android.security.keystore.KeyProperties
4 android.provider.Settings.Secure
4 android.app.NotificationManager.Policy
4 android.provider.VoicemailContract.Voicemails
4 android.app.assist.AssistStructure.ViewNode
4 android.hardware.camera2.params.RggbChannelVector
4 android.nfc.tech.MifareUltralight
4 android.telephony.PhoneStateListener
4 android.view.accessibility.AccessibilityRecord
4 android.telecom.PhoneAccount
4 android.hardware.camera2.CameraCharacteristics
4 android.net.wifi.WifiConfiguration
4 android.service.autofill.SaveInfo
4 java.io.Reader
4 java.nio.file.FileSystem
4 java.util.AbstractMap
3 android.provider.Telephony.Carriers
3 android.icu.util.EthiopicCalendar
3 android.view.ViewStructure
3 android.telecom.TelecomManager
3 android.telephony.CarrierConfigManager
3 android.inputmethodservice.InputMethodService
3 android.app.job.JobParameters
3 android.hardware.camera2.CameraCaptureSession
3 android.icu.text.CurrencyPluralInfo
3 android.icu.text.Normalizer
3 android.view.inputmethod.ExtractedText
3 java.util.AbstractList
3 android.icu.text.DateFormat.Field
3 android.nfc.tech.Ndef
3 java.nio.file.Path
3 android.location.LocationManager
3 android.database.sqlite.SQLiteOpenHelper
3 android.provider.ContactsContract.DataColumns
3 android.security.keystore.KeyProtection
3 android.text.StaticLayout.Builder
3 android.util.SparseBooleanArray
3 javax.crypto.ExemptionMechanism
3 android.icu.lang.UProperty
3 android.app.FragmentHostCallback
3 android.app.FragmentManager.FragmentLifecycleCallbacks
3 android.content.CursorLoader
3 android.telecom.RemoteConnection
3 android.hardware.camera2.CameraMetadata
3 android.bluetooth.BluetoothProfile
3 android.security.keystore.KeyProtection.Builder
3 android.telecom.InCallService
3 android.net.NetworkInfo
3 android.icu.text.StringPrepParseException
2 android.hardware.camera2.CaptureResult
2 android.provider.ContactsContract.CommonDataKinds.Phone
2 android.webkit.URLUtil
2 java.time.chrono.MinguoDate
2 java.time.chrono.ThaiBuddhistDate
2 android.R.interpolator
2 android.icu.text.MeasureFormat
2 android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction
2 android.os.Debug
2 java.time.chrono.HijrahDate
2 java.time.chrono.JapaneseDate
2 android.app.Notification
2 android.graphics.Typeface
2 android.os.StrictMode.VmPolicy.Builder
2 android.app.DialogFragment
2 android.view.ViewGroup
2 android.icu.text.PluralRules
2 android.provider.Telephony.Sms.Intents
2 android.widget.SlidingDrawer
2 android.media.AudioTrack
2 android.widget.TextView
2 android.telephony.SmsMessage
2 android.view.View
2 java.nio.DoubleBuffer
2 java.nio.FloatBuffer
2 java.nio.IntBuffer
2 java.nio.LongBuffer
2 java.nio.ShortBuffer
2 android.view.accessibility.AccessibilityNodeInfo
2 android.content.pm.PackageManager
2 android.app.Notification.Builder
2 java.time.format.DateTimeFormatter
2 android.media.MediaPlayer
2 android.media.MediaCodecInfo.CodecCapabilities
2 android.accessibilityservice.AccessibilityService
2 android.icu.util.CopticCalendar
2 android.os.StrictMode.ThreadPolicy.Builder
2 android.provider.AlarmClock
2 android.media.tv.TvView
2 android.telecom.Call.Details
2 java.time.chrono.ChronoLocalDateTime
2 android.media.AudioRecord
2 android.provider.Contacts.ContactMethods
1 android.icu.util.HebrewCalendar
1 android.icu.util.UniversalTimeScale
1 java.lang.StringBuffer
1 java.util.LinkedList
1 android.provider.Settings
1 android.provider.CallLog.Calls
1 android.icu.util.MeasureUnit
1 java.security.Provider
1 java.time.chrono.ChronoLocalDate
1 android.app.FragmentManager
1 android.util.DisplayMetrics
1 android.webkit.WebView
1 android.widget.RemoteViews
1 android.os.Build.VERSION_CODES
1 android.content.Loader
1 android.text.Layout
1 android.media.tv.TvInputManager
1 android.widget.AdapterView
1 java.time.chrono.ChronoZonedDateTime
1 android.app.Activity
1 android.view.inputmethod.InputConnection
1 android.media.AudioManager
1 android.nfc.tech.MifareClassic
1 java.nio.CharBuffer
1 android.icu.text.RuleBasedCollator
1 android.database.CursorWindow
1 android.net.NetworkCapabilities
1 android.os.Handler
1 android.widget.LinearLayout
1 android.widget.RelativeLayout
1 android.view.Menu
1 android.R.id
1 android.graphics.drawable.Drawable
1 android.view.WindowManager.LayoutParams
1 android.os.BatteryManager
1 android.os.Process
1 android.icu.lang.UCharacter.UnicodeBlock
1 android.app.FragmentTransaction
1 android.view.Display
1 android.view.ViewConfiguration
1 android.app.FragmentController
1 android.icu.util.VersionInfo
1 android.widget.GridLayout
1 android.service.dreams.DreamService
1 android.telecom.Conference
1 android.appwidget.AppWidgetManager
1 android.system.Os
1 java.util.prefs.AbstractPreferences
1 android.Manifest.permission
<1 android.content.Context
<1 android.view.Window
<1 java.nio.ByteBuffer
<1 java.lang.Class
<1 android.hardware.camera2.CaptureRequest
<1 android.telephony.SmsManager
<1 android.widget.Toolbar
<1 android.R.attr
<1 android.app.Instrumentation
<1 android.net.ConnectivityManager
<1 android.icu.text.DateFormat
<1 android.media.tv.TvContract.Channels
<1 android.content.pm.ApplicationInfo
<1 android.database.sqlite.SQLiteDatabase
<1 android.app.Dialog
<1 android.app.Fragment
<1 dalvik.bytecode.Opcodes
<1 android.view.KeyEvent
<1 java.lang.Character.UnicodeBlock
<1 android.R.style
<1 android.content.Intent
<1 android.app.FragmentManagerNonConfig

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