Android 10 version
Android 10 overview
https://developer.android.google.cn/about/versions/10?hl=zh-cn
The article is extracted based on official information
Privacy changes in Android 10
https://developer.android.google.cn/about/versions/10/privacy?hl=zh-cn
major changes
-
External storage access is scoped to app files and media
( https://developer.android.google.cn/about/versions/10/privacy/changes?hl=zh-cn#scoped-storage ) -
Accessing device location information while running in the background requires permission
ACCESS_BACKGROUND_LOCATION
( https://developer.android.google.cn/about/versions/10/privacy/changes?hl=zh-cn#app-access-device-location )- Automatically grant access when targeting Android 9 or lower
- Access when the device is upgraded to Android 10
( https://developer.android.google.cn/about/versions/10/privacy/changes?hl=zh-cn#access_when_device_is_upgraded_to )
-
Restrictions on starting an Activity from the background
( https://developer.android.google.cn/about/versions/10/privacy/changes?hl=zh-cn#background-activity-starts )
Identifiers and data
New restrictions have been implemented for hardware identifiers such as IMEI, serial number, MAC and similar data.
- Contact affinity information removed
- Randomized MAC address
( https://developer.android.google.cn/about/versions/10/privacy/changes?hl=zh-cn#randomized-mac-addresses ) - Restricted access to the /proc/net filesystem
- Implemented restrictions on non-resettable device identifiers
( https://developer.android.google.cn/about/versions/10/privacy/changes?hl=zh-cn#non-resettable-device-ids ) - Restricted access to clipboard data
- Protect USB device serial number
Cameras and Connectivity
Stronger protections are provided for camera metadata and connection APIs.
( https://developer.android.google.cn/about/versions/10/privacy/changes?hl=zh-cn#camera-connectivity )
- Restricted access to camera details and metadata
- Enforced restrictions on enabling and disabling Wi-Fi
- Restrictions on direct access to configured WLAN networks
- Some telephony APIs, Bluetooth APIs and WLAN APIs require precise location permission
https://developer.android.google.cn/about/versions/10/privacy/changes?hl=zh-cn#location-telephony-bluetooth-wifi
permissions
Some changes to the permissions model and requirements.
- Restricting access to screen content
changedREAD_FRAME_BUFFER、CAPTURE_VIDEO_OUTPUT 和 CAPTURE_SECURE_VIDEO_OUTPUT
the scope of permissions
( https://developer.android.google.cn/about/versions/10/privacy/changes?hl=zh-cn#screen-contents ) - User-facing permission checks (for legacy apps)
- Physical Activity Recognition
ACTIVITY_RECOGNITION
- Removed permission groups from the interface
Behavior Change: All Apps
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn
Restrict non-SDK interfaces
gesture navigation
Starting with Android 10, users can enable gesture navigation in their devices. When enabled by the user, gesture navigation affects all apps on the device, regardless of whether the app targets API level 29 or not.
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#gesture-nav
GDR
- Shared objects must not contain text relocations
- Bionic library and dynamic linker path changes
- System binaries/libraries are mapped into execute-only memory
Safety
- TLS 1.3 is enabled by default
- TLS does not trust certificates signed with SHA-1
- KeyChain behavior changes and improvements
- Other TLS and encryption changes
Wi-Fi Direct Broadcast
The following Wi-Fi Direct-related broadcasts are not sticky:
WIFI_P2P_CONNECTION_CHANGED_ACTION WIFI_P2P_THIS_DEVICE_CHANGED_ACTION
Wi-Fi awareness
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#wifi-aware
SYSTEM_ALERT_WINDOW
( https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#sysalert-go ) on Go
devices runs on Android 10 (Go version) devices Apps for cannot obtain SYSTEM_ALERT_WINDOW
the permission. This is because drawing the overlay window uses too much memory, which can be detrimental to performance on low-memory Android devices.
Warning about apps targeting older versions of Android
On devices running Android 10 or higher, users will see a warning the first time they run an app targeting Android 5.1 (API level 22) or lower.
Removed SHA-2 CBC cipher suite
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#sha2-cbc-cipher-suites
App usage
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#app-usage
HTTPS connection changes
(https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#https-connection)
If an app running on Android 10 passes null to setSSLSocketFactory()
, an IllegalArgumentException will occur.
The android.preference library has been deprecated
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#preferences
ZIP file utility library changes
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#zip-file-library
camera change
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#camera
Apps targeting API level 24 or higher should explicitly set android:resizeableActivity and provide the necessary functionality to handle multi-window operations.
battery usage tracking
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#battery-tracking
Starting with Android 10, SystemHealthManager resets its battery usage statistics whenever the device is unplugged after a significant charging event. Generally speaking, a significant charging event is when the device battery is fully charged, or when the device is almost empty to almost full.
Android Beam is deprecated
https://developer.android.google.cn/about/versions/10/behavior-changes-all?hl=zh-cn#beam-deprecation
Behavior change: Apps targeting API 29 and higher
Update on restricting non-SDK interfaces
Shared memory
https://developer.android.google.cn/about/versions/10/behavior-changes-10?hl=zh-cn#shared-memory
Removed execute permission from app home directory
The Android runtime only accepts system-generated OAT files
Enforce AOT correctness in ART
Permission Changes for Fullscreen Intents
If your app targets Android 10 or higher and uses notifications involving a fullscreen intent, you must request USE_FULL_SCREEN_INTENT
the permission in your app's manifest file
Support for foldable devices
(https://developer.android.google.cn/about/versions/10/behavior-changes-10?hl=zh-cn#foldables)
In Android 10 (API level 29) and higher, you can subscribe to onTopResumedActivityChanged()
callbacks to be notified when an Activity acquires or loses its position in the topmost restored state.
java.io.FileChannel.map() changes
Android 10 for developers
Innovative technologies and new experiences
-
Foldable devices
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#foldables -
5G network
-
Smart reply in notifications
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#smart_reply_in_notifications -
Dark theme
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#dark_theme -
Gesture Navigation
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#gesture_navigation -
Settings panel
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#settings_panels -
Sharing shortcuts
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#sharing_shortcuts
User Privacy Settings
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#privacy_for_users
- Give users more control over location data
- Securing location data when scanning the web
Most APIs for scanning the web require coarse location permissions. Android 10 changes to require precise location permissions - Prevent device tracking
Apps can no longer access non-resettable device identifiers (which can be used for tracking), including device IMEI, serial number, and similar identifiers. The device's MAC address is also randomly assigned by default when connecting to a Wi-Fi network. - Protect user data on external storage Apps
can store their own files in a private sandbox, but must use MediaStore to access shared media files and the system file picker to access shared files in the new Downloads collection. - Shielding
Android 10 from unexpected interruptions prevents apps from launching in the background
safety
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#security
- storage encryption
- Enable TLS 1.3 by default
- Platform Security Enhancement
- Improved biometric features
Camera and Media
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#camera_and_media
- Dynamic Depth of Photos
- Capture the audio played
- New audio and video codecs
- Native MIDI API
- Zoomable directional microphone
- Vulkan is everywhere
connectivity
- Improved peer-to-peer and internet connectivity
- WLAN Performance Modes
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#wi-fi_performance_modes
Request adaptive WLAN by enabling high-performance and low-latency modes
Android Basics
- ART optimization
- Neural Networks API 1.2
- Thermal API
- Compatibility through public API
The update speed is faster and the code update frequency is higher
https://developer.android.google.cn/about/versions/10/highlights?hl=zh-cn#faster_updates_fresher_code