Android 5
- Dalvik退出,ART正式成为唯一的运行环境。AOT(预编译)被引入。
- Material Design被引入。卡片式展示;可使系统主题颜色随APP变化。
Android 6
- 引入运行时权限。6.0之前所有权限是在安装时检查,用户同意赋予所有APP请求的权限,APP就可以继续安装,不同意其中的任何一项权限,APP无法继续安装。6.0开始,权限被分为普通权限和敏感权限,普通权限只要声明了就可以赋予,即安装时自动授予;敏感权限则是在要使用时再检查,如,点击了拍照按钮,在调用相机前需要程序主动申请(弹出请求弹框)相机权限,用户同意给相机权限,才能使用相机,否则相机不可用。
- 指纹识别原生支持:提供统一的指纹 API,用于解锁、支付等。
- Doze(瞌睡模式)与APP StandBy(应用待机模式)。瞌睡模式会让手机在长时间没有操作使用的情况逐步切断网络、CPU唤醒、后台任务等,进入一种省电模式。应用待机模式如果一个应用没有被用户主动启动(例如点开图标)或没有在前台运行,且没有持有唤醒锁,系统会将其标记为"空闲"状态,限制该应用的后台网络活动。
Android 7
- 重新引入了JIT(即时编译),不再在应用安装时预编译为机器码,而是JIT+基于profile文件的方式,避免了安装应用耗时。
- 多窗口支持。可同时展示两个应用。
- APK签名方案V2。
Android 8
- 引入了通知渠道。通过渠道可将通知分为多个类别,例如私信、广告、评论等,用户可根据不同渠道选择是否让该类通知显示。在这之前没有分类,用户只能决定该应用的通知是全都显示,还是全都不显示。
- 不允许创建后台服务,必须启动前台服务且有通知显示出来。
- 长按图标,会有菜单弹出。
- 权限管控更精细。8之前如果应用在 AndroidManifest.xml 中同时声明了同一权限组的多个权限(如 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE),只要用户授予了组内任意一个权限,系统会自动、静默地把该组内所有在清单中声明的其他权限也一并授予。开发者无需再次请求。android 8开始只授予应用明确请求的那一个权限。同组的其他权限不会被自动获得,不过后续当应用再次请求该组内的其他权限时,系统会直接批准,不会再弹出授权弹窗,用户完全无感知。
Android 9
- 多摄像头支持。
- 限制非活动应用的后台访问:后台应用无法访问麦克风、相机,且传感器数据受限。
- HTTP 明文流量默认禁用:网络请求默认使用 HTTPS,若需 HTTP 需在 manifest 中配置 usesCleartextTraffic。
- 前台服务权限:使用前台服务需声明 FOREGROUND_SERVICE 权限,且需在通知中展示。
Android 10
- 分区存储(Scoped Storage):应用默认只能访问自身私有目录和媒体库(通过 MediaStore),访问其他文件需用户通过 Intent.ACTION_OPEN_DOCUMENT 等系统选择器。
- 后台位置权限限制:申请后台位置权限需在 manifest 中声明 ACCESS_BACKGROUND_LOCATION,且需单独请求。
- 设备标识符限制:无法获取不可重置的设备 ID(如 IMEI、序列号),需使用 getAndroidId() 等替代。
- 深色主题:支持系统深色模式,需通过 AppCompatDelegate.setDefaultNightMode 或资源目录(night 限定符)适配。
- 后台启动 Activity 限制:应用在后台时无法启动 Activity,需使用通知或 PendingIntent 等方式。
Android 11
- 分区存储强制执行:无论 targetSdkVersion 多少,所有应用均受分区存储限制,仅媒体和文件选择器可访问共享存储。
- 一次性权限:请求位置、麦克风、相机时可授予"仅此一次",应用需正确处理权限被重置的情况。
- 自动重置权限:用户长时间未使用应用,系统自动重置所有运行时权限。
Android 12
- 应用休眠(App Hibernation):长时间未使用的应用,系统可重置权限并清除缓存文件。
- 启动画面(Splash Screen):引入新的 SplashScreen API,统一应用启动页体验。
Android 13
- 通知权限:发送通知需在运行时请求 POST_NOTIFICATIONS 权限,否则通知将被系统拦截
Android 14
- 前台服务类型:前台服务必须声明 foregroundServiceType,如 dataSync、mediaPlayback 等。