Android features for developers through the ages

Android Version History

Name Version Issue date API Level
The Android 1.0 1.0 September 23, 2008 1
The Android 1.1 1.1 February 09, 2009 2
Android Cupcake 1.5 April 27, 2009 3
Android Donut 1.6 September 15, 2009 4
Android Eclair 2.0 ~ 2.1 October 26, 2009 5 to 7
Android Froyo 2.2 ~ 2.2.3 May 20, 2010 8
Android Gingerbread 2.3 ~ 2.3.7 December 06, 2010 9 ~ 10
Android Honeycomb 3.0 ~ 3.2.6 February 22, 2011 11 ~ 13
Android Ice Cream Sandwich 4.0 ~ 4.0.4 October 18, 2011 14 ~ 15
Android Jelly Bean 4.1 to 4.3.1 July 09, 2012 16 ~ 18
Android KitKat 4.4 ~ 4.4.4 October 31, 2013 19 to 20
Android Lollipop 5.0 to 5.1.1 November 12, 2014 21 ~ 22
Android Marshmallow 6.0 the 6.0.1 October 05, 2015 23
Android Nougat 7.0 to 7.1.2 August 22, 2016 24 and 25
Android Oreo 8.0 ~ 8.1 August 21, 2017 26 ~ 27
Android Pie 9 August 06, 2018 28
Android 10 10 September 3, 2019 29
Android 11 11 September 08, 2020 30
Android 12 12 October 2021? day 31

History of eggs

Version Share (as of May 7, 2019)

Jelly Bean": 0.3 "4.4.1. X Jelly Bean": 1.2" 4.4.2. X Jelly Bean": 5 "Jelly Bean": 0.5" Jelly Bean": 6.9 "5.0 Lollipop": 3.0 "5.1 Lollipop": 11.5 "6.0 Marshmallow": 16.9 "7.0 Nougat": 11.4 "7.1 Nougat": 7.8 "8.0 Oreo": 12.9 "8.1 Oreo": 15.4 "9 Pie": 10.4
Version Name API Runtime Proportion
2.3.3 ~ 2.3.7 Gingerbread 10 Dalvik 1.4.0 0.3%
4.0.3 ~ 4.0.4 Jelly Bean 15 Dalvik 0.3%
X 4.1. Jelly Bean 16 Dalvik 1.2%
X 4.2. Jelly Bean 17 Dalvik 1.5%
4.3 Jelly Bean 18 Dalvik 0.5%
4.4 Jelly Bean 19 Dalvik & ART 1.6.0 6.9%
5.0 Lollipop 21 ART 2.1.0 3.0%
5.1 Lollipop 22 ART 11.5%
6.0 Marshmallow 23 ART 16.9%
7.0 Nougat 24 ART 11.4%
7.1 Nougat 25 ART 7.8%
8.0 Oreo 26 ART 12.9%
8.1 Oreo 27 ART 15.4%
9 Pie 28 ART 10.4%

Screen Size and density ratio (as of 30 August 2020)

ldpi mdpi tvdpi hdpi xhdpi xxhdpi Total
Small 0.1% 0.1% 0.2%
Normal 0.4% 0.3% 17.0% 41.1% 25.9% 84.7%
Large 1.8% 2.0% 0.7% 2.6% 2.1% 9.2%
Xlarge 3.5% 1.9% 0.5% 5.9%
Total 0.1% 5.7% 2.3% 19.6% 44.3% 28.0%

Vulkan version (as of August 30, 2020)

Vulkan version Distribution rate
There is no 47.0%
Vulkan 1.0.3 25.0%
Vulkan 1.1 28.0%

OpenGL ES Version (as of August 30, 2020)

OpenGL ES version Distribution rate
GL 2.0 12.28%
GL 3.0 16.57%
GL 3.1 8.77%
GL 3.2 62.38%

The Android framework

The Android software stack

Android system architecture diagram

Historical Version Features

reference

4.0 ~ 4.4Jelly Bean API14~19

  1. NFC function
  2. IR infrared transmitter
  3. The remote control
  4. Print the framework
  5. Store access framework to browse files
  6. Low power sensor [pedometer and pedometer,]
  7. Share the SMS provider
  8. Full screen immersion mode
  9. The TransitionManager for the animation scene
  10. Transparent systemThe UI style

  11. Enhanced WebView [HTML5, CSS3, JavaScript Engine (V8)]
  12. Screen recording surfaceView.setSecure () can mask recording
  13. Adaptive resolution switching [Change resolution seamlessly during playback] DASH Universal encryption
  14. HTTP Live streaming (HLS) hidden captioning
  15. DSP Audio Tunnel Audio monitoring volume enhancer is used to improve the audio timestamp of AV synchronization
  16. Wi-fi CERTIFIED Miracast ™
  17. RenderScript Compute GPU-accelerated NDK uses RenderScript directly
  18. OpenGL ES 2.0 [support for main display, external display (such as HDMI), and HWComposer 1.3 support for a virtual display]
  19. Accessibility function
  20. Permission [INSTALL_SHORTCUT(installation shortcut), UNINSTALL_SHORTCUT(uninstall shortcut), TRANSMIT_IR(infrared transmitter)]

Lollipop API21~22 (most ambitious Android version!)

  1. ART replace Dalvik
  2. Material Design
  3. 64-bit NDK Android 5.0 introduces support for 64-bit systems
  4. Notifications [Floating notifications, screen-lock notifications, header notifications, adding new metadata, no longer requiring RemoteViews]
  5. Android TV Input Framework (TIF)
  6. An overview of the space

  7. Advanced Connection BLE Concurrent multi-network NFC application ID
  8. OpenGL ES 3.1 android Extension
  9. Audio enhancement Low delay audio input Audio stream mixing (up to eight channels, including 5.1 and 7.1 channels for mixing) Browse media text speech conversion synthetic USB audio peripherals Opus audio codec from other applications
  10. Enhanced camera and video allow 4K support for RAW formats such as YUV and Bayer RAW
  11. Screen capture sharing
  12. New sensor Tilt detector Heart rate sensor Interactive composite sensor (wake up, pick up, saccade and other special gesture recognition)
  13. Chromium WebView [added WebRTC, WebAudio, WebGL]
  14. Tools for developing power-saving applications

    The addition ofJob SchedulingThe API allows you to optimize battery life by postponing operations to a later date or under specified conditions, such as when the device is being charged or connected to WLAN.

    The addition ofdumpsys batterystatsCommand generationBattery usage statistics, you can understand the power consumption of the entire system, and understand the impact of your application on the device battery. You can view power consumption event history, approximate power consumption for each UID and system component, and other information.

6.0 Marshmallow API23

  1. Runtime permissions
  2. Low power consumption mode and application standby mode
  3. Android {useLibrary ‘org.apache.http.legacy’}
  4. The OpenSSL library switches to using BoringSSLDo not link to cryptographic libraries that are not part of the NDK API, such aslibcrypto.solibssl.so.
  5. Hardware identifier access WifiInfo.getMacAddress()Methods andBluetoothAdapter. GetAddress () must haveACCESS_FINE_LOCATIONACCESS_COARSE_LOCATIONpermissions
  6. Use Notification.Builder instead
  7. The AudioManager change no longer supports setting the volume or muting a specific audio stream directly through the AudioManager class.
  8. Text select float toolbar startActionMode(Callback, actionmode.type_floating)
  9. Browser bookmarks changes This version removes support for global bookmarks.
  10. Android keystore changes From this release, the Android keystore provider no longer supports DSA. However, ECDSA is still supported.
  11. WLAN and network connection changes

    Your application can only change what you createdWifiConfigurationThe state of the object.

    Using multi-network apis (e.gopenConnection(),bindSocket()And the newbindProcessToNetwork()Method) to ensure that network traffic is transmitted over the selected network.
  12. Camera Service changes In this release, the access mode for shared resources in the camera service has been changed from the previous “first come first served” access mode to the high-priority process first access mode.
  13. APK validation The platform now performs more stringent APK validation. If a file declared in the manifest does not exist in the APK, the APK is considered corrupted. You must re-sign the APK after removing any content.
  14. USB Connection By default, device connections through the USB port are now set to charge only mode. Remind users

7.0 ~ 7.1 Nougat API24 ~ 25

  1. Power optimization

  2. The background to optimize
  3. Permission change Application private directory access is restricted
  4. file://URI authorization is prohibited for virtual files. Content ://URI FileProvider is recommended
  5. Accessibility improvement
  6. Minimum screen zoom sw320DP
  7. Prevents applications from dynamically linking non-public NDK libraries to those below API23 and temporarily opens libandroid_runtime.so, libcutils.so, libcrypto
  8. Split screen display
  9. OpenGL ES 3.2 API
  10. Vulkan API
  11. Use a hardware-supported keystore
  12. Night mode
  13. Traffic protection mode

8.0 Oreo API26

  1. Notification column classification
  2. Dot Angle standard
  3. Notice the background
  4. Background Limit Background service limit: The application in idle state has a limit on the background services that can be used. Broadcast restriction: With limited exceptions, applications cannot register receivers for implicit broadcasts.
  5. Picture in picture
  6. Adaptive icon
  7. Bluetooth upgrade
  8. Intelligent text selection and intelligent sharing (can you extend your own options into)
  9. WLAN perception
  10. Remove the screen aspect ratio limit
  11. Fonts Downloadable fonts, XML defined fonts
  12. Adaptive TextView, unified layout margins
  13. Wide color gamut
  14. Multi-monitor support [Multi-screen interaction]
  15. Application categories can be declared

8.1 Oreo (Go version) API27

  1. Memory optimization improves memory usage across the platform, ensuring that applications run efficiently on devices with less than 1GB of memory.
  2. Flexible location options New hardware feature constants that allow you to distribute applications to normal or low memory devices via Google Play.
  3. The Neural Networks API provides accelerated computation and inference for machine learning frameworks on the device, such as TensorFlow Lite and Caffe2.
  4. Auto-fill frame updates
  5. Notifications Now, apps can only emit notifications once per second. Low memory Android device does not support NotificationListenerService and ConditionProviderService, These devices in the calling ActivityManager. IsLowRamDevice () will return true.
  6. The EditText updateStarting with API level 27,EditText.getText()Method returnsEditable; Before, it would have returnedCharSequence.
  7. Programmatic secure browsing operationsYour application can be accessed atWebViewThe instance detected this behavior when it tried to redirect to a url that Google has classified as a known threat.

9.0 Pie API28

  1. Wi-fi RTT works with AN AP that supports RTT for indoor positioning with an accuracy of 1 to 2 meters. Usage scenario: “Turn on this light”, “Is there a special offer on this product?”
  2. Display notch supports DisplayCutout
  3. ImageDecoder replace BitmapFactory
  4. AnimatedImageDrawable is used to draw and display GIF and WebP animated images.
  5. User portrait of SMS
  6. Full screen full support
  7. Various notifications in the notification bar
  8. More footage from multiple cameras
  9. WiFi location in addition to GPS location
  10. Networks and neural networks
  11. **Material Design usher in the 2.0 era **
  12. Digital health
  13. Adaptive function
  14. Unified Biometric Authentication dialog box
  15. APK Signature Scheme v3
  16. Window change Details
  17. The spin button triggers the rotation manually
  18. Text precomputed by Smart Linkify
  19. DEX file ART conversion ahead of time

10. Android 10 API29

  1. Restrict non-SDK interfaces
  2. Gestures to navigate
  3. NDK shared objects must not contain text relocation, Bionic libraries and dynamic linker path changes, system binaries/libraries will map to execution-only memory (unreadable)
  4. securityBy default, TLS 1.3 is enabled for all TLS connections. Sha-1 hashing certificates are not trusted in TLS connections; KeyChain behavior changes and improvements: Starting with Android 10,KeyChainObject will be calledKeyChain.choosePrivateKeyAlias()Trust authority and key specification parameters to display certificate selection prompts to the user. Note that this prompt does not contain options that do not conform to the server specification.
  5. WLAN direct broadcast
  6. WLAN Awareness function
  7. SYSTEM_ALERT_WINDOW An application running on an Android 10 (Go) device cannot obtain the SYSTEM_ALERT_WINDOW permission.
  8. A warning for apps targeting older versions of Android
  9. Sha-2 CBC cryptosuites Removed These cryptosuites are not as secure as similar cryptosuites using GCM
  10. HTTPS Connection ChangeIf the app running on Android 10 willnullPassed to setSSLSocketFactory(), IllegalArgumentException appears.
  11. The Android.preference library is deprecated
  12. ZIP file utility library changed
  13. Camera change android: resizeableActivity
  14. Battery usage tracking starts with Android 10, and SystemHealthManager resets its battery usage statistics whenever a device is unplugged after a major charging event.
  15. Android Beam has deprecated some NFC apis.

11.0 Android 11 API30

  1. Privacy Settings
  2. Contact history Notice
  3. security SSLSocketImplementation is based onConscrypt.
  4. Scudo Hardened Locator Android 11 internally uses Scudo Hardened Locator to provide services for heap allocation.
  5. Application usage statistics
  6. Simulator support for 5G
  7. The JobScheduler API calls restrict debugging
  8. File descriptor debugger (FDSAN)
  9. Non-sdk interface restrictions
  10. Version V1 of Google Maps shared Library has been removed
  11. Sharing a CONTENT URI If your app shares a content URI with another app, the intent must set at least one of the following intent flags to grant access to the URI: FLAG_GRANT_READ_URI_PERMISSION and FLAG_GRANT_WRITE_URI_PERMISSION.
  12. Deprecate Display#getSize and getMetrics

12 API31 Android 12.0

  1. Scrolling effectOn Android 11 and below, scrolling events make visual elements glow. In Android 12 and later, visual elements stretch and bounce when a drag event occurs; When a quick slide event occurs, they slide and bounce quickly:



    The new scrolling behavior affects drag and fast slide animations.
  2. The system can display the foreground service notification 10 seconds later for some foreground services. This change enables some short-term tasks to be completed before notifications are displayed.
  3. Improved gesture navigation in Immersive mode
  4. Network Intent Parsing
  5. Restricted application standby mode The storage partition system determines the priority of application resource requests based on the time recency and frequency of applications.
  6. Power management Restrictions If the system places your application on a restricted storage partition, the following restrictions apply: – You can run a job once per day in a 10-minute batch session. During this session, jobs for your application are grouped with jobs for other applications. – Your application can run fewer rush jobs than if the system puts your application in a less restrictive storage partition – your application’s imprecise alarm clock is sent once a day. You create an imprecise alarm when calling the set(), setInexactRepeating(), setAndAllowWhileIdle(), or setWindow() methods. – Your application can receive up to five high-priority Firebase Cloud Messaging (FCM) messages in a timely manner per day. All subsequent FCM messages are delivered at normal priority, so they may be delayed if the device is in power saving mode.
  7. Display#getRealSize and getRealMetrics: waste and sandbox
  8. Improved refresh rate switching
  9. Switch between microphone and camera
  10. Microphone and camera indicators
  11. The application cannot close the system dialog box
  12. In order to keep the system secure and maintain a good user experience, Android 12 prevents apps from using touch events, which overlay apps in an unsafe way.
  13. Permissions Visibility of software packages
  14. Android 12 removed many BouncyCastle implementations of previously deprecated encryption algorithms (including all AES algorithms). The system uses Conscrypt to implement these algorithms.
  15. Clipboard access notification
  16. Passpoint update
  17. Updated restrictions on non-SDK interfaces