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