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: | 11
From Level: | 10
Generated | 2011.02.19 17:19

Top of Report

# API Change Statistics

The overall difference between API Levels 10 and 11 is approximately 2.56%.

## 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 | 3 | 38 | 0 | 41
Classes and Interfaces | 109 | 196 | 0 | 305
Constructors | 20 | 5 | 1 | 26
Methods | 431 | 100 | 26 | 557
Fields | 619 | 36 | 0 | 655
Total | 1182 | 375 | 27 | 1584

## Changed Packages, Sorted by Percentage Difference

Percentage Difference* | Package
--- | ---
40 | dalvik.bytecode
24 | android.bluetooth
23 | android.database.sqlite
16 | android.app
16 | android
14 | android.preference
14 | android.app.admin
11 | android.content
8 | android.view.inputmethod
8 | android.text.method
8 | android.widget
8 | android.util
6 | android.view
6 | android.database
5 | android.provider
4 | android.view.animation
4 | android.appwidget
4 | android.webkit
2 | android.os
2 | android.test.mock
2 | android.graphics
1 | android.inputmethodservice
1 | android.test
1 | android.net
1 | android.graphics.drawable
1 | android.text
1 | android.speech.tts
1 | android.content.pm
1 | android.media
<1 | java.util
<1 | android.accounts
<1 | android.text.format
<1 | android.speech
<1 | android.hardware
<1 | android.opengl
<1 | android.telephony
<1 | android.content.res
<1 | java.lang

* See Calculation of Change Percentages, below.

## Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage Difference* | Class or Interface
--- | ---
100 | android.view.animation.Interpolator
77 | android.preference.PreferenceActivity
75 | android.text.method.ScrollingMovementMethod
66 | android.text.method.ArrowKeyMovementMethod
57 | android.text.ClipboardManager
50 | android.provider.ContactsContract.Contacts.AggregationSuggestions
39 | android.R.style
33 | android.R.dimen
33 | android.net.Proxy
33 | android.provider.ContactsContract.Contacts.Photo
33 | android.widget.DatePicker
32 | android.app.admin.DevicePolicyManager
30 | android.media.CamcorderProfile
30 | java.util.ResourceBundle
28 | android.webkit.CacheManager
27 | android.database.sqlite.SQLiteCursor
27 | android.widget.ResourceCursorAdapter
26 | android.widget.Spinner
25 | android.content.SyncInfo
23 | android.widget.LinearLayout
23 | android.view.KeyEvent
22 | java.util.Deque
22 | android.os.StrictMode.VmPolicy.Builder
20 | android.app.ActivityManager
20 | android.database.sqlite.SQLiteStatement
20 | android.provider.ContactsContract
18 | android.database.sqlite.SQLiteQueryBuilder
18 | android.app.DownloadManager.Request
17 | android.widget.AbsListView
17 | android.widget.CursorAdapter
17 | android.widget.ListView
17 | android.database.DatabaseUtils
16 | android.content.pm.PackageStats
16 | android.provider.ContactsContract.ContactsColumns
16 | android.view.KeyCharacterMap
16 | android.view.ScaleGestureDetector
16 | android.os.AsyncTask
16 | android.test.mock.MockCursor
15 | android.provider.ContactsContract.GroupsColumns
15 | java.util.NavigableSet
14 | android.content.AbstractThreadedSyncAdapter
14 | android.os.DropBoxManager
14 | android.os.Vibrator
14 | android.provider.ContactsContract.RawContactsColumns
14 | android.text.method.BaseKeyListener
14 | android.util.AndroidException
14 | android.util.AndroidRuntimeException
13 | android.graphics.drawable.DrawableContainer.DrawableContainerState
13 | android.database.AbstractWindowedCursor
13 | android.widget.SimpleCursorAdapter
12 | android.database.sqlite.SQLiteOpenHelper
12 | android.graphics.drawable.ColorDrawable
12 | android.inputmethodservice.InputMethodService.Insets
12 | android.provider.Browser.SearchColumns
12 | android.provider.ContactsContract.StatusColumns
11 | android.os.StrictMode.ThreadPolicy.Builder
11 | android.view.MenuItem
11 | android.widget.RemoteViews
11 | dalvik.bytecode.Opcodes
11 | android.text.method.QwertyKeyListener
11 | android.view.Window.Callback
10 | android.database.sqlite.SQLiteDatabase
10 | android.bluetooth.BluetoothAdapter
10 | android.os.Debug
10 | android.view.KeyCharacterMap.KeyData
9 | android.content.ContentProvider
9 | android.view.inputmethod.InputMethodManager
9 | android.R.attr
9 | android.view.View
9 | android.database.CursorWindow
9 | android.app.AlertDialog
9 | android.app.DatePickerDialog
9 | android.appwidget.AppWidgetManager
9 | android.graphics.drawable.DrawableContainer
9 | android.provider.AlarmClock
9 | android.util.Patterns
9 | android.view.LayoutInflater
9 | java.util.Queue
8 | android.view.SurfaceHolder
8 | android.R.layout
8 | android.database.Cursor
8 | android.accounts.AuthenticatorDescription
8 | android.content.ContentProviderClient
8 | android.content.SyncAdapterType
8 | android.widget.GridView
7 | android.app.Notification
7 | android.provider.ContactsContract.ContactStatusColumns
7 | java.util.NavigableMap
7 | android.view.inputmethod.EditorInfo
7 | android.app.DownloadManager
7 | android.appwidget.AppWidgetProviderInfo
7 | android.app.Activity
6 | android.media.MediaRecorder.AudioSource
6 | android.os.StrictMode
6 | android.provider.MediaStore.Audio.Genres
6 | android.util.StateSet
6 | android.view.inputmethod.InputMethodInfo
6 | java.util.ResourceBundle.Control
6 | android.webkit.WebView
5 | android.app.ActivityManager.RecentTaskInfo
5 | android.inputmethodservice.InputMethodService.InputMethodImpl
5 | android.provider.ContactsContract.CommonDataKinds.Relation
5 | android.widget.ImageView
5 | android.provider.ContactsContract.RawContacts
5 | android.text.InputType
5 | android.app.admin.DeviceAdminReceiver
5 | android.content.SharedPreferences.Editor
5 | android.content.pm.ComponentInfo
5 | android.graphics.BitmapFactory.Options
5 | android.speech.tts.TextToSpeech.Engine
4 | android.database.sqlite.SQLiteProgram
4 | android.app.WallpaperManager
4 | android.app.admin.DeviceAdminInfo
4 | android.appwidget.AppWidgetHost
4 | android.content.SharedPreferences
4 | android.widget.QuickContactBadge
4 | android.widget.Scroller
4 | android.database.AbstractCursor
4 | android.preference.Preference
4 | android.widget.ArrayAdapter
4 | android.widget.OverScroller
4 | android.app.AlertDialog.Builder
4 | android.app.Dialog
4 | android.app.ProgressDialog
4 | android.media.MediaRecorder
4 | android.view.ViewGroup
4 | android.inputmethodservice.InputMethodService
4 | android.content.ContentResolver
4 | java.lang.Object
4 | android.os.Build.VERSION_CODES
4 | android.provider.ContactsContract.CommonDataKinds.Email
3 | android.opengl.GLSurfaceView
3 | android.view.Window
3 | android.media.ExifInterface
3 | android.view.inputmethod.InputMethod
3 | android.provider.ContactsContract.Contacts
3 | android.graphics.drawable.LayerDrawable
3 | android.util.SparseArray
3 | android.webkit.WebSettings
3 | android.webkit.CacheManager.CacheResult
3 | android.net.Uri.Builder
3 | android.widget.TabWidget
2 | android.view.WindowManager.LayoutParams
2 | android.provider.Settings
2 | android.widget.PopupWindow
2 | android.graphics.Canvas
2 | android.content.BroadcastReceiver
2 | android.net.Uri
2 | android.view.ViewParent
2 | android.text.format.Time
2 | android.database.CursorWrapper
2 | android.app.PendingIntent
2 | android.content.pm.ApplicationInfo
2 | android.telephony.TelephonyManager
2 | android.app.SearchManager
2 | android.view.inputmethod.InputConnection
2 | android.view.inputmethod.InputConnectionWrapper
2 | java.util.Locale
2 | android.R.id
2 | android.R.string
2 | android.graphics.drawable.Drawable
2 | android.test.mock.MockContext
2 | android.app.Service
2 | android.os.BatteryManager
2 | android.provider.ContactsContract.DataColumns
2 | android.content.ContextWrapper
1 | android.content.Intent
1 | android.accounts.AccountManager
1 | android.os.Environment
1 | android.view.inputmethod.BaseInputConnection
1 | android.view.animation.Animation
1 | android.speech.RecognizerIntent
1 | android.text.SpannableStringBuilder
1 | android.hardware.Camera
1 | android.provider.ContactsContract.Intents.Insert
1 | android.content.Context
1 | android.webkit.WebViewClient
1 | android.widget.TextView
1 | android.inputmethodservice.Keyboard
1 | android.content.ContentValues
1 | android.provider.Settings.Secure
1 | android.view.Surface
1 | android.provider.Settings.System
<1 | android.content.pm.ActivityInfo
<1 | android.content.pm.PackageManager
<1 | android.hardware.Camera.Parameters
<1 | android.test.mock.MockPackageManager
<1 | android.content.res.Configuration
<1 | android.hardware.SensorManager
<1 | android.os.Bundle
<1 | android.R.drawable
<1 | android.view.MotionEvent
<1 | android.media.AudioManager
<1 | android.Manifest.permission
<1 | java.lang.Character.UnicodeBlock
<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%.