Cleartext traffic is blocked by default
Apps targeting Android 9 cannot make cleartext HTTP connections unless they opt in.
What to doUse HTTPS. If cleartext is unavoidable for a specific domain, add a network security config exception.
Gesture navigation
Android 9 was about intelligence and restraint: adaptive battery, gesture navigation, and a platform that policed itself.
Battery life was dominated by apps doing background work, and the platform had no way to stop them.
Pie added App Standby Buckets, adaptive battery, gesture navigation, and the first restrictions on non-SDK interfaces. Cleartext HTTP was blocked by default.
Android started enforcing its own rules on apps.
What changed underneath the APIs. These are the changes this site's architecture modules explain in depth.
The full archive has every recorded change with its migration advice.
Apps targeting Android 9 cannot make cleartext HTTP connections unless they opt in.
What to doUse HTTPS. If cleartext is unavoidable for a specific domain, add a network security config exception.
Apps targeting Android 9 are restricted from using hidden APIs through reflection.
What to doReplace hidden API usage with public equivalents; check the API reference.
Foreground services require the FOREGROUND_SERVICE permission.
What to doDeclare FOREGROUND_SERVICE and, from Android 14, the per-type permissions.
Apps must handle display cutouts and their insets.
What to doUse WindowInsets and avoid assuming a rectangular display.
Apps cannot access the microphone or camera from the background.
What to doAccess sensors only while visible, or with an appropriate foreground service.
READ_EXTERNAL_STORAGE no longer grants access to some paths.
What to doUse MediaStore or the Storage Access Framework.
DNS queries can be encrypted with DNS over TLS.
What to doNo app change; be aware that hard-coded DNS assumptions may fail.
ACCEPT_HANDOVERdangerousFOREGROUND_SERVICEnormalNFC_TRANSACTION_EVENTnormalUSE_BIOMETRICnormalThis release shipped on Linux kernel versions 4.4, 4.9. Kernel versions vary by device.