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: | 14
From Level: | 13
Generated | 2011.10.06 23:19

Top of Report

# API Change Statistics

The overall difference between API Levels 13 and 14 is approximately 3.95%.

## 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 | 5 | 48 | 0 | 53
Classes and Interfaces | 90 | 192 | 0 | 282
Constructors | 19 | 2 | 0 | 21
Methods | 285 | 94 | 29 | 408
Fields | 405 | 34 | 16 | 455
Total | 804 | 370 | 45 | 1219

## Changed Packages, Sorted by Percentage Difference

Percentage Difference* | Package
--- | ---
100 | dalvik.annotation
54 | android.view.accessibility
34 | android.speech.tts
34 | dalvik.system
20 | android.nfc
13 | android.accessibilityservice
12 | android.provider
11 | android.bluetooth
10 | android.nfc.tech
9 | android.hardware
7 | android.animation
7 | android.preference
7 | android.net.http
7 | android.app.backup
5 | android.renderscript
5 | android.net
5 | android.view
5 | java.lang.ref
4 | android.app
3 | android.net.wifi
3 | android.widget
3 | android.util
2 | android.media
2 | javax.security.auth
2 | android
2 | android.text.style
1 | android.app.admin
1 | android.view.inputmethod
1 | java.lang.reflect
1 | android.service.wallpaper
1 | android.os
1 | android.content.pm
1 | android.speech
1 | android.content
<1 | android.appwidget
<1 | android.webkit
<1 | java.security
<1 | android.inputmethodservice
<1 | android.opengl
<1 | java.net
<1 | java.io
<1 | android.accounts
<1 | android.graphics
<1 | android.database.sqlite
<1 | java.util.logging
<1 | java.lang
<1 | android.test.mock
<1 | android.text

* See Calculation of Change Percentages, below.

## Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage Difference* | Class or Interface
--- | ---
62 | android.preference.CheckBoxPreference
55 | android.view.Surface
52 | android.renderscript.AllocationAdapter
50 | android.animation.TypeEvaluator
50 | dalvik.system.DexClassLoader
48 | android.view.accessibility.AccessibilityEvent
46 | android.view.accessibility.AccessibilityManager
37 | android.net.http.SslError
33 | android.app.backup.BackupAgent
33 | android.provider.ContactsContract.Contacts.Photo
30 | android.os.Looper
27 | android.nfc.tech.NfcA
27 | android.nfc.tech.NfcF
26 | android.renderscript.Element
25 | android.R.style
25 | android.animation.FloatEvaluator
25 | android.animation.IntEvaluator
25 | android.webkit.WebSettings.TextSize
25 | java.io.FilePermission
25 | java.lang.ref.ReferenceQueue
25 | java.lang.reflect.AccessibleObject
25 | java.net.SocketPermission
23 | android.app.Application
21 | android.accessibilityservice.AccessibilityServiceInfo
20 | android.R.color
20 | android.animation.ObjectAnimator
20 | android.graphics.SurfaceTexture
20 | android.provider.ContactsContract
20 | android.provider.ContactsContract.CommonDataKinds.Photo
20 | android.provider.ContactsContract.RawContactsColumns
20 | android.renderscript.BaseObj
20 | android.widget.StackView
20 | dalvik.system.PathClassLoader
20 | java.security.AllPermission
20 | java.security.BasicPermission
17 | android.animation.PropertyValuesHolder
17 | android.nfc.NfcAdapter
16 | android.nfc.tech.IsoDep
16 | android.view.inputmethod.InputMethodSubtype
16 | javax.security.auth.PrivateCredentialPermission
14 | android.content.pm.ServiceInfo
14 | android.nfc.tech.MifareUltralight
14 | android.provider.ContactsContract.RawContactsEntity
14 | android.renderscript.Byte2
14 | android.renderscript.Int2
14 | android.renderscript.Long2
14 | android.renderscript.Short2
14 | android.widget.PopupMenu
14 | java.security.Permission
13 | android.net.TrafficStats
12 | android.provider.ContactsContract.ContactsColumns
12 | java.security.UnresolvedPermission
11 | android.provider.Settings.Secure
11 | java.lang.Class
11 | android.R.integer
11 | android.nfc.tech.NfcB
11 | android.nfc.tech.NfcV
11 | android.os.RecoverySystem
11 | android.renderscript.Byte3
11 | android.renderscript.Int3
11 | android.renderscript.Long3
11 | android.renderscript.Short3
10 | android.os.Debug.MemoryInfo
10 | android.widget.FrameLayout
10 | android.util.Config
9 | android.view.ViewPropertyAnimator
9 | android.renderscript.FieldPacker
9 | android.view.MenuItem
9 | android.app.FragmentManager.BackStackEntry
9 | android.bluetooth.BluetoothSocket
9 | android.provider.ContactsContract.StatusUpdates
9 | android.renderscript.Byte4
9 | android.renderscript.Int4
9 | android.renderscript.Long4
9 | android.renderscript.Short4
9 | android.util.Patterns
8 | android.media.MediaMetadataRetriever
8 | android.app.ActionBar.Tab
8 | android.webkit.WebView.HitTestResult
8 | android.widget.SearchView
7 | android.hardware.Camera
7 | android.view.Gravity
7 | android.net.SSLCertificateSocketFactory
7 | android.app.ActionBar
7 | android.hardware.Sensor
7 | android.view.ActionMode
6 | android.media.MediaRecorder
6 | android.view.MotionEvent
6 | android.accessibilityservice.AccessibilityService
6 | android.content.IntentSender
6 | android.opengl.GLUtils
6 | android.provider.ContactsContract.SettingsColumns
5 | android.hardware.Camera.Parameters
5 | android.inputmethodservice.InputMethodService.InputMethodSessionImpl
5 | android.nfc.NdefRecord
5 | android.preference.PreferenceActivity
5 | android.provider.ContactsContract.Intents
5 | android.database.sqlite.SQLiteOpenHelper
5 | android.net.ConnectivityManager
5 | android.view.inputmethod.InputMethodSession
4 | android.nfc.tech.MifareClassic
4 | android.appwidget.AppWidgetProviderInfo
4 | android.speech.tts.TextToSpeech
4 | android.speech.tts.TextToSpeech.Engine
4 | android.accounts.AccountManager
4 | android.os.Build
4 | android.bluetooth.BluetoothProfile
4 | android.provider.ContactsContract.GroupsColumns
4 | android.renderscript.RenderScriptGL
4 | android.renderscript.Script
4 | android.os.ParcelFileDescriptor
4 | android.view.View
4 | android.app.AlertDialog
4 | android.app.Service
4 | android.media.MediaPlayer
3 | android.provider.LiveFolders
3 | android.widget.AdapterViewAnimator
3 | android.content.SyncAdapterType
3 | android.util.SparseBooleanArray
3 | android.widget.LinearLayout
3 | java.lang.reflect.Constructor
3 | android.content.Context
3 | android.view.inputmethod.InputMethodManager
3 | android.R.attr
3 | android.content.pm.PackageStats
3 | android.speech.RecognizerIntent
3 | android.util.SparseIntArray
3 | android.widget.RemoteViews
3 | android.os.Build.VERSION_CODES
3 | android.provider.ContactsContract.Contacts
3 | android.media.AudioManager
3 | java.util.logging.Handler
3 | android.util.SparseArray
2 | android.database.sqlite.SQLiteQueryBuilder
2 | android.provider.MediaStore.Audio.AudioColumns
2 | java.lang.reflect.Method
2 | android.renderscript.Allocation
2 | android.animation.Animator
2 | android.opengl.Matrix
2 | android.provider.CallLog.Calls
2 | android.service.wallpaper.WallpaperService.Engine
2 | android.speech.SpeechRecognizer
2 | android.view.ViewGroup
2 | android.app.admin.DevicePolicyManager
2 | android.view.ViewParent
2 | android.app.FragmentManager
2 | android.app.PendingIntent
2 | android.content.Intent
2 | android.app.WallpaperManager
2 | android.app.admin.DeviceAdminInfo
2 | android.content.pm.PackageManager
2 | android.widget.Scroller
2 | android.widget.TextView
2 | android.app.SearchManager
2 | android.widget.OverScroller
2 | android.graphics.Paint
2 | android.Manifest.permission
2 | android.R.string
2 | android.app.Notification.Builder
2 | android.webkit.WebChromeClient
2 | android.webkit.WebSettings
1 | android.animation.LayoutTransition
1 | java.lang.reflect.Field
1 | android.content.pm.ActivityInfo
1 | android.content.ContentProvider
1 | java.io.ObjectOutputStream
1 | java.io.ObjectInputStream
1 | android.os.Process
1 | android.app.Fragment
1 | android.os.Handler
1 | android.view.Window
1 | android.widget.ExpandableListView
1 | android.view.ViewConfiguration
1 | android.provider.Settings
1 | android.graphics.RectF
1 | android.view.InputDevice
1 | android.graphics.Canvas
1 | android.bluetooth.BluetoothAdapter
1 | android.content.pm.ApplicationInfo
1 | android.net.wifi.WifiManager
<1 | android.text.Layout
<1 | android.os.Debug
<1 | android.test.mock.MockPackageManager
<1 | android.inputmethodservice.InputMethodService
<1 | android.widget.AbsListView
<1 | android.preference.Preference
<1 | android.view.KeyEvent
<1 | android.view.WindowManager.LayoutParams
<1 | android.provider.Settings.System
<1 | android.app.Activity
<1 | dalvik.annotation.TestTarget
<1 | dalvik.annotation.TestTargetClass

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