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: | 5
From Level: | 4
Generated | 2009.11.19 19:35

Top of Report

# API Change Statistics

The overall difference between API Levels 4 and 5 is approximately 2.16%.

## 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 | 30 | 0 | 33
Classes and Interfaces | 85 | 128 | 0 | 213
Constructors | 3 | 11 | 0 | 14
Methods | 202 | 67 | 0 | 269
Fields | 234 | 205 | 1 | 440
Total | 527 | 441 | 1 | 969

## Changed Packages, Sorted by Percentage Difference

Percentage Difference* | Package
--- | ---
43 | android.provider
14 | android.content
13 | android.webkit
10 | dalvik.system
6 | android.opengl
5 | android.hardware
5 | android.content.pm
5 | android.location
4 | java.util.concurrent.locks
4 | android.app
3 | android.media
3 | android.text.format
3 | android.telephony
2 | android.database.sqlite
2 | android.os
2 | android.view
1 | android.util
1 | android.text.style
1 | android.widget
1 | android.graphics.drawable
<1 | android.test.mock
<1 | android.database
<1 | android.inputmethodservice
<1 | android.test
<1 | android
<1 | android.content.res
<1 | java.util.concurrent
<1 | android.text
<1 | android.view.animation
<1 | android.graphics

* See Calculation of Change Percentages, below.

## Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage Difference* | Class or Interface
--- | ---
73 | android.media.AudioFormat
70 | android.hardware.Camera.Parameters
62 | android.provider.Contacts.Phones
57 | android.provider.Contacts.SettingsColumns
55 | android.provider.Contacts.People
52 | android.provider.Contacts.GroupMembership
50 | android.provider.Contacts
50 | android.provider.Contacts.ContactMethods
50 | android.provider.Contacts.ContactMethodsColumns
50 | android.provider.Contacts.Extensions
50 | android.provider.Contacts.ExtensionsColumns
50 | android.provider.Contacts.Groups
50 | android.provider.Contacts.GroupsColumns
50 | android.provider.Contacts.Intents
50 | android.provider.Contacts.Intents.Insert
50 | android.provider.Contacts.Intents.UI
50 | android.provider.Contacts.OrganizationColumns
50 | android.provider.Contacts.Organizations
50 | android.provider.Contacts.People.ContactMethods
50 | android.provider.Contacts.People.Extensions
50 | android.provider.Contacts.People.Phones
50 | android.provider.Contacts.PeopleColumns
50 | android.provider.Contacts.PhonesColumns
50 | android.provider.Contacts.Photos
50 | android.provider.Contacts.PhotosColumns
50 | android.provider.Contacts.PresenceColumns
50 | android.provider.Contacts.Settings
50 | android.webkit.Plugin
50 | android.webkit.PluginData
50 | android.webkit.PluginList
36 | android.webkit.WebViewClient
35 | android.webkit.UrlInterceptRegistry
33 | android.telephony.NeighboringCellInfo
30 | android.app.Service
29 | android.content.ContentResolver
26 | android.os.BatteryManager
25 | android.os.Debug.MemoryInfo
25 | android.app.NotificationManager
25 | android.webkit.UrlInterceptHandler
25 | dalvik.system.AllocationLimitError
25 | dalvik.system.PotentialDeadlockError
25 | dalvik.system.StaleDexCacheError
22 | android.view.MotionEvent
21 | android.app.ActivityManager.RunningServiceInfo
20 | android.widget.SimpleCursorTreeAdapter
17 | android.app.ActivityManager.RunningAppProcessInfo
17 | android.widget.MediaController.MediaPlayerControl
16 | android.app.LauncherActivity
16 | android.view.SurfaceView
16 | dalvik.system.TemporaryDirectory
16 | dalvik.system.TouchDex
14 | android.app.ActivityManager
14 | android.app.IntentService
14 | android.graphics.drawable.Drawable.ConstantState
14 | android.text.format.Formatter
14 | android.view.HapticFeedbackConstants
14 | android.view.KeyEvent.Callback
12 | android.hardware.Camera
12 | android.graphics.drawable.BitmapDrawable
12 | android.webkit.WebChromeClient
11 | android.database.AbstractWindowedCursor
11 | android.text.style.AbsoluteSizeSpan
10 | android.test.InstrumentationTestCase
10 | dalvik.system.VMStack
10 | java.util.concurrent.BlockingQueue
9 | android.content.pm.ServiceInfo
9 | android.inputmethodservice.AbstractInputMethodService
9 | android.os.HandlerThread
8 | android.widget.AutoCompleteTextView
8 | android.provider.MediaStore.Images.Thumbnails
7 | android.os.Build.VERSION_CODES
7 | android.widget.VideoView
7 | android.media.AudioManager
6 | android.view.Window.Callback
6 | dalvik.system.VMRuntime
6 | dalvik.system.Zygote
5 | android.content.BroadcastReceiver
5 | android.text.TextPaint
5 | android.view.SurfaceHolder
5 | android.content.Context
5 | android.test.AndroidTestRunner
5 | android.webkit.WebSettings
4 | android.database.CursorWindow
4 | android.view.KeyEvent
4 | android.opengl.GLSurfaceView
3 | android.content.pm.ProviderInfo
3 | android.view.Surface
3 | android.provider.Settings
3 | android.content.res.Configuration
3 | android.test.mock.MockPackageManager
3 | android.view.ViewConfiguration
3 | android.telephony.TelephonyManager
3 | android.view.WindowManager.LayoutParams
3 | android.R.style
3 | android.location.LocationManager
2 | android.app.SearchManager
2 | android.app.Activity
2 | android.telephony.PhoneStateListener
2 | android.app.Dialog
2 | android.content.pm.ResolveInfo
2 | android.content.pm.PackageInfo
2 | android.R.attr
2 | android.content.Intent
2 | android.content.pm.PackageManager
2 | android.content.ContentProvider
2 | android.graphics.PixelFormat
1 | android.view.animation.Animation
1 | android.database.sqlite.SQLiteDatabase
1 | android.webkit.WebView
1 | android.Manifest.permission
1 | android.webkit.CallbackProxy
1 | android.text.InputType
1 | android.test.mock.MockContext
1 | android.app.Notification
1 | android.database.DatabaseUtils
1 | android.content.ContextWrapper
1 | android.telephony.PhoneNumberUtils
1 | android.media.MediaPlayer
1 | dalvik.system.VMDebug
1 | android.content.pm.ActivityInfo
1 | android.graphics.drawable.Drawable
1 | android.view.View
<1 | android.R.drawable
<1 | android.provider.Settings.System
<1 | android.text.format.DateUtils
<1 | android.inputmethodservice.InputMethodService
<1 | android.view.ViewGroup
<1 | android.media.ToneGenerator

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