最近跟6.0的设备接触比较多,有些知识也想要重新回顾梳理下。
2015年谷歌推出了Android 6.0(Marshmallow棉花糖,API 23)系统。依旧是Android 5.0的Material Design设计,但在软件体验及运行性能方面做了很大优化,续航时间也有了提升。
Android 6.0系统主要新特性有:应用权限管理,指纹支持,Doze电量管理。
1.运行时权限机制
6.0以前的系统在安装APP的时候会直接一次性列出你安装的APP的访问权限,如图。这个弊端就是很多APP会申请没必要甚至危险的权限给自己,比如位置、短信等,借机窥探你的隐私。
而在Android 6.0中将不会在安装APP的时候列出需要的权限,而是在运行某个功能,而该功能有必须需要相应权限时候弹出对话框提醒用户授予。
1.1 Android 6.0以前版本
默认对小于23的应用授予了所申请的所有权限。
1.2 正常权限和危险权限
Google官方将权限分为了正常权限(Normal Permissions)和危险权限(Dangerous Permissions)。
Normal Permissions |
ACCESS_LOCATION_EXTRA_COMMANDS |
ACCESS_NETWORK_STATE |
ACCESS_NOTIFICATION_POLICY |
ACCESS_WIFI_STATE |
BLUETOOTH |
BLUETOOTH_ADMIN |
BROADCAST_STICKY |
CHANGE_NETWORK_STATE |
CHANGE_WIFI_MULTICAST_STATE |
CHANGE_WIFI_STATE |
DISABLE_KEYGUARD |
EXPAND_STATUS_BAR |
FOREGROUND_SERVICE |
GET_PACKAGE_SIZE |
INSTALL_SHORTCUT |
INTERNET |
KILL_BACKGROUND_PROCESSES |
MANAGE_OWN_CALLS |
MODIFY_AUDIO_SETTINGS |
NFC |
READ_SYNC_SETTINGS |
READ_SYNC_STATS |
RECEIVE_BOOT_COMPLETED |
REORDER_TASKS |
REQUEST_COMPANION_RUN_IN_BACKGROUND |
REQUEST_COMPANION_USE_DATA_IN_BACKGROUND |
REQUEST_DELETE_PACKAGES |
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS |
SET_ALARM |
SET_WALLPAPER |
SET_WALLPAPER_HINTS |
TRANSMIT_IR |
USE_FINGERPRINT |
VIBRATE |
WAKE_LOCK |
WRITE_SYNC_SETTINGS |
Danagerous Permission是分组出现的,如下如所示:
同一个组中的任何一个权限被授予的话,其他组内权限自动授予。
2.指纹支持
1.权限:USE_FINGERPRINT,<uses-permission android:name="android.permission.USE_FINGERPRINT" />
2.获取FingerprintManager实例,调用authenticate()方法。
3.Doze电量管理
Android 6.0系统引入了两个省电功能:低电耗模式和应用待机模式。两者的简单理解就如前面的思维导图介绍的一样。