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