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: | 3
From Level: | 2
Generated | 2009.11.19 19:35

Top of Report

# API Change Statistics

The overall difference between API Levels 2 and 3 is approximately 4.33%.

## 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 | 36 | 0 | 42
Classes and Interfaces | 67 | 181 | 0 | 248
Constructors | 36 | 3 | 1 | 40
Methods | 386 | 64 | 5 | 455
Fields | 296 | 68 | 1 | 365
Total | 791 | 352 | 7 | 1150

## Changed Packages, Sorted by Percentage Difference

Percentage Difference* | Package
--- | ---
33 | android.opengl
27 | android.media
24 | android.text.style
22 | android.hardware
22 | android.location
13 | android.content.res
12 | dalvik.system
9 | android.telephony
9 | android.text.method
8 | android.app
8 | android.test
7 | android
7 | android.text
6 | android.provider
6 | android.view
5 | android.widget
5 | android.os
4 | android.test.suitebuilder
4 | android.webkit
3 | android.content.pm
2 | android.util
1 | android.content
1 | java.util.jar
1 | android.graphics.drawable.shapes
<1 | android.net
<1 | android.graphics.drawable
<1 | java.util.logging
<1 | android.test.mock
<1 | android.view.animation
<1 | android.net.wifi
<1 | android.telephony.gsm
<1 | android.database
<1 | android.graphics
<1 | android.database.sqlite
<1 | android.preference
<1 | java.lang

* See Calculation of Change Percentages, below.

## Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage Difference* | Class or Interface
--- | ---
84 | android.test.TouchUtils
81 | dalvik.system.Zygote
66 | android.webkit.UrlInterceptHandler
61 | android.provider.MediaStore
53 | android.view.GestureDetector
50 | android.app.LauncherActivity
50 | android.text.style.AlignmentSpan.Standard
50 | android.text.style.StrikethroughSpan
50 | android.text.style.UnderlineSpan
50 | android.widget.PopupWindow.OnDismissListener
48 | android.app.AlertDialog
46 | android.content.DialogInterface
45 | android.view.ViewConfiguration
42 | android.text.method.KeyListener
40 | android.text.Annotation
40 | android.text.style.BackgroundColorSpan
40 | android.text.style.ForegroundColorSpan
40 | android.text.style.SubscriptSpan
40 | android.text.style.SuperscriptSpan
40 | android.text.style.URLSpan
39 | android.media.MediaRecorder
38 | android.text.style.DynamicDrawableSpan
36 | android.content.res.AssetFileDescriptor
36 | android.location.LocationManager
34 | android.hardware.SensorManager
33 | android.text.AutoText
33 | android.text.method.Touch
33 | android.text.style.AbsoluteSizeSpan
33 | android.text.style.LeadingMarginSpan.Standard
33 | android.text.style.RelativeSizeSpan
33 | android.text.style.ScaleXSpan
33 | android.text.style.StyleSpan
33 | android.text.style.TypefaceSpan
33 | android.widget.RemoteViews.ActionException
31 | android.widget.RemoteViews
30 | android.provider.Settings
28 | android.text.style.QuoteSpan
27 | android.app.AlarmManager
26 | android.text.style.ImageSpan
25 | android.hardware.SensorListener
25 | android.text.method.MetaKeyKeyListener
25 | android.text.style.BulletSpan
25 | android.widget.ResourceCursorAdapter
23 | android.provider.Contacts.Intents
21 | android.widget.PopupWindow
20 | android.R.id
20 | android.provider.Settings.System
20 | android.app.ActivityManager
20 | android.text.method.BaseKeyListener
20 | android.util.TimeUtils
20 | android.widget.AutoCompleteTextView
19 | android.provider.Contacts.Intents.Insert
17 | android.view.GestureDetector.SimpleOnGestureListener
16 | android.provider.MediaStore.Video
16 | android.text.SpanWatcher
16 | android.text.TextWatcher
16 | android.text.style.ClickableSpan
16 | android.text.style.MaskFilterSpan
16 | android.text.style.RasterizerSpan
16 | android.text.style.TextAppearanceSpan
15 | android.webkit.UrlInterceptRegistry
14 | android.media.MediaRecorder.OutputFormat
14 | android.net.NetworkInfo
14 | android.test.suitebuilder.TestMethod
14 | android.text.method.QwertyKeyListener
14 | android.widget.AbsSeekBar
12 | android.view.WindowManager.LayoutParams
12 | android.test.ActivityInstrumentationTestCase
12 | android.test.InstrumentationTestCase
12 | android.widget.AbsoluteLayout
12 | java.util.logging.LogManager
11 | android.view.Gravity
11 | android.widget.CursorAdapter
11 | android.widget.TextView
11 | android.text.method.DateKeyListener
11 | android.text.method.DateTimeKeyListener
11 | android.text.method.DialerKeyListener
11 | android.text.method.TimeKeyListener
11 | android.webkit.WebHistoryItem
11 | java.util.jar.Pack200.Unpacker
10 | android.media.MediaPlayer
10 | android.provider.MediaStore.Video.VideoColumns
10 | android.test.ProviderTestCase
10 | android.widget.Chronometer
9 | android.graphics.drawable.TransitionDrawable
9 | android.text.method.MultiTapKeyListener
8 | android.media.AudioManager
8 | android.view.ViewTreeObserver
8 | android.content.pm.PackageInfo
7 | android.text.Spanned
7 | android.text.method.DigitsKeyListener
7 | android.hardware.Camera
7 | android.R.attr
7 | android.telephony.TelephonyManager
7 | android.media.SoundPool
7 | android.os.Environment
6 | android.view.KeyEvent
6 | android.graphics.drawable.shapes.Shape
6 | android.text.method.MovementMethod
6 | android.view.OrientationListener
6 | dalvik.system.DexFile
6 | android.text.TextUtils
6 | android.os.ParcelFileDescriptor
5 | android.webkit.WebView
5 | android.graphics.drawable.RotateDrawable
5 | android.graphics.drawable.ScaleDrawable
5 | android.provider.MediaStore.Audio.AlbumColumns
5 | android.provider.MediaStore.Audio.Media
5 | android.webkit.WebSettings
5 | android.content.res.Resources
5 | android.graphics.RectF
5 | android.os.Looper
5 | android.provider.Contacts.PeopleColumns
5 | android.text.method.ArrowKeyMovementMethod
5 | android.text.method.TextKeyListener
5 | android.view.ViewDebug
5 | android.widget.Scroller
5 | android.widget.AbsListView
5 | android.net.ConnectivityManager
5 | android.view.KeyCharacterMap
4 | android.content.res.Configuration
4 | android.widget.ProgressBar
4 | android.widget.SimpleCursorAdapter
4 | android.R.string
4 | java.lang.Class
4 | java.util.jar.Pack200.Packer
4 | android.provider.MediaStore.Images.Media
3 | android.os.Build
3 | android.os.IBinder
3 | android.text.method.ScrollingMovementMethod
3 | android.util.SparseIntArray
3 | android.content.Intent
3 | android.content.ContentResolver
3 | android.net.wifi.WifiManager
3 | android.content.BroadcastReceiver
3 | android.os.Handler
3 | android.view.Menu
3 | android.view.animation.Animation
3 | android.view.animation.Transformation
2 | android.webkit.URLUtil
2 | java.util.logging.Level
2 | android.R.style
2 | android.os.Binder
2 | android.view.ViewParent
2 | android.widget.GridView
2 | android.test.mock.MockPackageManager
2 | android.view.View
2 | android.widget.ListView
2 | android.app.PendingIntent
2 | android.content.pm.PackageManager
2 | android.telephony.PhoneNumberUtils
2 | android.content.ContentProvider
2 | android.Manifest.permission
2 | android.widget.ArrayAdapter
2 | android.content.pm.ActivityInfo
2 | dalvik.system.VMDebug
1 | android.database.sqlite.SQLiteDatabase
1 | android.content.res.TypedArray
1 | android.app.Activity
1 | android.preference.DialogPreference
1 | android.view.Window
1 | android.graphics.Bitmap
1 | android.os.Debug
1 | android.provider.Browser
1 | android.os.Parcel
1 | android.database.DatabaseUtils
1 | android.media.RingtoneManager
1 | android.graphics.Rect
1 | android.telephony.gsm.SmsMessage
1 | android.database.Cursor
1 | android.database.CursorWrapper
1 | android.view.MotionEvent
1 | android.location.Location
1 | android.graphics.drawable.Drawable
<1 | android.R.drawable
<1 | android.app.Instrumentation
<1 | android.graphics.Canvas
<1 | android.content.Context
<1 | android.view.ViewGroup
<1 | java.lang.Character.UnicodeBlock
<1 | android.text.style.UpdateLayout

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