API Change Statistics

The overall difference between API Levels 23.0.0 and 23.1.0 is approximately 1.81%.


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 17 0 17
Classes and Interfaces 20 64 0 84
Constructors 5 0 3 8
Methods 117 6 28 151
Fields 64 0 5 69
Total 206 87 36 329

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
25 android.support.v4.content.res
12 android.support.customtabs
12 android.support.design.widget
9 android.support.v17.leanback.app
5 android.support.v17.leanback.widget
3 android.support.v4.media.session
3 android.support.v7.media
3 android.support.v4.content
2 android.support.v4.widget
2 android.support.v7.appcompat
2 android.support.v7.graphics
1 android.support.v7.graphics.drawable
1 android.support.v14.preference
<1 android.support.v4.app
<1 android.support.v7.preference
<1 android.support.percent
<1 android.support.v4.view

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.support.v17.leanback.widget.FragmentAnimationProvider
36 android.support.v17.leanback.widget.GuidanceStylist
33 android.support.customtabs.CustomTabsSession
33 android.support.customtabs.CustomTabsSessionToken
33 android.support.design.widget.AppBarLayout.Behavior.SavedState
33 android.support.design.widget.CoordinatorLayout.SavedState
29 android.support.v17.leanback.app.GuidedStepFragment
25 android.support.design.widget.NavigationView.SavedState
25 android.support.v4.content.res.ResourcesCompat
25 android.support.v4.widget.TextViewCompat
23 android.support.v17.leanback.widget.GuidedActionsStylist
21 android.support.v17.leanback.app.VerticalGridFragment
21 android.support.v17.leanback.app.VerticalGridSupportFragment
18 android.support.v17.leanback.app.DetailsFragment
18 android.support.v17.leanback.app.DetailsSupportFragment
17 android.support.v17.leanback.widget.GuidedAction
14 android.support.design.widget.AppBarLayout.ScrollingViewBehavior
14 android.support.design.widget.FloatingActionButton
14 android.support.v14.preference.EditTextPreferenceDialogFragment
14 android.support.v7.preference.EditTextPreferenceDialogFragmentCompat
13 android.support.v7.media.MediaRouteDescriptor.Builder
13 android.support.v17.leanback.widget.ImageCardView
13 android.support.design.widget.AppBarLayout.Behavior
12 android.support.customtabs.CustomTabsCallback
12 android.support.design.widget.TextInputLayout
12 android.support.v7.media.MediaRouteDescriptor
12 android.support.v17.leanback.app.BrowseFragment
12 android.support.v17.leanback.app.BrowseSupportFragment
11 android.support.v7.media.MediaRouter.RouteInfo
11 android.support.design.widget.CollapsingToolbarLayout
11 android.support.design.widget.FloatingActionButton.Behavior
11 android.support.v7.graphics.Palette.Builder
9 android.support.customtabs.CustomTabsIntent.Builder
8 android.support.v17.leanback.widget.VerticalGridPresenter
7 android.support.v17.leanback.widget.ShadowOverlayContainer
7 android.support.v7.appcompat.R.dimen
7 android.support.v17.leanback.app.PlaybackOverlayFragment
7 android.support.v17.leanback.app.PlaybackOverlaySupportFragment
6 android.support.v17.leanback.widget.GuidedAction.Builder
6 android.support.v17.leanback.widget.ListRowPresenter
5 android.support.customtabs.CustomTabsIntent
5 android.support.v17.leanback.widget.GuidedActionsStylist.ViewHolder
5 android.support.v4.app.FragmentActivity
5 android.support.v7.appcompat.R.bool
5 android.support.v7.appcompat.R.drawable
5 android.support.customtabs.CustomTabsService
5 android.support.v7.appcompat.R.string
3 android.support.percent.PercentLayoutHelper.PercentLayoutInfo
3 android.support.v4.view.ViewCompat
3 android.support.design.widget.AppBarLayout.LayoutParams
3 android.support.v17.leanback.widget.SearchBar
2 android.support.v17.leanback.app.SearchFragment
2 android.support.v17.leanback.app.SearchSupportFragment
2 android.support.v4.widget.NestedScrollView
2 android.support.v4.widget.ScrollerCompat
2 android.support.design.widget.Snackbar
1 android.support.v4.media.session.MediaSessionCompat
1 android.support.v7.graphics.drawable.DrawerArrowDrawable
1 android.support.v7.appcompat.R.id
1 android.support.v17.leanback.widget.RowPresenter
1 android.support.v7.appcompat.R.layout
1 android.support.v7.appcompat.R.style
1 android.support.v7.appcompat.R.styleable
<1 android.support.v7.appcompat.R.attr

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