Description: JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.
Keywords: diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet

Android Developers | Android.com

API Diff Specification
To Level: | 16
From Level: | 15
Generated | 2012.07.16 10:58

Top of Report

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