API Change Statistics

The overall difference between API Levels n-preview-3 and 24 is approximately 0.38%.


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 0 31 0 31
Classes and Interfaces 2 66 12 80
Constructors 1 4 4 9
Methods 70 39 104 213
Fields 48 53 43 144
Total 121 193 163 477

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
25 android.app.usage
12 android.nfc.cardemulation
7 android.content.pm
6 android.service.notification
2 android.test.mock
2 java.lang
1 android.icu.text
1 android.os.health
1 android.net
1 android.app
1 android.app.job
<1 android.util
<1 android.os
<1 android.view
<1 android.service.carrier
<1 android.telephony
<1 android.media.tv
<1 android.text.style
<1 android.media
<1 java.lang.reflect
<1 android.icu.util
<1 android
<1 android.provider
<1 android.telecom
<1 android.content.res
<1 android.view.inputmethod
<1 android.webkit
<1 android.app.admin
<1 android.graphics
<1 android.widget
<1 android.content

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
86 android.view.PointerIcon
79 java.lang.StringBuffer
79 java.lang.StringBuilder
62 android.nfc.cardemulation.NfcFCardEmulation
45 android.app.usage.NetworkStatsManager
44 java.lang.AbstractStringBuilder
33 android.app.Notification.DecoratedCustomViewStyle
33 android.app.Notification.DecoratedMediaCustomViewStyle
28 android.content.pm.LauncherApps
28 android.service.notification.NotificationListenerService.Ranking
25 android.app.Notification.MediaStyle
25 android.content.pm.ActivityInfo.WindowLayout
25 android.media.AudioManager.AudioRecordingCallback
20 android.app.Notification.BigTextStyle
20 android.app.Notification.InboxStyle
16 android.test.mock.MockContentResolver
15 android.text.style.LocaleSpan
14 android.app.Notification.BigPictureStyle
14 android.os.health.SystemHealthManager
12 android.telephony.TelephonyManager
11 android.app.NotificationManager
10 android.media.tv.TvInputInfo.Builder
8 android.provider.VoicemailContract
6 android.app.usage.NetworkStats.Bucket
6 android.app.job.JobInfo
5 android.content.pm.LauncherApps.Callback
5 android.test.mock.MockContentProvider
4 android.app.WallpaperManager
4 android.service.carrier.CarrierMessagingService
4 android.view.Display.HdrCapabilities
3 android.service.notification.ConditionProviderService
3 android.icu.util.Currency
3 android.provider.ContactsContract.Directory
3 android.icu.text.Collator
3 java.lang.reflect.Constructor
3 android.icu.text.BreakIterator
3 android.net.NetworkInfo
2 android.service.notification.NotificationListenerService
2 android.telephony.CarrierConfigManager
2 android.webkit.WebViewClient
2 android.telecom.Call.Details
2 android.R.attr
2 android.service.notification.Condition
1 android.app.UiAutomation
1 android.os.Build.VERSION_CODES
1 android.provider.Settings.Global
1 android.provider.VoicemailContract.Status
1 android.app.Notification.Builder
1 android.icu.text.NumberFormat
1 android.view.inputmethod.EditorInfo
1 android.media.AudioRecord
1 android.content.res.Configuration
<1 android.widget.TextView
<1 android.media.MediaCodecInfo.CodecProfileLevel
<1 android.app.Notification
<1 android.graphics.Paint
<1 android.app.Activity
<1 android.provider.Settings
<1 android.media.AudioTrack
<1 android.test.mock.MockContext
<1 android.app.Fragment
<1 android.view.View
<1 android.media.AudioManager
<1 android.content.Context
<1 android.app.admin.DevicePolicyManager
<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%.