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: | 8
From Level: | 7
Generated | 2010.05.11 19:22

Top of Report

# API Change Statistics

The overall difference between API Levels 7 and 8 is approximately 5.7%.

## 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 | 11 | 40 | 0 | 51
Classes and Interfaces | 60 | 122 | 0 | 182
Constructors | 3 | 3 | 1 | 7
Methods | 206 | 37 | 3 | 246
Fields | 195 | 23 | 29 | 247
Total | 475 | 225 | 33 | 733

## Changed Packages, Sorted by Percentage Difference

Percentage Difference* | Package
--- | ---
75 | android.speech
45 | android.net.http
30 | org.w3c.dom
14 | android.test.mock
11 | android.opengl
10 | android.util
9 | android.media
6 | android.content
6 | android.net
5 | dalvik.bytecode
5 | android.gesture
5 | android.hardware
5 | javax.xml.parsers
5 | android.os
4 | android.webkit
4 | javax.xml
3 | android.speech.tts
2 | android.view
2 | android.app
2 | java.util.regex
1 | android.text.util
1 | android.graphics
1 | android.provider
1 | android.text.style
1 | android.test
1 | android.database.sqlite
1 | dalvik.system
1 | android.text
1 | android.content.pm
<1 | android.content.res
<1 | android.widget
<1 | java.nio.charset
<1 | android
<1 | android.database
<1 | java.util
<1 | android.location
<1 | java.net
<1 | android.accounts
<1 | android.telephony
<1 | android.view.animation

* See Calculation of Change Percentages, below.

## Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage Difference* | Class or Interface
--- | ---
60 | android.provider.Contacts.PresenceColumns
60 | org.w3c.dom.Text
50 | android.text.AndroidCharacter
40 | android.provider.ContactsContract.StatusColumns
36 | android.net.http.SslCertificate
33 | android.test.ActivityInstrumentationTestCase2
33 | org.w3c.dom.Entity
29 | org.w3c.dom.Document
25 | android.speech.RecognizerIntent
25 | android.media.MediaScannerConnection.MediaScannerConnectionClient
25 | android.os.Environment
22 | org.w3c.dom.Element
21 | android.widget.TabWidget
19 | org.w3c.dom.Node
19 | android.net.SSLCertificateSocketFactory
16 | org.w3c.dom.Attr
16 | android.hardware.Camera
15 | android.widget.BaseExpandableListAdapter
15 | android.database.sqlite.SQLiteProgram
15 | android.provider.MediaStore
14 | android.webkit.CacheManager
14 | org.w3c.dom.DOMImplementation
13 | android.os.Build
12 | android.util.EventLogTags
12 | javax.xml.parsers.SAXParserFactory
11 | android.view.Display
11 | android.app.ActivityManager
11 | android.gesture.GesturePoint
11 | android.provider.ContactsContract.Groups
11 | android.view.HapticFeedbackConstants
11 | android.view.VelocityTracker
11 | android.webkit.JsResult
10 | android.net.ConnectivityManager
10 | android.view.ViewGroup.LayoutParams
10 | android.media.AudioManager
9 | android.content.ContentResolver
9 | android.content.res.Configuration
9 | android.content.AbstractThreadedSyncAdapter
9 | android.media.SoundPool
9 | android.text.util.Rfc822Tokenizer
8 | android.view.MotionEvent
8 | android.app.SearchManager
8 | android.graphics.PixelFormat
8 | android.speech.tts.TextToSpeech.Engine
8 | android.hardware.Camera.Parameters
8 | android.media.MediaRecorder
8 | java.util.HashMap
7 | android.content.pm.ApplicationInfo
7 | android.database.DatabaseUtils
7 | dalvik.system.VMDebug
7 | android.content.pm.PackageManager
7 | android.media.ExifInterface
7 | android.database.sqlite.SQLiteDatabase
6 | android.util.Log
6 | javax.xml.parsers.DocumentBuilder
6 | javax.xml.parsers.DocumentBuilderFactory
6 | android.media.MediaScannerConnection
6 | android.provider.Settings
6 | android.webkit.WebChromeClient
6 | android.provider.MediaStore.Video.Thumbnails
6 | java.util.ArrayList
6 | org.w3c.dom.NamedNodeMap
5 | dalvik.bytecode.Opcodes
5 | android.content.pm.ComponentInfo
5 | android.gesture.GestureStroke
5 | android.provider.ContactsContract.RawContacts
5 | android.provider.MediaStore.Audio.AudioColumns
5 | android.provider.MediaStore.Audio.Playlists.Members
5 | android.view.GestureDetector
5 | dalvik.system.Zygote
5 | java.util.regex.Pattern
5 | org.w3c.dom.DOMException
5 | android.provider.Settings.Secure
5 | android.os.Build.VERSION_CODES
5 | javax.xml.parsers.SAXParser
5 | android.speech.tts.TextToSpeech
5 | android.provider.MediaStore.Images.Thumbnails
5 | java.util.regex.Matcher
4 | android.os.PowerManager
4 | java.nio.charset.Charset
4 | android.widget.VideoView
4 | java.net.DatagramSocketImpl
4 | javax.xml.XMLConstants
3 | android.os.Debug
3 | android.R.anim
3 | android.content.Context
3 | android.webkit.WebViewClient
3 | android.app.AlarmManager
3 | android.webkit.WebSettings
3 | android.hardware.Sensor
3 | android.app.ActivityManager.ProcessErrorStateInfo
3 | android.gesture.Gesture
2 | android.provider.Settings.System
2 | android.content.ComponentName
2 | android.opengl.Matrix
2 | android.provider.CallLog.Calls
2 | android.widget.AbsListView
2 | android.widget.ListView
2 | android.content.SyncResult
2 | android.test.mock.MockPackageManager
2 | android.webkit.WebView
2 | android.app.Activity
2 | android.os.Bundle
2 | android.Manifest.permission
2 | android.view.WindowManager.LayoutParams
2 | android.widget.ImageView
2 | android.opengl.GLSurfaceView
1 | android.content.Intent
1 | android.view.ViewConfiguration
1 | android.provider.Browser
1 | android.widget.RemoteViews
1 | android.location.LocationManager
1 | android.test.mock.MockContext
1 | android.content.ContextWrapper
1 | android.R.id
1 | android.content.pm.ActivityInfo
<1 | android.accounts.AccountManager
<1 | android.view.animation.Animation
<1 | android.view.View
<1 | android.telephony.TelephonyManager
<1 | android.app.Dialog
<1 | android.R.attr

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