API Change Statistics

The overall difference between API Levels 24.1.0 and 24.2.0 is approximately 8.39%.


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 2 22 3 27
Classes and Interfaces 64 63 0 127
Constructors 1 2 0 3
Methods 80 25 7 112
Fields 38 3 1 42
Total 185 115 11 311

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
37 android.support.v7.widget
33 android.support.v7.content.res
32 android.support.v7.util
19 android.support.v4.view.accessibility
12 android.support.v7.app
5 android.support.v4.widget
4 android.support.v4.accessibilityservice
4 android.support.customtabs
3 android.support.v4.util
3 android.support.v4.os
2 android.support.v4.media.session
2 android.support.v4.app
2 android.support.design.widget
2 android.support.v4.media
1 android.support.v7.preference
1 android.support.v4.view
1 android.support.v17.preference
<1 android.support.v4.graphics.drawable
<1 android.support.v7.graphics
<1 android.support.v17.leanback.widget
<1 android.support.v14.preference
<1 android.support.v4.content

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
60 android.support.v4.app.ServiceCompat
38 android.support.design.widget.FloatingActionButton.Behavior
33 android.support.v4.app.ActivityOptionsCompat
33 android.support.v4.os.BuildCompat
33 android.support.v4.view.accessibility.AccessibilityManagerCompat
33 android.support.v4.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListenerCompat
33 android.support.v7.content.res.AppCompatResources
28 android.support.customtabs.CustomTabsSession
28 android.support.v7.util.SortedList.Callback
25 android.support.v4.media.session.MediaButtonReceiver
25 android.support.v4.view.ViewConfigurationCompat
25 android.support.v4.widget.SearchViewCompat.OnCloseListenerCompat
23 android.support.v4.media.MediaDescriptionCompat
20 android.support.v4.view.KeyEventCompat
18 android.support.v17.leanback.widget.AbstractMediaItemPresenter
18 android.support.design.widget.TextInputLayout
17 android.support.v17.leanback.widget.AbstractMediaItemPresenter.ViewHolder
16 android.support.v4.widget.SearchViewCompat.OnQueryTextListenerCompat
15 android.support.v4.media.session.MediaSessionCompat.QueueItem
13 android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.AccessibilityActionCompat
12 android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionInfoCompat
11 android.support.v4.view.accessibility.AccessibilityEventCompat
11 android.support.design.widget.AppBarLayout.ScrollingViewBehavior
10 android.support.v17.preference.LeanbackSettingsFragment
9 android.support.design.widget.CoordinatorLayout.Behavior
8 android.support.design.widget.CoordinatorLayout.LayoutParams
8 android.support.v4.media.MediaBrowserCompat.MediaItem
7 android.support.v4.media.MediaBrowserServiceCompat.BrowserRoot
7 android.support.v4.widget.TextViewCompat
7 android.support.v4.app.ActivityCompat
6 android.support.v4.app.SharedElementCallback
6 android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.CollectionItemInfoCompat
6 android.support.v4.view.accessibility.AccessibilityNodeInfoCompat.RangeInfoCompat
6 android.support.v4.view.accessibility.AccessibilityNodeProviderCompat
6 android.support.v4.widget.SearchViewCompat
6 android.support.v7.app.ActionBarDrawerToggle
5 android.support.customtabs.CustomTabsIntent
4 android.support.v4.accessibilityservice.AccessibilityServiceInfoCompat
4 android.support.v4.view.MotionEventCompat
4 android.support.v7.graphics.Palette
4 android.support.v7.widget.StaggeredGridLayoutManager
3 android.support.v4.media.session.MediaSessionCompat
3 android.support.v4.content.ContextCompat
3 android.support.customtabs.CustomTabsIntent.Builder
2 android.support.design.widget.BottomSheetBehavior
2 android.support.design.widget.CoordinatorLayout
2 android.support.v4.graphics.drawable.DrawableCompat
2 android.support.v4.view.WindowInsetsCompat
2 android.support.v14.preference.PreferenceFragment
2 android.support.v4.view.accessibility.AccessibilityWindowInfoCompat
2 android.support.v4.view.ViewCompat
2 android.support.design.widget.CollapsingToolbarLayout
2 android.support.v17.leanback.widget.ObjectAdapter
2 android.support.v4.media.MediaMetadataCompat
2 android.support.v7.widget.LinearSmoothScroller
2 android.support.v4.widget.SwipeRefreshLayout
1 android.support.v7.widget.LinearLayoutManager
1 android.support.v4.view.accessibility.AccessibilityNodeInfoCompat
1 android.support.design.widget.TabLayout
1 android.support.v4.app.FragmentController
1 android.support.v7.app.AppCompatDelegate
1 android.support.v7.widget.RecyclerView
1 android.support.v4.media.session.PlaybackStateCompat

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