API Change Statistics

The overall difference between API Levels 17 and 18 is approximately 1.64%.


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 37 0 39
Classes and Interfaces 61 108 36 205
Constructors 4 1 0 5
Methods 155 44 4 203
Fields 131 25 1 157
Total 353 215 41 609

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
42 android.security
25 android.renderscript
22 android.bluetooth
10 android.net.wifi
9 android.media
8 android.accessibilityservice
8 android.speech.tts
7 android.text.format
6 android.telephony
5 android.hardware
4 android.text
3 android.opengl
3 android.os
3 android.view
2 android.animation
2 android.test.mock
2 android.app
2 android.webkit
1 android.provider
1 android.nfc
1 android.hardware.usb
1 android.util
1 android.view.accessibility
<1 android.text.style
<1 android.net
<1 android.accounts
<1 android.content
<1 android.net.wifi.p2p
<1 android.media.audiofx
<1 android.graphics.drawable
<1 android.content.pm
<1 android.app.admin
<1 android
<1 android.widget
<1 android.graphics
<1 android.test
<1 android.location

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
57 android.os.StatFs
53 android.os.UserManager
50 android.os.MessageQueue
50 android.speech.tts.TextToSpeech.OnUtteranceCompletedListener
50 android.webkit.WebIconDatabase.IconListener
38 android.text.style.EasyEditSpan
29 android.text.format.DateFormat
22 android.renderscript.FieldPacker
20 android.test.mock.MockContentResolver
19 android.speech.tts.TextToSpeech.Engine
18 android.renderscript.Script
17 android.media.MediaExtractor
15 android.accessibilityservice.AccessibilityServiceInfo
14 android.nfc.NfcAdapter
14 android.provider.ContactsContract.Data
14 android.renderscript.Type.Builder
14 android.webkit.WebViewDatabase
13 android.net.TrafficStats
12 android.view.InputDevice.MotionRange
12 android.media.audiofx.AudioEffect
12 android.renderscript.Sampler
11 android.app.Application
11 android.graphics.Picture
10 android.media.MediaRouter
10 android.view.ViewTreeObserver
10 android.hardware.usb.UsbDeviceConnection
10 android.security.KeyChain
9 android.accounts.AbstractAccountAuthenticator
9 android.bluetooth.BluetoothDevice
9 android.graphics.drawable.BitmapDrawable
9 android.renderscript.RenderScript
8 android.hardware.Sensor
8 android.media.RemoteControlClient
8 android.widget.QuickContactBadge
8 android.widget.TextClock
8 android.view.accessibility.AccessibilityNodeInfo
7 android.bluetooth.BluetoothProfile
7 android.net.wifi.p2p.WifiP2pDeviceList
7 android.os.HandlerThread
7 android.provider.CalendarContract.SyncColumns
7 android.view.InputEvent
7 android.webkit.WebIconDatabase
7 android.webkit.WebStorage
6 android.media.MediaCodec
6 android.renderscript.Type
6 android.telephony.CellIdentityGsm
6 android.webkit.WebSettings
5 android.provider.ContactsContract.ContactsColumns
5 android.provider.ContactsContract.Intents
5 android.net.DhcpInfo
4 android.os.Looper
4 android.widget.MediaController.MediaPlayerControl
4 android.media.MediaRouter.RouteInfo
4 android.animation.ObjectAnimator
4 android.content.pm.ActivityInfo
4 android.os.StrictMode.VmPolicy.Builder
4 android.webkit.WebChromeClient
3 android.media.MediaRouter.UserRouteInfo
3 android.content.Loader
3 android.app.ActionBar
3 android.test.InstrumentationTestRunner
3 android.media.MediaCodecInfo.CodecProfileLevel
3 android.net.wifi.WifiManager
2 android.bluetooth.BluetoothAdapter
2 android.net.wifi.WifiConfiguration
2 android.widget.ExpandableListView
2 android.speech.tts.TextToSpeech
2 android.util.DisplayMetrics
2 android.animation.Animator
2 android.net.wifi.p2p.WifiP2pManager
2 android.os.Build.VERSION_CODES
2 android.provider.Settings
2 android.view.WindowManager.LayoutParams
2 android.content.pm.PackageManager
2 android.renderscript.Allocation
2 android.view.InputDevice
2 android.view.ViewGroup
2 android.widget.VideoView
1 android.webkit.WebView
1 android.accounts.AccountManager
1 android.content.ContentProvider
1 android.net.ConnectivityManager
1 android.Manifest.permission_group
1 android.os.Process
1 android.view.ViewPropertyAnimator
1 android.Manifest.permission
1 android.accessibilityservice.AccessibilityService
1 android.os.Debug
1 android.telephony.TelephonyManager
1 android.animation.ValueAnimator
1 android.hardware.SensorManager
1 android.location.Location
1 android.os.Bundle
1 android.media.MediaCodecInfo.CodecCapabilities
1 android.content.Intent
1 android.graphics.Paint
<1 android.media.AudioManager
<1 android.app.Instrumentation
<1 android.app.Activity
<1 android.app.admin.DevicePolicyManager
<1 android.test.mock.MockPackageManager
<1 android.R.attr
<1 android.view.View
<1 android.R.style
<1 android.content.Context
<1 android.view.KeyEvent
<1 android.opengl.GLES20
<1 android.provider.ContactsContract.DataColumnsWithJoins

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