API Change Statistics

The overall difference between API Levels 10 and 11 is approximately 2.56%.


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 38 0 41
Classes and Interfaces 109 196 0 305
Constructors 20 5 1 26
Methods 431 100 26 557
Fields 619 36 0 655
Total 1182 375 27 1584

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
40 dalvik.bytecode
24 android.bluetooth
23 android.database.sqlite
16 android.app
16 android
14 android.preference
14 android.app.admin
11 android.content
8 android.view.inputmethod
8 android.text.method
8 android.widget
8 android.util
6 android.view
6 android.database
5 android.provider
4 android.view.animation
4 android.appwidget
4 android.webkit
2 android.os
2 android.test.mock
2 android.graphics
1 android.inputmethodservice
1 android.test
1 android.net
1 android.graphics.drawable
1 android.text
1 android.speech.tts
1 android.content.pm
1 android.media
<1 java.util
<1 android.accounts
<1 android.text.format
<1 android.speech
<1 android.hardware
<1 android.opengl
<1 android.telephony
<1 android.content.res
<1 java.lang

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
100 android.view.animation.Interpolator
77 android.preference.PreferenceActivity
75 android.text.method.ScrollingMovementMethod
66 android.text.method.ArrowKeyMovementMethod
57 android.text.ClipboardManager
50 android.provider.ContactsContract.Contacts.AggregationSuggestions
39 android.R.style
33 android.R.dimen
33 android.net.Proxy
33 android.provider.ContactsContract.Contacts.Photo
33 android.widget.DatePicker
32 android.app.admin.DevicePolicyManager
30 android.media.CamcorderProfile
30 java.util.ResourceBundle
28 android.webkit.CacheManager
27 android.database.sqlite.SQLiteCursor
27 android.widget.ResourceCursorAdapter
26 android.widget.Spinner
25 android.content.SyncInfo
23 android.widget.LinearLayout
23 android.view.KeyEvent
22 java.util.Deque
22 android.os.StrictMode.VmPolicy.Builder
20 android.app.ActivityManager
20 android.database.sqlite.SQLiteStatement
20 android.provider.ContactsContract
18 android.database.sqlite.SQLiteQueryBuilder
18 android.app.DownloadManager.Request
17 android.widget.AbsListView
17 android.widget.CursorAdapter
17 android.widget.ListView
17 android.database.DatabaseUtils
16 android.content.pm.PackageStats
16 android.provider.ContactsContract.ContactsColumns
16 android.view.KeyCharacterMap
16 android.view.ScaleGestureDetector
16 android.os.AsyncTask
16 android.test.mock.MockCursor
15 android.provider.ContactsContract.GroupsColumns
15 java.util.NavigableSet
14 android.content.AbstractThreadedSyncAdapter
14 android.os.DropBoxManager
14 android.os.Vibrator
14 android.provider.ContactsContract.RawContactsColumns
14 android.text.method.BaseKeyListener
14 android.util.AndroidException
14 android.util.AndroidRuntimeException
13 android.graphics.drawable.DrawableContainer.DrawableContainerState
13 android.database.AbstractWindowedCursor
13 android.widget.SimpleCursorAdapter
12 android.database.sqlite.SQLiteOpenHelper
12 android.graphics.drawable.ColorDrawable
12 android.inputmethodservice.InputMethodService.Insets
12 android.provider.Browser.SearchColumns
12 android.provider.ContactsContract.StatusColumns
11 android.os.StrictMode.ThreadPolicy.Builder
11 android.view.MenuItem
11 android.widget.RemoteViews
11 dalvik.bytecode.Opcodes
11 android.text.method.QwertyKeyListener
11 android.view.Window.Callback
10 android.database.sqlite.SQLiteDatabase
10 android.bluetooth.BluetoothAdapter
10 android.os.Debug
10 android.view.KeyCharacterMap.KeyData
9 android.content.ContentProvider
9 android.view.inputmethod.InputMethodManager
9 android.R.attr
9 android.view.View
9 android.database.CursorWindow
9 android.app.AlertDialog
9 android.app.DatePickerDialog
9 android.appwidget.AppWidgetManager
9 android.graphics.drawable.DrawableContainer
9 android.provider.AlarmClock
9 android.util.Patterns
9 android.view.LayoutInflater
9 java.util.Queue
8 android.view.SurfaceHolder
8 android.R.layout
8 android.database.Cursor
8 android.accounts.AuthenticatorDescription
8 android.content.ContentProviderClient
8 android.content.SyncAdapterType
8 android.widget.GridView
7 android.app.Notification
7 android.provider.ContactsContract.ContactStatusColumns
7 java.util.NavigableMap
7 android.view.inputmethod.EditorInfo
7 android.app.DownloadManager
7 android.appwidget.AppWidgetProviderInfo
7 android.app.Activity
6 android.media.MediaRecorder.AudioSource
6 android.os.StrictMode
6 android.provider.MediaStore.Audio.Genres
6 android.util.StateSet
6 android.view.inputmethod.InputMethodInfo
6 java.util.ResourceBundle.Control
6 android.webkit.WebView
5 android.app.ActivityManager.RecentTaskInfo
5 android.inputmethodservice.InputMethodService.InputMethodImpl
5 android.provider.ContactsContract.CommonDataKinds.Relation
5 android.widget.ImageView
5 android.provider.ContactsContract.RawContacts
5 android.text.InputType
5 android.app.admin.DeviceAdminReceiver
5 android.content.SharedPreferences.Editor
5 android.content.pm.ComponentInfo
5 android.graphics.BitmapFactory.Options
5 android.speech.tts.TextToSpeech.Engine
4 android.database.sqlite.SQLiteProgram
4 android.app.WallpaperManager
4 android.app.admin.DeviceAdminInfo
4 android.appwidget.AppWidgetHost
4 android.content.SharedPreferences
4 android.widget.QuickContactBadge
4 android.widget.Scroller
4 android.database.AbstractCursor
4 android.preference.Preference
4 android.widget.ArrayAdapter
4 android.widget.OverScroller
4 android.app.AlertDialog.Builder
4 android.app.Dialog
4 android.app.ProgressDialog
4 android.media.MediaRecorder
4 android.view.ViewGroup
4 android.inputmethodservice.InputMethodService
4 android.content.ContentResolver
4 java.lang.Object
4 android.os.Build.VERSION_CODES
4 android.provider.ContactsContract.CommonDataKinds.Email
3 android.opengl.GLSurfaceView
3 android.view.Window
3 android.media.ExifInterface
3 android.view.inputmethod.InputMethod
3 android.provider.ContactsContract.Contacts
3 android.graphics.drawable.LayerDrawable
3 android.util.SparseArray
3 android.webkit.WebSettings
3 android.webkit.CacheManager.CacheResult
3 android.net.Uri.Builder
3 android.widget.TabWidget
2 android.view.WindowManager.LayoutParams
2 android.provider.Settings
2 android.widget.PopupWindow
2 android.graphics.Canvas
2 android.content.BroadcastReceiver
2 android.net.Uri
2 android.view.ViewParent
2 android.text.format.Time
2 android.database.CursorWrapper
2 android.app.PendingIntent
2 android.content.pm.ApplicationInfo
2 android.telephony.TelephonyManager
2 android.app.SearchManager
2 android.view.inputmethod.InputConnection
2 android.view.inputmethod.InputConnectionWrapper
2 java.util.Locale
2 android.R.id
2 android.R.string
2 android.graphics.drawable.Drawable
2 android.test.mock.MockContext
2 android.app.Service
2 android.os.BatteryManager
2 android.provider.ContactsContract.DataColumns
2 android.content.ContextWrapper
1 android.content.Intent
1 android.accounts.AccountManager
1 android.os.Environment
1 android.view.inputmethod.BaseInputConnection
1 android.view.animation.Animation
1 android.speech.RecognizerIntent
1 android.text.SpannableStringBuilder
1 android.hardware.Camera
1 android.provider.ContactsContract.Intents.Insert
1 android.content.Context
1 android.webkit.WebViewClient
1 android.widget.TextView
1 android.inputmethodservice.Keyboard
1 android.content.ContentValues
1 android.provider.Settings.Secure
1 android.view.Surface
1 android.provider.Settings.System
<1 android.content.pm.ActivityInfo
<1 android.content.pm.PackageManager
<1 android.hardware.Camera.Parameters
<1 android.test.mock.MockPackageManager
<1 android.content.res.Configuration
<1 android.hardware.SensorManager
<1 android.os.Bundle
<1 android.R.drawable
<1 android.view.MotionEvent
<1 android.media.AudioManager
<1 android.Manifest.permission
<1 java.lang.Character.UnicodeBlock
<1 android.provider.ContactsContract.DataColumnsWithJoins

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