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.

TypeAdditionsChangesRemovalsTotal
Packages1140051
Classes and Interfaces601220182
Constructors3317
Methods206373246
Fields1952329247
Total47522533733

Changed Packages, Sorted by Percentage Difference

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