Android 6.0变化
Android6.0权限说明
Android中的正常权限
- ACCESS_LOCATION_EXTRA_COMMANDS
- 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_BACKGROUNDREQUE
- ST_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
除此之外还有危险权限,在Android6.0之后推出一个运行时权限的概念,开发者需要对这些危险权限进行单独适配,把选择权交给用户,对于上面提到的这个正常权限是不需要的,因为这些肯定对用户没有什么影响
危险权限
危险权限可以单独分为10个部分,细分为26个权限,下面单独说明:
- CALENDAR(用于与用户日历相关的运行时权限)
- READ_CALENDAR
- WRITE_CALENDAR
- CALL_LOG(用于与电话功能相关联的权限)
- READ_CALL_LOG
- WRITE_CALL_LOG
- PROCESS_OUTGOING_CALLS
- CAMERA(用于与访问摄像头或从设备捕获图像/视频相关联的权限)
- CAMERA
- CONTACTS(用于与此设备上的联系人和配置文件相关的运行时权限)
- READ_CONTACTS
- WRITE_CONTACTS
- GET_ACCOUNTS
- LOCATION(用于允许访问设备位置的权限)
- ACCESS_FINE_LOCATION
- ACCESS_COARSE_LOCATION
- MICROPHONE(用于与从设备访问麦克风音频相关联的权限)
- RECORD_AUDIO
- PHONE(用于与电话功能相关联的权限)
- READ_PHONE_STATE
- READ_PHONE_NUMBERS
- CALL_PHONE
- ANSWER_PHONE_CALLS
- ADD_VOICEMAIL
- USE_SIP
- SENSORS(用于与访问正文或环境传感器相关联的权限)
- BODY_SENSORS
- SMS(用于与用户的SMS消息相关的运行时权限)
- SEND_SMS
- RECEIVE_SMS
- READ_SMS
- RECEIVE_WAP_PUSH
- RECEIVE_MMS
- STORAGE(用于与共享外部存储相关的运行时权限)
- READ_EXTERNAL_STORAGE
- WRITE_EXTERNAL_STORAGE
对于上面这些权限,如果开发过程中有用到,需要的这些权限单独进行处理
Android 取消了HttpClient
Android 6.0 移除了对HttpClient的支持,如果在开发过程中以Android2.3或者以上的版本为目标开发环境,Android官方建议使用HttpURLConnection此 API 效率更高,因为它可以通过透明压缩和响应缓存减少网络使用,并可最大限度降低耗电量。要继续使用 Apache HTTP API,您必须先在 build.gradle 文件中声明以下编译时依赖项:
android {
useLibrary 'org.apache.http.legacy'
}
这两个是主要的变化,另外还有
- Notification
- AudioManager
等,如需看变更详情,可以取官网上面看
官网链接
Android 7.0 变化
广播
Android 7.0 移除了三项隐式广播,帮助优化内存和电量的消耗,为隐式广播会在后台频繁启动已注册侦听这些广播的应用。删除这些广播可以显著提升设备性能和用户体验
CONNECTIVITY_ACTION
ACTION_NEW_PICTURE
ACTION_NEW_VIDEO
移动设备会经历频繁的连接变更,例如在 WLAN 和移动数据之间切换时。目前,可以通过在应用清单中注册一个接收器来侦听隐式 CONNECTIVITY_ACTION 广播,让应用能够监控这些变更。由于很多应用会注册接收此广播,因此单次网络切换即会导致所有应用被唤醒并同时处理此广播。于此类似的还有
在之前版本的 Android 中,应用可以注册接收来自其他应用(例如相机)的隐式 ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO 广播。当用户使用相机应用拍摄照片时,这些应用即会被唤醒以处理广播。
为缓解这些问题,Android 7.0 应用了以下优化措施
- 面向 Android 7.0 开发的应用不会收到 CONNECTIVITY_ACTION 广播,即使它们已有清单条目来请求接受这些事件的通知。在前台运行的应用如果使用 BroadcastReceiver 请求接收通知,则仍可以在主线程中侦听 CONNECTIVITY_CHANGE
- 应用无法发送或接收 ACTION_NEW_PICTURE 或 ACTION_NEW_VIDEO 广播。此项优化会影响所有应用,而不仅仅是面向 Android 7.0 的应用
如果在开发过程有用到这些广播,需要对Android 7.0进行适配。之前看到一些应用保活类的博客,就又说道有广播唤醒应用,如果有用到这些广播,就要注意了。
多窗口模式
在Android7.0里面一个显著的变化就是支持了多窗口模式,
- 手机和平板: 用户能够并排运行两个应用,或者处于分屏模式时一个应用位于还有一个应用之上。用户能够通过拖动两个应用之间的分隔线来调整应用。
- Android TV: 应用能够将自身置于画中画模式。从而让它们能够在用户浏览或与其它应用交互时继续显示内容。
这个是属于Android 7.0的新增特性,当然如果在开发中没有这个多窗口显示的需求,也灭有过多关心这个
这里只说一下需要做适配的内容,另外Android 7.0还有另外一些新的特性,比如:
- 号码屏蔽
- 来电过滤
- 通知栏快捷回复
等等,感兴趣的可以取官网看看Android 7.0变更通知
Android 8.0变更
未完待续。。。。
网友评论