Privacy. Limited access to sensors in background;Restricted access to call logs,phone numbers,
Restrictions on use of non-SDK interfaces
Security behavior changes. DOT or DOH
8.0 Oreo
Background execution limit. Background Apps can not receive most of implicit broadcasts .
Background location limit
App shotcuts
AlertWindow
Privacy. Use ANDROID_ID for device identifier. READPHONE_STATE permisson required if you need device serial, and should use Build.getSerial()
7.0 Nougat
Doze, not necessarily stationary
Background Optimizations. Apps can receive CONNECTIVITY_ACTION broadcast only which use Context.registReceiver() registed. ACTION_NEW_PICTURE and ACTION_NEW_VIDEO has been removed
Permissions Changes. Apps should use FileProvider instead "file://" to share files.
6.0 Marshmallow
Runtime Permission
Doze and App Stanby. unplugs and and leaves it stationary, with its screen off, for a period of time, the device goes into Doze mode, Doze not allow Jobschduler and AlarmManager to run. If user is not actively using an app, this app will be Stanby.
Apache Http Client Remove
use BoringSSL from OpenSSL
HW Identifier, WifiInfo.getMacAddress() and BluetoothAdapter.getAddress() will return " 02:00:00:00:00:00 "
5.0 Lollipop
Material Design
use ART Runtime instead Dalvik, which support AOT, JIT.
Job Scheduling API, allow you optimize battery life by deferring jobs for the system to run at a later time or under specified conditions, such as when the device is charging or connected to Wi-Fi