API Change Statistics

The overall difference between API Levels p-dp1 and p-dp2 is approximately 2.76%.


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 49 1 52
Classes and Interfaces 51 191 42 284
Constructors 11 9 11 31
Methods 238 110 134 482
Fields 135 107 69 311
Total 437 466 257 1160

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
54 android.view.textclassifier
48 android.hardware.fingerprint
37 android.telephony.data
36 android.app.slice
34 android.se.omapi
23 android.net.wifi.rtt
19 android.security
18 android.media.audiofx
14 android.security.keystore
11 android.telephony.mbms
8 android.bluetooth
7 android.app.admin
7 android.telephony
7 android.app.usage
5 android.media
5 android.hardware.camera2.params
5 android.app.job
4 android.text
4 android.media.session
4 android.webkit
3 android.net.wifi
3 android.graphics
3 android.text.util
2 android.os.strictmode
2 android.net.http
2 android.service.autofill
2 android.telecom
2 android.net
1 android.hardware.camera2
1 android.app
1 android.content.pm
1 android.view.autofill
1 android.graphics.drawable
1 android.os
<1 android.service.media
<1 android.view
<1 android
<1 android.util
<1 android.service.notification
<1 android.inputmethodservice
<1 android.location
<1 android.provider
<1 android.app.assist
<1 android.text.style
<1 android.nfc
<1 android.widget
<1 android.database.sqlite
<1 android.content
<1 android.view.inputmethod

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.security.keystore.StrongBoxUnavailableException
100 android.telephony.AccessNetworkConstants
75 android.app.slice.SliceManager
70 android.security.ConfirmationCallback
60 android.view.textclassifier.TextClassifier.EntityConfig
59 android.net.wifi.WpsInfo
57 android.webkit.TracingConfig
55 android.bluetooth.BluetoothHidDeviceAppSdpSettings
54 android.view.textclassifier.TextClassifier
50 android.graphics.EmbossMaskFilter
50 android.graphics.ImageDecoder.OnPartialImageListener
50 android.hardware.fingerprint.FingerprintManager.AuthenticationResult
50 android.service.autofill.FieldClassification.Match
50 android.telephony.MbmsStreamingSession
47 android.graphics.ImageDecoder
45 android.view.textclassifier.TextClassification.Builder
44 android.bluetooth.BluetoothHidDeviceAppQosSettings
44 android.app.slice.Slice.Builder
37 android.telephony.data.ApnSetting
37 android.view.textclassifier.TextClassification
36 android.telephony.data.ApnSetting.Builder
33 android.net.IpSecManager.UdpEncapsulationSocket
33 android.view.textclassifier.TextClassificationManager
31 android.app.admin.SystemUpdatePolicy.ValidationFailedException
29 android.app.job.JobWorkItem
29 android.media.MediaDescrambler
28 android.telephony.CellIdentityTdscdma
27 android.view.DisplayCutout
27 android.webkit.TracingController
27 android.widget.Magnifier
25 android.net.NetworkRequest
25 android.telephony.CellIdentity
25 android.telephony.CellIdentityWcdma
25 android.telephony.SubscriptionPlan.Builder
25 android.telephony.mbms.DownloadRequest.Builder
25 android.view.textclassifier.TextSelection.Builder
24 android.net.wifi.rtt.RangingResult
23 android.telephony.CellIdentityGsm
23 android.telephony.CellIdentityLte
21 android.net.NetworkInfo
21 android.app.NotificationManager.Policy
21 android.graphics.drawable.AnimatedImageDrawable
20 android.graphics.drawable.Icon
18 android.app.Notification.Action.WearableExtender
18 android.app.slice.SliceProvider
18 android.app.usage.UsageEvents.Event
18 android.telephony.MbmsDownloadSession
18 android.media.Ringtone
18 android.telecom.Call.Callback
17 android.R.color
16 android.app.Notification.MessagingStyle
16 android.media.MicrophoneInfo.Coordinate3F
16 android.net.wifi.rtt.WifiRttManager
16 android.security.keystore.UserPresenceUnavailableException
15 android.app.Notification.WearableExtender
15 android.hardware.camera2.CameraManager
15 android.telephony.mbms.DownloadRequest
15 android.text.util.Linkify
15 android.app.Notification.MessagingStyle.Message
14 android.app.slice.Slice
14 android.graphics.ImageDecoder.ImageInfo
14 android.media.MediaTimestamp
14 android.net.http.X509TrustManagerExtensions
14 android.os.SystemClock
14 android.se.omapi.Channel
13 android.hardware.camera2.params.SessionConfiguration
12 android.hardware.camera2.CameraCaptureSession
12 android.service.autofill.DateTransformation
12 android.service.autofill.DateValueSanitizer
12 android.telephony.CellIdentityCdma
11 android.media.MicrophoneInfo
11 android.media.session.MediaSessionManager
11 android.telephony.mbms.MbmsErrors
11 android.text.style.TypefaceSpan
11 android.view.textclassifier.TextSelection
10 android.app.usage.NetworkStatsManager
10 android.telephony.NetworkScan
10 android.media.MediaDrm
10 android.hardware.fingerprint.FingerprintManager.AuthenticationCallback
10 android.os.Build.VERSION
10 android.se.omapi.Reader
10 android.se.omapi.SEService
8 android.content.pm.PermissionInfo
8 android.hardware.fingerprint.FingerprintManager.CryptoObject
8 android.net.wifi.WifiConfiguration.KeyMgmt
7 android.app.RemoteAction
7 android.telephony.AccessNetworkConstants.AccessNetworkType
7 android.location.GnssMeasurement
7 android.os.StrictMode.VmPolicy.Builder
7 android.app.UiAutomation
7 android.app.admin.SystemUpdatePolicy
6 android.telephony.mbms.StreamingService
6 android.inputmethodservice.InputMethodService
6 android.app.job.JobInfo.Builder
6 android.app.usage.UsageStatsManager
6 android.security.keystore.KeyProtection
6 android.telephony.ServiceState
6 android.net.ConnectivityManager
6 android.app.job.JobInfo
5 android.media.AudioTrack.Builder
5 android.security.keystore.KeyGenParameterSpec
5 android.security.keystore.KeyGenParameterSpec.Builder
5 android.security.keystore.KeyProtection.Builder
5 android.hardware.camera2.CameraDevice
5 android.se.omapi.Session
5 android.media.MediaMetadataRetriever
5 android.content.ClipboardManager
5 android.content.pm.LauncherApps.Callback
5 android.media.Image
5 android.service.autofill.UserData
5 android.view.autofill.AutofillManager
5 android.app.ActivityOptions
5 android.graphics.Movie
4 android.app.Application
4 android.view.textclassifier.TextLinks
4 android.app.admin.DevicePolicyManager
4 android.app.slice.SliceItem
4 android.os.UserManager
4 android.app.admin.SecurityLog
4 android.net.NetworkCapabilities
4 android.net.wifi.WifiManager
4 android.net.TrafficStats
4 android.hardware.camera2.CaptureResult
4 android.media.MediaFormat
4 android.net.Network
3 android.telephony.SubscriptionManager
3 android.service.media.MediaBrowserService
3 android.app.usage.NetworkStats.Bucket
3 android.telephony.AccessNetworkConstants.GeranBand
3 android.media.MediaPlayer
3 android.telephony.TelephonyManager
3 android.database.sqlite.SQLiteOpenHelper
3 android.service.notification.NotificationListenerService.Ranking
3 android.telephony.SubscriptionInfo
3 android.telecom.InCallService
2 android.graphics.Canvas
2 android.media.AudioDeviceInfo
2 android.telephony.SubscriptionPlan
2 android.os.Handler
2 android.content.pm.PackageInfo
2 android.graphics.Typeface
2 android.nfc.NfcAdapter
2 android.telephony.AccessNetworkConstants.UtranBand
2 android.telephony.CarrierConfigManager
2 android.media.session.MediaSession
2 android.telecom.TelecomManager
2 android.util.AttributeSet
2 android.app.Notification.Builder
2 android.hardware.camera2.CameraCharacteristics
2 android.telecom.Conference
2 android.app.WallpaperManager
2 android.os.StrictMode.ThreadPolicy.Builder
2 android.app.Notification.Action
2 android.app.admin.DeviceAdminInfo
2 android.content.pm.LauncherApps
2 android.telecom.Call.Details
1 android.R.style
1 android.view.inputmethod.InputConnection
1 android.bluetooth.BluetoothHidDevice
1 android.service.notification.NotificationListenerService
1 android.os.BatteryManager
1 android.os.Process
1 android.Manifest.permission
1 android.webkit.WebView
1 android.media.audiofx.AudioEffect
1 android.view.ViewConfiguration
1 android.app.ActivityManager
1 android.media.AudioTrack
1 android.telephony.AccessNetworkConstants.EutranBand
1 android.app.admin.DeviceAdminReceiver
<1 android.hardware.camera2.CameraMetadata
<1 android.provider.CallLog.Calls
<1 android.view.ViewStructure
<1 android.location.LocationManager
<1 android.widget.TextView
<1 android.telecom.Connection
<1 android.app.assist.AssistStructure.ViewNode
<1 android.view.View
<1 android.hardware.camera2.CaptureRequest
<1 android.view.WindowManager.LayoutParams
<1 android.provider.Settings.Secure
<1 android.provider.Settings
<1 android.content.pm.PackageManager
<1 android.media.MediaCodecInfo.CodecProfileLevel
<1 android.graphics.Paint
<1 android.app.Notification
<1 android.content.Intent
<1 android.media.AudioManager
<1 android.content.Context
<1 android.app.Activity
<1 android.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%.