API Change Statistics

The overall difference between API Levels 37.1 and c-2-beta2 is approximately 0.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 3 21 0 24
Classes and Interfaces 4 62 0 66
Constructors 0 26 0 26
Methods 31 57 1 89
Fields 44 8 0 52
Total 82 174 1 257

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
71 android.security.identity
9 android.app.usage
3 android.companion.virtual
2 android.media.metrics
2 android.security
1 java.nio.charset
<1 java.time.format
<1 android
<1 android.view
<1 android.telecom
<1 android.util
<1 android.hardware.display
<1 android.media.session
<1 android.media
<1 java.time.chrono
<1 java.time
<1 java.lang
<1 android.hardware.camera2.params
<1 android.app
<1 android.graphics
<1 android.content

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.security.identity.AlreadyPersonalizedException
100 android.security.identity.CipherSuiteNotSupportedException
100 android.security.identity.DocTypeNotSupportedException
100 android.security.identity.EphemeralPublicKeyNotFoundException
100 android.security.identity.IdentityCredentialException
100 android.security.identity.InvalidReaderSignatureException
100 android.security.identity.InvalidRequestMessageException
100 android.security.identity.MessageDecryptionException
100 android.security.identity.NoAuthenticationKeyAvailableException
100 android.security.identity.SessionTranscriptMismatchException
100 android.security.identity.UnknownAuthenticationKeyException
50 android.security.identity.AccessControlProfile.Builder
50 android.security.identity.AccessControlProfileId
50 android.security.identity.AuthenticationKeyMetadata
50 android.security.identity.CredentialDataRequest
50 android.security.identity.CredentialDataRequest.Builder
50 android.security.identity.CredentialDataResult
50 android.security.identity.CredentialDataResult.Entries
50 android.security.identity.PersonalizationData.Builder
50 android.security.identity.PresentationSession
50 android.security.identity.WritableIdentityCredential
50 android.view.InputDevice.ViewBehavior
43 android.security.identity.IdentityCredentialStore
27 android.security.identity.IdentityCredential
20 android.media.MediaParser.SeekMap
20 android.media.metrics.RecordingSession
20 android.media.metrics.TranscodingSession
20 java.nio.charset.StandardCharsets
14 android.media.metrics.EditingSession
11 android.companion.virtual.VirtualDeviceManager
7 android.R.color
6 android.media.metrics.PlaybackSession
5 android.telecom.CallScreeningService.CallResponse.Builder
5 android.app.TaskInfo
4 android.telecom.CallScreeningService.CallResponse
4 java.lang.Process
3 android.util.SparseLongArray
3 android.util.SparseBooleanArray
3 android.util.SparseIntArray
2 android.util.LongSparseArray
2 android.app.usage.UsageStatsManager
2 java.nio.charset.Charset
2 java.time.format.DateTimeFormatterBuilder
2 android.graphics.ImageDecoder
2 android.util.SparseArray
1 android.media.session.MediaSession
1 java.time.chrono.Chronology
1 android.hardware.display.DisplayManager
1 android.app.ApplicationExitInfo
1 java.time.Instant
1 android.app.ActivityOptions
1 java.time.format.DateTimeFormatter
1 android.hardware.camera2.params.OutputConfiguration
<1 android.view.WindowManager.LayoutParams
<1 android.media.AudioFormat
<1 android.view.Window
<1 android.app.Activity
<1 android.content.Context
<1 android.Manifest.permission
<1 android.R.attr
<1 android.security.identity.AccessControlProfile
<1 android.security.identity.PersonalizationData

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