API Change Statistics

The overall difference between API Levels 13 and 14 is approximately 3.95%.


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 5 48 0 53
Classes and Interfaces 90 192 0 282
Constructors 19 2 0 21
Methods 285 94 29 408
Fields 405 34 16 455
Total 804 370 45 1219

Changed Packages, Sorted by Percentage Difference

Percentage Difference* Package
100 dalvik.annotation
54 android.view.accessibility
34 android.speech.tts
34 dalvik.system
20 android.nfc
13 android.accessibilityservice
12 android.provider
11 android.bluetooth
10 android.nfc.tech
9 android.hardware
7 android.animation
7 android.preference
7 android.net.http
7 android.app.backup
5 android.renderscript
5 android.net
5 android.view
5 java.lang.ref
4 android.app
3 android.net.wifi
3 android.widget
3 android.util
2 android.media
2 javax.security.auth
2 android
2 android.text.style
1 android.app.admin
1 android.view.inputmethod
1 java.lang.reflect
1 android.service.wallpaper
1 android.os
1 android.content.pm
1 android.speech
1 android.content
<1 android.appwidget
<1 android.webkit
<1 java.security
<1 android.inputmethodservice
<1 android.opengl
<1 java.net
<1 java.io
<1 android.accounts
<1 android.graphics
<1 android.database.sqlite
<1 java.util.logging
<1 java.lang
<1 android.test.mock
<1 android.text

* See Calculation of Change Percentages, below.


Changed Classes and Interfaces, Sorted by Percentage Difference

Percentage
Difference*
Class or Interface
62 android.preference.CheckBoxPreference
55 android.view.Surface
52 android.renderscript.AllocationAdapter
50 android.animation.TypeEvaluator
50 dalvik.system.DexClassLoader
48 android.view.accessibility.AccessibilityEvent
46 android.view.accessibility.AccessibilityManager
37 android.net.http.SslError
33 android.app.backup.BackupAgent
33 android.provider.ContactsContract.Contacts.Photo
30 android.os.Looper
27 android.nfc.tech.NfcA
27 android.nfc.tech.NfcF
26 android.renderscript.Element
25 android.R.style
25 android.animation.FloatEvaluator
25 android.animation.IntEvaluator
25 android.webkit.WebSettings.TextSize
25 java.io.FilePermission
25 java.lang.ref.ReferenceQueue
25 java.lang.reflect.AccessibleObject
25 java.net.SocketPermission
23 android.app.Application
21 android.accessibilityservice.AccessibilityServiceInfo
20 android.R.color
20 android.animation.ObjectAnimator
20 android.graphics.SurfaceTexture
20 android.provider.ContactsContract
20 android.provider.ContactsContract.CommonDataKinds.Photo
20 android.provider.ContactsContract.RawContactsColumns
20 android.renderscript.BaseObj
20 android.widget.StackView
20 dalvik.system.PathClassLoader
20 java.security.AllPermission
20 java.security.BasicPermission
17 android.animation.PropertyValuesHolder
17 android.nfc.NfcAdapter
16 android.nfc.tech.IsoDep
16 android.view.inputmethod.InputMethodSubtype
16 javax.security.auth.PrivateCredentialPermission
14 android.content.pm.ServiceInfo
14 android.nfc.tech.MifareUltralight
14 android.provider.ContactsContract.RawContactsEntity
14 android.renderscript.Byte2
14 android.renderscript.Int2
14 android.renderscript.Long2
14 android.renderscript.Short2
14 android.widget.PopupMenu
14 java.security.Permission
13 android.net.TrafficStats
12 android.provider.ContactsContract.ContactsColumns
12 java.security.UnresolvedPermission
11 android.provider.Settings.Secure
11 java.lang.Class
11 android.R.integer
11 android.nfc.tech.NfcB
11 android.nfc.tech.NfcV
11 android.os.RecoverySystem
11 android.renderscript.Byte3
11 android.renderscript.Int3
11 android.renderscript.Long3
11 android.renderscript.Short3
10 android.os.Debug.MemoryInfo
10 android.widget.FrameLayout
10 android.util.Config
9 android.view.ViewPropertyAnimator
9 android.renderscript.FieldPacker
9 android.view.MenuItem
9 android.app.FragmentManager.BackStackEntry
9 android.bluetooth.BluetoothSocket
9 android.provider.ContactsContract.StatusUpdates
9 android.renderscript.Byte4
9 android.renderscript.Int4
9 android.renderscript.Long4
9 android.renderscript.Short4
9 android.util.Patterns
8 android.media.MediaMetadataRetriever
8 android.app.ActionBar.Tab
8 android.webkit.WebView.HitTestResult
8 android.widget.SearchView
7 android.hardware.Camera
7 android.view.Gravity
7 android.net.SSLCertificateSocketFactory
7 android.app.ActionBar
7 android.hardware.Sensor
7 android.view.ActionMode
6 android.media.MediaRecorder
6 android.view.MotionEvent
6 android.accessibilityservice.AccessibilityService
6 android.content.IntentSender
6 android.opengl.GLUtils
6 android.provider.ContactsContract.SettingsColumns
5 android.hardware.Camera.Parameters
5 android.inputmethodservice.InputMethodService.InputMethodSessionImpl
5 android.nfc.NdefRecord
5 android.preference.PreferenceActivity
5 android.provider.ContactsContract.Intents
5 android.database.sqlite.SQLiteOpenHelper
5 android.net.ConnectivityManager
5 android.view.inputmethod.InputMethodSession
4 android.nfc.tech.MifareClassic
4 android.appwidget.AppWidgetProviderInfo
4 android.speech.tts.TextToSpeech
4 android.speech.tts.TextToSpeech.Engine
4 android.accounts.AccountManager
4 android.os.Build
4 android.bluetooth.BluetoothProfile
4 android.provider.ContactsContract.GroupsColumns
4 android.renderscript.RenderScriptGL
4 android.renderscript.Script
4 android.os.ParcelFileDescriptor
4 android.view.View
4 android.app.AlertDialog
4 android.app.Service
4 android.media.MediaPlayer
3 android.provider.LiveFolders
3 android.widget.AdapterViewAnimator
3 android.content.SyncAdapterType
3 android.util.SparseBooleanArray
3 android.widget.LinearLayout
3 java.lang.reflect.Constructor
3 android.content.Context
3 android.view.inputmethod.InputMethodManager
3 android.R.attr
3 android.content.pm.PackageStats
3 android.speech.RecognizerIntent
3 android.util.SparseIntArray
3 android.widget.RemoteViews
3 android.os.Build.VERSION_CODES
3 android.provider.ContactsContract.Contacts
3 android.media.AudioManager
3 java.util.logging.Handler
3 android.util.SparseArray
2 android.database.sqlite.SQLiteQueryBuilder
2 android.provider.MediaStore.Audio.AudioColumns
2 java.lang.reflect.Method
2 android.renderscript.Allocation
2 android.animation.Animator
2 android.opengl.Matrix
2 android.provider.CallLog.Calls
2 android.service.wallpaper.WallpaperService.Engine
2 android.speech.SpeechRecognizer
2 android.view.ViewGroup
2 android.app.admin.DevicePolicyManager
2 android.view.ViewParent
2 android.app.FragmentManager
2 android.app.PendingIntent
2 android.content.Intent
2 android.app.WallpaperManager
2 android.app.admin.DeviceAdminInfo
2 android.content.pm.PackageManager
2 android.widget.Scroller
2 android.widget.TextView
2 android.app.SearchManager
2 android.widget.OverScroller
2 android.graphics.Paint
2 android.Manifest.permission
2 android.R.string
2 android.app.Notification.Builder
2 android.webkit.WebChromeClient
2 android.webkit.WebSettings
1 android.animation.LayoutTransition
1 java.lang.reflect.Field
1 android.content.pm.ActivityInfo
1 android.content.ContentProvider
1 java.io.ObjectOutputStream
1 java.io.ObjectInputStream
1 android.os.Process
1 android.app.Fragment
1 android.os.Handler
1 android.view.Window
1 android.widget.ExpandableListView
1 android.view.ViewConfiguration
1 android.provider.Settings
1 android.graphics.RectF
1 android.view.InputDevice
1 android.graphics.Canvas
1 android.bluetooth.BluetoothAdapter
1 android.content.pm.ApplicationInfo
1 android.net.wifi.WifiManager
<1 android.text.Layout
<1 android.os.Debug
<1 android.test.mock.MockPackageManager
<1 android.inputmethodservice.InputMethodService
<1 android.widget.AbsListView
<1 android.preference.Preference
<1 android.view.KeyEvent
<1 android.view.WindowManager.LayoutParams
<1 android.provider.Settings.System
<1 android.app.Activity
<1 dalvik.annotation.TestTarget
<1 dalvik.annotation.TestTargetClass

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