此文内容整理自Android官网。做个人笔记用。
一.运行时权限
七大危险权限组API23及以上使用时必须检查或申请
DANGEROUS permissions
1.android.permission-group.CALENDAR:
android.permission.READ_CALENDAR
android.permission.WRITE_CALENDAR
2.android.permission-group.CAMERA
android.permission.CAMERA
3.android.permission-group.CONTACTS
android.permission.READ_CONTACTS
android.permission.WRITE_CONTACTS
android.permission.GET_ACCOUNTS
4.android.permission-group.LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
5.android.permission-group.MICROPHONE
android.permission.RECORD_AUDIO
6.android.permission-group.PHONE
android.permission.READ_PHONE_STATE
android.permission.CALL_PHONE
android.permission.READ_CALL_LOG
android.permission.WRITE_CALL_LOG
com.android.voicemail.permission.ADD_VOICEMAIL
android.permission.USE_SIP
android.permission.PROCESS_OUTGOING_CALLS
7.android.permission-group.SENSORS
android.permission.BODY_SENSORS
8.android.permission-group.SMS
android.permission.SEND_SMS
android.permission.RECEIVE_SMS
android.permission.READ_SMS
android.permission.RECEIVE_WAP_PUSH
android.permission.RECEIVE_MMS
android.permission.READ_CELL_BROADCASTS
9.android.permission-group.STORAGE
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
1.低电耗模式
设备未接通电源、处于静止状态一段时间且屏幕关闭,设备会进入低电源模式。
此模式下系统会尝试限制应用对网络和CPU密集型服务的访问来节省电量。这还可以阻止应用访问网络并推迟其作业、同步和标准闹铃。
系统会定期退出低电耗模式一会儿,让应用完成已推迟的任务。此时段称之为维护时段,但维护时段的次数会越来越少。
限制:
a.暂停访问网络。
b.系统将忽略 wake locks。
c.标准 AlarmManager 闹铃(包括 setExact() 和 setWindow())推迟到下一维护时段。
如果您需要设置在低电耗模式下触发的闹铃,请使用 setAndAllowWhileIdle() 或 setExactAndAllowWhileIdle()。
一般情况下,使用 setAlarmClock() 设置的闹铃将继续触发 — 但系统会在这些闹铃触发之前不久退出低电耗模式。
d.系统不执行 Wi-Fi 扫描。
e.系统不允许运行同步适配器。
f.系统不允许运行 JobScheduler。
应用待机模式可推迟用户近期未与之交互的应用的后台网络 Activity。
三.取消对HttpClient的支持,使用HttpURLConnection
四.硬件标识符访问权
此版本开始,对于使用WLAN API和Bluetooth API的应用,android移除了对设备本地硬件标识符的编程访问权。
WifiInfo.getMacAdderss()和BluetoothAdapter.getAddress()方法现在会返回常量值02:00:00:00:00:00。
新版本中,要通过蓝牙和WLAN扫描访问附近外部设备的硬件标识符,应用必须拥有ACCESS_FINE_LOCATION或ACCESS_COARSE_LOCATION权限
这三个方法都需要位置权限:wifiManager.getScanResults(),BlutoothDevice.ACTION_FOUND,BluetoothLeScanner.startScan()
注:当运行 Android 6.0(API 级别 23)的设备发起后台 WLAN 或蓝牙扫描时,在外部设备看来,该操作的发起来源是一个随机化 MAC 地址。
五.通知
移除了Notification.setLatestEventInfo().改用Notification.Builder类构建通知。调用build()方法可获取更新后的Notification实例
六.多媒体
1.音频管理器:
不再支持通过 AudioManager 类直接设置音量或将特定音频流静音。setStreamSolo() 方法已弃用,您应该改为调用 requestAudioFocus() 方法。
类似地,setStreamMute() 方法也已弃用,请改为调用 adjustStreamVolume() 方法并传入方向值 ADJUST_MUTE 或 ADJUST_UNMUTE。
2.相机服务:
相机服务中共享资源的访问模式已从之前的"先到先得"变为高优先级进程优先。
a.根据进程优先级授予访问权。一般情况下,可见activity或前台activity优先级较高
b.高优先级应用尝试使用相机时,系统可能会“驱逐”正在使用相机的低优先级应用。
c.在配备相应相机硬件的设备上,不同的应用进程可同时独立打开和使用不同的相机设备。
d.更改当前用户会导致之前用户帐户拥有的应用内活动相机客户端被驱逐。
3.WLAN和网络连接变更:
a.应用只能更改本应用创建的wifiConfiguration对象的状态。
b.在之前的版本中,如果应用利用带有 disableAllOthers=true 设置的 enableNetwork() 强制设备连接特定 WLAN 网络,设备将会断开与移动数据网络等其他网络的连接。在此版本中,设备不再断开与上述其他网络的连接。如果您的应用的 targetSdkVersion 为 “20” 或更低,则会固定连接所选 WLAN 网络。
七.运行时
ART 运行时环境现在可正确实现 newInstance() 方法的访问规则。此变更修正了之前版本中 Dalvik 无法正确检查访问规则的问题。
如果您的应用使用 newInstance() 方法,并且您想重写访问检查,请调用 setAccessible() 方法(将输入参数设置为 true)。
如果您的应用使用 v7 appcompat 库或 v7 recyclerview 库,则您必须更新应用以使用这些库的最新版本。否则,请务必更新从 XML 引用的任何自定义类,以便能够访问它们的类构造函数。