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
- NFC function
- IR infrared transmitter
- The remote control
- Print the framework
- Store access framework to browse files
- Low power sensor [pedometer and pedometer,]
- Share the SMS provider
- Full screen immersion mode
- The TransitionManager for the animation scene
- Transparent systemThe UI style
- Enhanced WebView [HTML5, CSS3, JavaScript Engine (V8)]
- Screen recording surfaceView.setSecure () can mask recording
- Adaptive resolution switching [Change resolution seamlessly during playback] DASH Universal encryption
- HTTP Live streaming (HLS) hidden captioning
- DSP Audio Tunnel Audio monitoring volume enhancer is used to improve the audio timestamp of AV synchronization
- Wi-fi CERTIFIED Miracast ™
- RenderScript Compute GPU-accelerated NDK uses RenderScript directly
- OpenGL ES 2.0 [support for main display, external display (such as HDMI), and HWComposer 1.3 support for a virtual display]
- Accessibility function
- Permission [INSTALL_SHORTCUT(installation shortcut), UNINSTALL_SHORTCUT(uninstall shortcut), TRANSMIT_IR(infrared transmitter)]
Lollipop API21~22 (most ambitious Android version!)
- ART replace Dalvik
- Material Design
- 64-bit NDK Android 5.0 introduces support for 64-bit systems
- Notifications [Floating notifications, screen-lock notifications, header notifications, adding new metadata, no longer requiring RemoteViews]
- Android TV Input Framework (TIF)
- An overview of the space
- Advanced Connection BLE Concurrent multi-network NFC application ID
- OpenGL ES 3.1 android Extension
- 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
- Enhanced camera and video allow 4K support for RAW formats such as YUV and Bayer RAW
- Screen capture sharing
- New sensor Tilt detector Heart rate sensor Interactive composite sensor (wake up, pick up, saccade and other special gesture recognition)
- Chromium WebView [added WebRTC, WebAudio, WebGL]
- 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 batterystats
Command 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
- Runtime permissions
- Low power consumption mode and application standby mode
- Android {useLibrary ‘org.apache.http.legacy’}
- The OpenSSL library switches to using BoringSSLDo not link to cryptographic libraries that are not part of the NDK API, such as
libcrypto.so
和libssl.so
. - Hardware identifier access WifiInfo.getMacAddress()
Methods and
BluetoothAdapter. GetAddress () must haveACCESS_FINE_LOCATION
或ACCESS_COARSE_LOCATION
permissions - Use Notification.Builder instead
- The AudioManager change no longer supports setting the volume or muting a specific audio stream directly through the AudioManager class.
- Text select float toolbar startActionMode(Callback, actionmode.type_floating)
- Browser bookmarks changes This version removes support for global bookmarks.
- Android keystore changes From this release, the Android keystore provider no longer supports DSA. However, ECDSA is still supported.
- WLAN and network connection changes
Your application can only change what you createdWifiConfiguration
The 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. - 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.
- 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.
- 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
- Power optimization
- The background to optimize
- Permission change Application private directory access is restricted
- file://URI authorization is prohibited for virtual files. Content ://URI FileProvider is recommended
- Accessibility improvement
- Minimum screen zoom sw320DP
- Prevents applications from dynamically linking non-public NDK libraries to those below API23 and temporarily opens libandroid_runtime.so, libcutils.so, libcrypto
- Split screen display
- OpenGL ES 3.2 API
- Vulkan API
- Use a hardware-supported keystore
- Night mode
- Traffic protection mode
8.0 Oreo API26
- Notification column classification
- Dot Angle standard
- Notice the background
- 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.
- Picture in picture
- Adaptive icon
- Bluetooth upgrade
- Intelligent text selection and intelligent sharing (can you extend your own options into)
- WLAN perception
- Remove the screen aspect ratio limit
- Fonts Downloadable fonts, XML defined fonts
- Adaptive TextView, unified layout margins
- Wide color gamut
- Multi-monitor support [Multi-screen interaction]
- Application categories can be declared
8.1 Oreo (Go version) API27
- Memory optimization improves memory usage across the platform, ensuring that applications run efficiently on devices with less than 1GB of memory.
- Flexible location options New hardware feature constants that allow you to distribute applications to normal or low memory devices via Google Play.
- The Neural Networks API provides accelerated computation and inference for machine learning frameworks on the device, such as TensorFlow Lite and Caffe2.
- Auto-fill frame updates
- 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.
- The EditText updateStarting with API level 27,
EditText.getText()
Method returnsEditable
; Before, it would have returnedCharSequence
. - Programmatic secure browsing operationsYour application can be accessed at
WebView
The instance detected this behavior when it tried to redirect to a url that Google has classified as a known threat.
9.0 Pie API28
- 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?”
- Display notch supports DisplayCutout
- ImageDecoder replace BitmapFactory
- AnimatedImageDrawable is used to draw and display GIF and WebP animated images.
- User portrait of SMS
- Full screen full support
- Various notifications in the notification bar
- More footage from multiple cameras
- WiFi location in addition to GPS location
- Networks and neural networks
- **Material Design usher in the 2.0 era **
- Digital health
- Adaptive function
- Unified Biometric Authentication dialog box
- APK Signature Scheme v3
- Window change Details
- The spin button triggers the rotation manually
- Text precomputed by Smart Linkify
- DEX file ART conversion ahead of time
10. Android 10 API29
- Restrict non-SDK interfaces
- Gestures to navigate
- 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)
- 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,
KeyChain
Object 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. - WLAN direct broadcast
- WLAN Awareness function
- SYSTEM_ALERT_WINDOW An application running on an Android 10 (Go) device cannot obtain the SYSTEM_ALERT_WINDOW permission.
- A warning for apps targeting older versions of Android
- Sha-2 CBC cryptosuites Removed These cryptosuites are not as secure as similar cryptosuites using GCM
- HTTPS Connection ChangeIf the app running on Android 10 will
null
Passed to setSSLSocketFactory(), IllegalArgumentException appears. - The Android.preference library is deprecated
- ZIP file utility library changed
- Camera change android: resizeableActivity
- Battery usage tracking starts with Android 10, and SystemHealthManager resets its battery usage statistics whenever a device is unplugged after a major charging event.
- Android Beam has deprecated some NFC apis.
11.0 Android 11 API30
- Privacy Settings
- Contact history Notice
- security
SSLSocket
Implementation is based onConscrypt. - Scudo Hardened Locator Android 11 internally uses Scudo Hardened Locator to provide services for heap allocation.
- Application usage statistics
- Simulator support for 5G
- The JobScheduler API calls restrict debugging
- File descriptor debugger (FDSAN)
- Non-sdk interface restrictions
- Version V1 of Google Maps shared Library has been removed
- 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.
- Deprecate Display#getSize and getMetrics
12 API31 Android 12.0
- 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. - 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.
- Improved gesture navigation in Immersive mode
- Network Intent Parsing
- Restricted application standby mode The storage partition system determines the priority of application resource requests based on the time recency and frequency of applications.
- 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.
- Display#getRealSize and getRealMetrics: waste and sandbox
- Improved refresh rate switching
- Switch between microphone and camera
- Microphone and camera indicators
- The application cannot close the system dialog box
- 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.
- Permissions Visibility of software packages
- Android 12 removed many BouncyCastle implementations of previously deprecated encryption algorithms (including all AES algorithms). The system uses Conscrypt to implement these algorithms.
- Clipboard access notification
- Passpoint update
- Updated restrictions on non-SDK interfaces