API Change Statistics

The overall difference between API Levels 27 and 28 is approximately 6.48%.


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 8 87 7 102
Classes and Interfaces 133 489 9 631
Constructors 14 14 0 28
Methods 483 673 169 1325
Fields 469 272 8 749
Total 1107 1535 193 2835

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
72 android.view.textclassifier
28 java.util.jar
27 android.security
25 android.service.autofill
23 android.telephony
21 android.app.admin
20 android.security.keystore
20 android.hardware.fingerprint
18 android.media.audiofx
14 android.mtp
13 android.net
13 android.app.backup
12 android.nfc.tech
11 android.hardware.camera2
11 android.hardware.camera2.params
9 android.content.res
9 android.app.usage
8 android.net.wifi
7 android.bluetooth
7 android.icu.util
7 java.lang.reflect
6 android.text
6 java.util.stream
6 java.nio.channels
6 android.system
5 android.media
5 android.app.job
5 android.app
5 android.graphics
4 android.view.autofill
4 android.telecom
4 android.media.session
4 android.webkit
4 android.content.pm
4 java.util.concurrent.atomic
4 android.util
3 java.time.chrono
3 java.util.concurrent
3 java.nio.file.attribute
3 android.telephony.gsm
3 android.service.notification
3 android.media.tv
3 android.os
2 android.net.http
2 android.nfc.cardemulation
2 android.content
2 java.nio.file
2 org.apache.http.conn.ssl
2 android.preference
2 android.media.midi
2 java.lang.ref
2 java.util
2 android.provider
2 android.graphics.drawable
1 android.view.accessibility
1 android.net.wifi.aware
1 android.icu.text
1 android.database.sqlite
1 android.app.assist
1 android
1 android.view
1 android.icu.lang
1 android.appwidget
1 android.service.dreams
1 java.nio
<1 android.service.media
<1 android.text.style
<1 android.location
<1 java.lang
<1 java.text
<1 android.view.inputmethod
<1 android.service.carrier
<1 android.text.util
<1 java.io
<1 android.widget
<1 android.hardware
<1 android.database
<1 android.nfc
<1 android.inputmethodservice
<1 java.security.cert
<1 java.time.format
<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
68 android.view.textclassifier.TextClassifier
64 java.util.jar.JarFile
60 android.app.admin.SecurityLog
59 android.net.wifi.WpsInfo
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.graphics.EmbossMaskFilter
50 android.hardware.camera2.CameraCharacteristics.Key
50 android.hardware.camera2.CaptureRequest.Key
50 android.hardware.camera2.CaptureResult.Key
50 android.hardware.fingerprint.FingerprintManager.AuthenticationResult
50 android.media.MediaCodecInfo
50 android.mtp.MtpObjectInfo
50 android.mtp.MtpStorageInfo
50 android.preference.PreferenceFragment.OnPreferenceStartFragmentCallback
47 android.media.MediaDescrambler
45 android.provider.MediaStore.Images.Media
42 android.telephony.CellInfo
42 android.view.textclassifier.TextClassification
41 android.media.tv.TvTrackInfo.Builder
40 android.app.Notification.MessagingStyle
38 java.util.List
37 android.net.wifi.WifiManager.WpsCallback
36 android.service.autofill.FillEventHistory.Event
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.CellIdentityLte
33 android.view.textclassifier.TextClassification.Builder
33 android.view.textclassifier.TextClassificationManager
33 java.io.ObjectOutput
33 java.nio.channels.Channel
31 android.app.Notification.Action
31 android.media.MediaDrm
31 android.media.MediaCodecList
30 android.telephony.CellIdentityWcdma
28 android.net.Proxy
28 android.view.textclassifier.TextSelection
27 android.app.Notification.MessagingStyle.Message
27 android.telephony.CellIdentityGsm
27 android.media.MediaExtractor
26 android.service.autofill.FillResponse.Builder
26 android.telecom.RemoteConference
25 android.app.usage.UsageStatsManager
25 android.net.NetworkInfo
25 android.net.NetworkRequest
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 android.app.NotificationManager.Policy
22 java.util.concurrent.BlockingQueue
21 android.content.pm.VersionedPackage
21 android.text.DynamicLayout
21 android.text.StaticLayout
20 android.graphics.drawable.Icon
20 android.media.MediaCodec
20 android.app.admin.NetworkEvent
20 android.app.job.JobWorkItem
20 android.service.autofill.SaveCallback
20 android.service.autofill.Validators
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
19 android.telephony.SubscriptionManager
19 android.view.autofill.AutofillManager
18 android.telecom.Call.Callback
18 android.app.Notification.Action.WearableExtender
18 android.app.usage.UsageEvents.Event
18 android.service.notification.NotificationListenerService.Ranking
18 android.media.Ringtone
17 android.telephony.gsm.SmsManager
17 android.webkit.CookieSyncManager
17 android.R.color
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
16 android.hardware.camera2.CameraCaptureSession
15 android.app.Notification.WearableExtender
15 android.app.NotificationChannelGroup
15 android.hardware.camera2.CameraManager
15 android.provider.CalendarContract.Instances
15 java.lang.reflect.Executable
15 java.util.NavigableSet
15 android.media.MediaMetadataRetriever
15 android.telecom.ConnectionService
15 java.nio.channels.FileChannel
14 android.app.admin.SecurityLog.SecurityEvent
14 android.app.backup.BackupDataOutput
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.media.MediaTimestamp
14 android.net.http.X509TrustManagerExtensions
14 android.nfc.cardemulation.OffHostApduService
14 android.nfc.tech.TagTechnology
14 android.service.autofill.CustomDescription.Builder
14 android.telephony.CellSignalStrengthWcdma
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
13 android.os.UserManager
12 android.app.UiAutomation
12 android.graphics.Bitmap
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.os.PowerManager
11 android.app.job.JobInfo
11 android.net.wifi.WifiManager
11 android.app.RemoteInput
11 android.app.backup.BackupAgent
11 android.hardware.camera2.params.OutputConfiguration
11 android.icu.text.DateIntervalInfo.PatternInfo
11 android.media.session.MediaSessionManager
11 android.net.wifi.aware.SubscribeConfig.Builder
11 android.provider.MediaStore.Audio.Playlists.Members
11 android.text.style.TypefaceSpan
11 android.widget.AbsoluteLayout
11 java.lang.ref.Reference
11 java.util.concurrent.ConcurrentNavigableMap
11 android.media.MediaFormat
10 android.app.usage.NetworkStatsManager
10 android.telephony.PhoneNumberUtils
10 android.app.admin.DevicePolicyManager
10 android.hardware.fingerprint.FingerprintManager.AuthenticationCallback
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.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.security.keystore.KeyProtection
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.security.keystore.KeyProtection.Builder
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.provider.ContactsContract.CommonDataKinds.Im
8 android.app.FragmentManager.BackStackEntry
8 android.content.pm.PermissionInfo
8 android.hardware.camera2.params.StreamConfigurationMap
8 android.hardware.fingerprint.FingerprintManager.CryptoObject
8 android.net.LocalServerSocket
8 android.provider.MediaStore.Audio.Genres.Members
8 android.security.keystore.KeyGenParameterSpec
8 android.security.keystore.KeyGenParameterSpec.Builder
8 android.telephony.CellSignalStrengthLte
8 java.io.Writer
8 java.nio.channels.AsynchronousSocketChannel
8 android.content.pm.SharedLibraryInfo
7 android.app.RemoteAction
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 android.os.StrictMode.VmPolicy.Builder
7 java.text.RuleBasedCollator
7 java.util.AbstractCollection
7 java.util.NavigableMap
7 android.location.GnssMeasurement
7 android.app.NotificationManager
7 android.telecom.Call
7 android.app.usage.NetworkStats.Bucket
7 android.content.pm.PackageInfo
7 android.net.TrafficStats
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
6 android.net.ConnectivityManager
6 java.lang.StringBuilder
6 java.util.Locale
6 android.database.sqlite.SQLiteOpenHelper
6 android.telephony.CellIdentityCdma
6 android.app.admin.DeviceAdminReceiver
6 android.hardware.camera2.CameraDevice
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.telephony.TelephonyManager
5 android.media.MediaRecorder
5 android.media.MediaSync
5 android.net.wifi.aware.PublishConfig.Builder
5 java.nio.channels.ServerSocketChannel
5 android.icu.lang.UCharacter.JoiningGroup
5 android.net.NetworkCapabilities
5 android.hardware.camera2.CameraCharacteristics
5 android.app.KeyguardManager
5 android.graphics.BitmapRegionDecoder
5 android.media.MediaPlayer
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.telecom.Connection
5 android.app.ActivityOptions
5 android.app.FragmentBreadCrumbs
5 android.app.Notification.Action.Builder
5 android.content.AbstractThreadedSyncAdapter
5 android.content.ClipboardManager
5 android.content.pm.LauncherApps.Callback
5 android.graphics.Picture
5 android.graphics.Typeface
5 android.media.AudioFocusRequest.Builder
5 android.media.Image
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.app.assist.AssistStructure.ViewNode
5 android.graphics.Movie
5 android.inputmethodservice.InputMethodService
5 android.provider.ContactsContract.CommonDataKinds.Event
4 android.provider.Settings.Secure
4 android.app.ActivityManager.RunningAppProcessInfo
4 android.Manifest.permission_group
4 android.app.Application
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.view.ViewStructure
4 android.app.ListFragment
4 java.util.concurrent.atomic.LongAdder
4 android.appwidget.AppWidgetProviderInfo
4 android.security.keystore.KeyProperties
4 android.os.Handler
4 android.provider.VoicemailContract.Voicemails
4 android.hardware.camera2.CameraMetadata
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.net.Network
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.telephony.CarrierConfigManager
3 android.app.job.JobParameters
3 android.icu.text.CurrencyPluralInfo
3 android.icu.text.Normalizer
3 android.service.media.MediaBrowserService
3 android.view.inputmethod.ExtractedText
3 java.util.AbstractList
3 android.hardware.camera2.CaptureResult
3 android.icu.text.DateFormat.Field
3 android.nfc.tech.Ndef
3 java.nio.file.Path
3 android.provider.ContactsContract.DataColumns
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.bluetooth.BluetoothProfile
3 android.telecom.InCallService
3 android.telephony.SubscriptionInfo
3 android.app.Notification
3 android.content.pm.PackageManager
3 android.icu.text.StringPrepParseException
2 android.graphics.Canvas
2 android.app.Notification.Builder
2 android.media.AudioDeviceInfo
2 android.provider.ContactsContract.CommonDataKinds.Phone
2 android.text.util.Linkify
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.view.View
2 android.os.BatteryManager
2 android.os.Process
2 android.location.LocationManager
2 android.app.DialogFragment
2 android.view.ViewConfiguration
2 android.view.ViewGroup
2 android.provider.Settings
2 android.icu.text.PluralRules
2 android.provider.Telephony.Sms.Intents
2 android.widget.SlidingDrawer
2 android.widget.TextView
2 android.telephony.SmsMessage
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.telecom.TelecomManager
2 android.media.session.MediaSession
2 android.util.AttributeSet
2 java.time.format.DateTimeFormatter
2 android.webkit.WebView
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.app.WallpaperManager
2 android.R.style
2 android.app.admin.DeviceAdminInfo
2 android.content.pm.LauncherApps
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.icu.util.MeasureUnit
1 java.security.Provider
1 java.time.chrono.ChronoLocalDate
1 android.app.Activity
1 android.app.FragmentManager
1 android.util.DisplayMetrics
1 android.widget.RemoteViews
1 android.os.Build.VERSION_CODES
1 android.Manifest.permission
1 android.content.Loader
1 android.text.Layout
1 android.media.tv.TvInputManager
1 android.widget.AdapterView
1 java.time.chrono.ChronoZonedDateTime
1 android.hardware.camera2.CaptureRequest
1 android.nfc.tech.MifareClassic
1 java.nio.CharBuffer
1 android.icu.text.RuleBasedCollator
1 android.service.notification.NotificationListenerService
1 android.database.CursorWindow
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.icu.lang.UCharacter.UnicodeBlock
1 android.app.FragmentTransaction
1 android.view.Display
1 android.media.AudioManager
1 android.media.audiofx.AudioEffect
1 android.app.FragmentController
1 android.app.ActivityManager
1 android.content.Context
1 android.icu.util.VersionInfo
1 android.media.AudioTrack
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.view.Window
<1 android.provider.CallLog.Calls
<1 java.nio.ByteBuffer
<1 java.lang.Class
<1 android.R.attr
<1 android.telephony.SmsManager
<1 android.widget.Toolbar
<1 android.app.Instrumentation
<1 android.icu.text.DateFormat
<1 android.media.tv.TvContract.Channels
<1 android.content.pm.ApplicationInfo
<1 android.database.sqlite.SQLiteDatabase
<1 android.media.MediaCodecInfo.CodecProfileLevel
<1 android.app.Dialog
<1 android.content.Intent
<1 android.app.Fragment
<1 android.graphics.Paint
<1 dalvik.bytecode.Opcodes
<1 android.view.KeyEvent
<1 java.lang.Character.UnicodeBlock
<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%.