Please note that the contents of this offline web site may be out of date. To access the most recent documentation visit the online version .
Note that links that point to online resources are green in color and will open in a new window.
We would love it if you could give us feedback about this material by filling this form (You have to be online to fill it)

API Change Statistics

The overall difference between API Levels 15 and 16 is approximately 2.52% .


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 4 39 0 43
Classes and Interfaces 57 211 0 268
Constructors 12 22 4 38
Methods 381 151 20 552
Fields 171 46 4 221
Total 625 469 28 1122

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
34 android.accessibilityservice
23 android.media
20 android.renderscript
17 android.view.textservice
16 android.net.wifi.p2p
12 android.view.accessibility
11 junit.framework
10 android.nfc
7 android.database.sqlite
7 android.appwidget
7 android.media.audiofx
6 android.animation
5 android.app
4 android.drm
4 android.database
4 android.view
3 android.os
3 android.test
2 android.service.textservice
2 android.webkit
2 android.hardware
2 android.content
1 android.security
1 android.graphics
1 junit.runner
1 android.widget
1 android.util
1 android.content.pm
<1 android.nfc.tech
<1 android.provider
<1 android.speech
<1 android.net
<1 android.text
<1 android.content.res
<1 android.test.mock
<1 android.graphics.drawable
<1 android
<1 android.view.inputmethod
<1 android.bluetooth

* See Calculation of Change Percentages , below.


Changed Classes and Interfaces , Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.renderscript.ProgramVertex
100 android.renderscript.ProgramVertexFixedFunction
77 android.renderscript.Mesh.Builder
75 android.os.Vibrator
70 android.renderscript.Font
66 android.renderscript.FileA3D
66 android.renderscript.RenderScriptGL.SurfaceConfig
62 android.renderscript.ProgramRaster
60 android.accessibilityservice.AccessibilityService
59 android.renderscript.Mesh.TriangleMeshBuilder
59 android.renderscript.RSSurfaceView
58 android.renderscript.RSTextureView
52 android.renderscript.ProgramStore
50 android.drm.DrmStore
50 android.graphics.AvoidXfermode
50 android.graphics.PixelXorXfermode
50 android.renderscript.FileA3D.IndexEntry
50 android.renderscript.Mesh
50 android.renderscript.Mesh.AllocationBuilder
50 android.renderscript.ProgramFragment.Builder
50 android.renderscript.ProgramFragmentFixedFunction.Builder
50 android.renderscript.ProgramRaster.Builder
50 android.renderscript.ProgramVertex.Builder
50 android.renderscript.ProgramVertexFixedFunction.Builder
50 android.renderscript.ProgramVertexFixedFunction.Constants
50 android.renderscript.RenderScriptGL
50 android.test.ComparisonFailure
50 android.view.ViewDebug
50 junit.framework.ComparisonFailure
46 android.view.ActionProvider
45 android.renderscript.Program
44 android.database.ContentObservable
40 android.database.ContentObserver
40 android.database.sqlite.SQLiteProgram
38 android.widget.CalendarView
35 android.widget.Switch
33 android.view.textservice.SpellCheckerSession
33 android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener
33 android.webkit.JsResult
31 junit.framework.TestSuite
29 android.renderscript.Sampler
29 android.widget.Spinner
26 android.net.wifi.p2p.WifiP2pManager
25 android.app.KeyguardManager
25 android.renderscript.FileA3D.EntryType
25 android.renderscript.Font.Style
25 android.renderscript.Mesh.Primitive
25 android.renderscript.ProgramFragmentFixedFunction.Builder.EnvMode
25 android.renderscript.ProgramFragmentFixedFunction.Builder.Format
25 android.renderscript.ProgramRaster.CullMode
25 android.test.AssertionFailedError
25 android.view.ViewDebug.HierarchyTraceType
25 android.view.ViewDebug.RecyclerTraceType
25 junit.framework.AssertionFailedError
23 android.content.ClipData.Item
23 android.content.AsyncTaskLoader
23 android.content.ComponentCallbacks2
23 android.database.sqlite.SQLiteClosable
22 android.view.accessibility.AccessibilityNodeInfo
21 android.provider.UserDictionary.Words
20 android.appwidget.AppWidgetManager
20 android.database.SQLException
20 android.database.sqlite.SQLiteException
20 android.media.MediaRecorder.AudioEncoder
20 android.nfc.FormatException
17 android.animation.LayoutTransition
16 android.view.ViewTreeObserver
16 android.widget.ImageView
15 android.media.MediaRecorder.OutputFormat
14 android.provider.ContactsContract.PhoneLookupColumns
14 android.test.InstrumentationTestSuite
14 android.text.Html
13 android.widget.GridView
13 android.content.pm.PermissionInfo
13 android.drm.DrmSupportInfo
12 android.app.Notification.Builder
12 android.graphics.SurfaceTexture
12 android.nfc.NdefMessage
12 android.provider.MediaStore.MediaColumns
12 android.nfc.NdefRecord
11 android.nfc.NfcAdapter
11 android.media.MediaPlayer
11 android.graphics.Camera
11 android.provider.CalendarContract
11 android.view.View.AccessibilityDelegate
11 android.view.textservice.SpellCheckerSubtype
11 android.widget.CheckedTextView
10 android.view.accessibility.AccessibilityEvent
10 android.drm.DrmStore.DrmObjectType
10 android.drm.DrmStore.Playback
10 android.drm.DrmStore.RightsStatus
9 android.content.Loader
9 android.app.Notification
9 android.appwidget.AppWidgetHostView
9 android.database.sqlite.SQLiteOpenHelper
9 android.view.ActionMode
9 android.view.InputEvent
9 android.view.ViewStub
8 android.graphics.PixelFormat
8 android.database.sqlite.SQLiteStatement
8 android.accessibilityservice.AccessibilityServiceInfo
8 android.database.sqlite.SQLiteDatabase
8 android.media.audiofx.Visualizer
7 android.renderscript.Element
7 android.appwidget.AppWidgetProvider
7 android.provider.ContactsContract.DataUsageFeedback
7 android.webkit.GeolocationPermissions
7 android.renderscript.Allocation
7 android.content.ClipData
7 android.webkit.WebIconDatabase
7 android.widget.SearchView
6 android.net.SSLCertificateSocketFactory
6 android.nfc.tech.IsoDep
6 android.webkit.WebStorage
6 android.content.pm.PackageInfo
6 android.widget.TextView
5 android.app.ActivityManager.MemoryInfo
5 android.content.pm.ServiceInfo
5 android.graphics.drawable.GradientDrawable
5 android.os.TokenWatcher
5 android.provider.CalendarContract.RemindersColumns
5 android.renderscript.Program.BaseProgramBuilder
5 android.security.KeyChain
5 android.service.textservice.SpellCheckerService.Session
5 android.widget.AbsSeekBar
5 android.widget.AdapterViewFlipper
5 android.view.View
5 android.drm.DrmStore.Action
5 junit.framework.Assert
5 android.provider.ContactsContract.CommonDataKinds.Phone
5 android.view.KeyCharacterMap
5 android.view.ViewPropertyAnimator
5 android.widget.RemoteViews
5 junit.runner.BaseTestRunner
4 android.media.AudioManager
4 android.provider.CalendarContract.AttendeesColumns
4 android.view.ViewParent
4 android.widget.FrameLayout
4 junit.framework.TestResult
4 android.app.Activity
4 android.webkit.CookieManager
4 android.app.ActivityManager
4 android.app.PendingIntent
4 android.graphics.Canvas
4 android.os.StrictMode.VmPolicy.Builder
4 android.view.Display
4 android.app.WallpaperManager
4 android.webkit.WebView.HitTestResult
4 android.renderscript.Script
3 android.content.ContentProviderClient
3 android.widget.Gallery
3 android.content.ClipDescription
3 android.view.InputDevice
3 android.net.ConnectivityManager
3 android.media.AudioRecord
3 android.speech.RecognizerIntent
3 android.provider.ContactsContract.Contacts
3 android.util.DisplayMetrics
2 android.os.Build.VERSION_CODES
2 android.widget.GridLayout
2 android.media.MediaRecorder
2 android.Manifest.permission
2 android.database.sqlite.SQLiteQueryBuilder
2 android.provider.CalendarContract.EventsColumns
2 android.view.TextureView
2 android.content.Context
2 android.app.DownloadManager.Request
2 android.content.ContentResolver
2 android.webkit.WebView
2 android.content.res.Resources
2 android.app.ActivityManager.RunningAppProcessInfo
2 android.app.SearchManager
2 android.os.ParcelFileDescriptor
1 android.test.mock.MockContext
1 android.webkit.WebSettings
1 android.widget.RelativeLayout
1 android.content.ContextWrapper
1 android.content.res.Configuration
1 android.database.AbstractCursor
1 android.widget.AdapterViewAnimator
1 android.content.Intent
1 android.widget.LinearLayout
1 android.content.ContentProvider
1 android.os.Process
1 android.drm.DrmManagerClient
1 android.database.CursorWindow
1 android.view.Gravity
1 android.app.Fragment
1 android.hardware.Camera
1 android.view.KeyEvent
1 android.view.inputmethod.EditorInfo
1 android.provider.Settings
1 android.net.Uri
1 android.view.inputmethod.InputMethodManager
1 android.database.Cursor
1 android.widget.AutoCompleteTextView
1 android.view.accessibility.AccessibilityRecord
1 android.bluetooth.BluetoothAdapter
1 android.graphics.Paint
<1 android.content.pm.ActivityInfo
<1 android.view.ViewGroup
<1 android.provider.Settings.Secure
<1 android.hardware.SensorManager
<1 android.R.attr
<1 android.media.ToneGenerator
<1 android.R.style
<1 android.provider.Settings.System
<1 android.content.pm.PackageManager
<1 android.database.sqlite.SQLiteQuery
<1 android.renderscript.ProgramFragment
<1 android.renderscript.ProgramFragmentFixedFunction

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