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: | 19
From Level: | 18
Generated | 2013.10.29 16:44

Top of Report

# API Change Statistics

The overall difference between API Levels 18 and 19 is approximately 2.63%.

## 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 | 6 | 48 | 0 | 54
Classes and Interfaces | 78 | 180 | 0 | 258
Constructors | 20 | 3 | 0 | 23
Methods | 268 | 26 | 5 | 299
Fields | 391 | 6 | 0 | 397
Total | 763 | 263 | 5 | 1031

## Changed Packages, Sorted by Percentage Difference

Percentage Difference* | Package
--- | ---
36 | android.view.accessibility
30 | android.hardware.display
8 | android.media
7 | android.provider
6 | android.hardware
5 | android.nfc
4 | android.security
4 | android.location
4 | android.media.audiofx
4 | java.nio.charset
4 | android.content.res
4 | android.view.inputmethod
3 | android.animation
3 | java.lang
3 | javax.crypto.spec
2 | android.content
2 | java.util.zip
2 | javax.crypto
2 | android.app
2 | android.bluetooth
2 | android.util
2 | android.os
1 | android.renderscript
1 | android.graphics
1 | android.webkit
1 | android.database
1 | java.util
1 | java.lang.reflect
1 | java.io
<1 | android.graphics.drawable
<1 | org.json
<1 | android.speech.tts
<1 | android.view
<1 | android.content.pm
<1 | android.net
<1 | android.test.mock
<1 | java.net
<1 | java.nio.channels
<1 | android.widget
<1 | android
<1 | android.net.wifi
<1 | android.text.method
<1 | java.nio
<1 | android.opengl
<1 | android.preference
<1 | java.util.logging
<1 | android.telephony
<1 | java.sql

* See Calculation of Change Percentages, below.

## Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage Difference* | Class or Interface
--- | ---
50 | android.content.res.XmlResourceParser
50 | android.media.RemoteControlClient.MetadataEditor
50 | android.webkit.WebStorage.QuotaUpdater
50 | java.io.Closeable
42 | android.media.MediaCodec.CryptoException
40 | android.bluetooth.BluetoothAssignedNumbers
36 | android.provider.AlarmClock
33 | android.database.MatrixCursor.RowBuilder
33 | java.util.ConcurrentModificationException
26 | android.renderscript.ScriptIntrinsicColorMatrix
25 | android.graphics.SurfaceTexture.OutOfResourcesException
25 | android.hardware.display.DisplayManager
25 | android.view.Surface.OutOfResourcesException
25 | java.lang.IllegalAccessException
25 | java.lang.InstantiationException
25 | java.lang.NoSuchFieldException
25 | java.lang.NoSuchMethodException
25 | java.util.zip.GZIPOutputStream
24 | java.lang.Character.UnicodeBlock
20 | android.view.ViewParent
20 | java.lang.LinkageError
20 | java.util.Currency
17 | android.security.KeyPairGeneratorSpec
17 | java.util.zip.DeflaterOutputStream
17 | android.nfc.NfcAdapter
17 | android.os.ParcelFileDescriptor
17 | android.os.Debug.MemoryInfo
16 | android.app.Notification
16 | android.animation.AnimatorListenerAdapter
16 | android.view.inputmethod.InputMethodSubtype
15 | android.security.KeyPairGeneratorSpec.Builder
15 | android.graphics.NinePatch
14 | android.content.ContentProviderClient
13 | java.util.BitSet
13 | android.media.MediaFormat
12 | java.lang.ClassNotFoundException
12 | java.lang.reflect.InvocationTargetException
11 | android.animation.Animator
11 | android.view.accessibility.AccessibilityNodeProvider
11 | android.widget.PopupMenu
10 | android.provider.CallLog.Calls
10 | android.bluetooth.BluetoothDevice
10 | android.graphics.SurfaceTexture
10 | android.view.accessibility.AccessibilityManager
9 | android.view.ScaleGestureDetector
9 | java.lang.Throwable
9 | android.view.accessibility.AccessibilityNodeInfo
9 | android.app.Notification.BigTextStyle
9 | android.app.Notification.InboxStyle
8 | android.content.ContentProvider
8 | android.hardware.Sensor
8 | java.lang.reflect.Modifier
8 | android.media.audiofx.Visualizer
8 | java.io.FileInputStream
8 | java.io.ObjectOutput
7 | android.app.ActivityManager
7 | android.app.Notification.BigPictureStyle
7 | android.widget.FrameLayout.LayoutParams
7 | android.app.WallpaperManager
7 | android.content.ContentResolver
7 | android.content.res.AssetFileDescriptor
7 | android.net.LocalSocket
7 | java.io.ObjectInput
6 | android.media.MediaMuxer
6 | java.util.zip.Deflater
6 | android.app.AlarmManager
6 | android.app.Notification.Style
6 | java.io.FileOutputStream
6 | android.view.accessibility.AccessibilityEvent
5 | android.graphics.drawable.ColorDrawable
5 | android.media.MediaCodec
5 | android.media.MediaPlayer.TrackInfo
5 | android.media.MediaRecorder.AudioSource
5 | android.speech.tts.SynthesisRequest
5 | android.widget.LinearLayout.LayoutParams
5 | java.lang.AssertionError
5 | java.net.NetworkInterface
5 | android.graphics.Bitmap
5 | android.bluetooth.BluetoothGatt
5 | android.graphics.ImageFormat
5 | android.graphics.drawable.InsetDrawable
5 | android.os.Environment
5 | java.nio.channels.FileLock
5 | android.provider.Settings.Secure
5 | android.net.DhcpInfo
5 | android.view.Display
5 | javax.crypto.CipherSpi
4 | android.content.pm.ComponentInfo
4 | android.widget.RelativeLayout.LayoutParams
4 | java.net.InetSocketAddress
4 | android.bluetooth.BluetoothHeadset
4 | java.nio.channels.Selector
4 | android.content.IntentFilter
4 | android.graphics.PixelFormat
4 | java.util.zip.ZipFile
4 | android.media.RingtoneManager
4 | android.view.InputDevice
4 | android.webkit.WebChromeClient
4 | java.lang.Boolean
3 | android.Manifest.permission
3 | android.text.method.MetaKeyKeyListener
3 | android.media.RemoteControlClient
3 | android.provider.Settings
3 | javax.crypto.Cipher
3 | android.content.pm.ProviderInfo
3 | android.widget.ListView
2 | android.graphics.drawable.Drawable
2 | android.media.AudioTrack
2 | android.net.wifi.WifiManager
2 | android.util.SparseArray
2 | android.webkit.WebView
2 | java.lang.Character
2 | java.lang.Byte
2 | java.util.Collections
2 | android.opengl.Matrix
2 | android.util.DisplayMetrics
2 | java.lang.Short
2 | android.graphics.Path
2 | android.graphics.BitmapFactory.Options
2 | android.os.Build.VERSION_CODES
2 | org.json.JSONArray
2 | android.content.Context
2 | android.content.pm.ResolveInfo
2 | android.graphics.drawable.DrawableContainer.DrawableContainerState
2 | java.net.InetAddress
2 | java.net.ServerSocket
2 | android.os.UserManager
2 | android.webkit.WebSettings
2 | android.media.AudioManager
2 | android.media.MediaCodecInfo.CodecCapabilities
1 | android.view.Window
1 | android.content.pm.PackageManager
1 | android.widget.VideoView
1 | android.hardware.SensorManager
1 | android.widget.AbsListView
1 | android.widget.ListPopupWindow
1 | java.net.HttpURLConnection
1 | android.test.mock.MockContext
1 | android.view.View
1 | android.content.ContextWrapper
1 | android.graphics.drawable.BitmapDrawable
1 | java.lang.System
1 | android.view.WindowManager.LayoutParams
1 | android.app.Notification.Builder
1 | android.media.MediaDrm
1 | android.view.ViewPropertyAnimator
1 | java.nio.CharBuffer
1 | android.media.MediaPlayer
1 | java.net.DatagramSocket
1 | java.lang.Integer
1 | java.lang.Long
1 | android.telephony.TelephonyManager
1 | android.preference.PreferenceActivity
1 | android.media.audiofx.AudioEffect
1 | android.test.mock.MockCursor
1 | android.database.CursorWrapper
1 | android.location.LocationManager
1 | android.R.attr
1 | android.database.Cursor
1 | android.view.inputmethod.InputMethodManager
1 | org.json.JSONObject
1 | java.sql.Statement
1 | java.util.logging.Logger
1 | java.net.Socket
<1 | java.sql.Connection
<1 | android.widget.PopupWindow
<1 | android.content.Intent
<1 | android.view.ViewGroup
<1 | java.util.Scanner
<1 | android.renderscript.Allocation
<1 | android.test.mock.MockPackageManager
<1 | android.renderscript.Element
<1 | android.preference.Preference
<1 | android.content.res.Configuration
<1 | android.graphics.Paint
<1 | android.R.style
<1 | android.view.MotionEvent
<1 | android.app.Activity
<1 | java.sql.ResultSet
<1 | android.view.KeyEvent

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