一 . RunTime Permission (运行时权限)

     这一点是与之前有很大的不同,之前的权限都是在清单文件中申请,在安装的时候由用户一次授权完成。6.0的版本把部分权限改成了在程序运行的过程中去动态的向用户申请。这部分的用法较多,以后详细说明。这个功能只有在申明targetSDKVersion >= 23 的才会生效


.睡眠模式 APP的待机模式

        睡眠模式:手机没有插电并且是静止的,屏幕关闭一段时间后,系统进入睡眠模式。睡眠模式下,它将阻止APP进行网络读取,推迟预定的job,sycs,已经标准闹钟。APP的活动只是推迟了,系统还是间断的来允许这些功能执行,之后再次进入睡眠模式。如果一直处于睡眠,APP被唤醒的等待时间会越来越长。打个比方,如果一分钟后唤醒APP一次,,第二次是三分钟后,第三次可能就是十分钟后了,大概就是这种工作模式。

       如果移动手机,点击屏幕,插上电源,系统就退出了睡眠模式。

     APP的待机模式:当一段时间不点击APP的时候。允许系统决定是否将APP设置为闲置的。闲置的APP的行为就类似于进入睡眠模式后的APP行为了。如果充电,这种模式自动就取消了。长时间处于闲置的APP,一天运行进行一次网络读写。

       两者的目的都是为了减少电量的消耗。达到长时间待机的目的。(赶脚有木有点像诺基亚的情景模式啊)


三. 移除apache的httpClien 

      假如你的APP使用api 9以上,建议使用httpURLConnection,它因为使用透明压缩传输,响应缓存而更加的高效,电量消耗更少。如果需要继续使用apache的httpClient需要在buid.gradle中申明

android {    useLibrary 'org.apache.http.legacy'}


四. BoringSSL

    Android 正在抛弃OpenSSL 而使用BoringSSL (什么东东,感觉没怎么用到~)。如果你正在使用Android NDK ,不要链接依赖cryptographic这些库,像libcrypto.so and libssl.so


五. 获取硬件识别码(Access hardware identifier)

     为了更好的数据保护,从这个版本开始,系统移除了直接获得硬件识别码的方法。WIFI 和 Bluetooth 的APIS有部分变,WifiInfo.getMacAddress() 和 BluetoothAdapter.getAddress() 方法返回一个固定的值 02:00:00:00:00:00.

     可以通过wifi和蓝牙扫描获取附近设备的标识符,不过需要申请权限ACCESS_FINE_LOCATION和ACCESS_COARSE_LOCATION。使用下面的方法来进行扫描:WifiManager.getScanResults()BluetoothDevice.ACTION_FOUNDBluetoothLeScanner.startScan()

     需要注意的是:当进行后台的蓝牙和wifi扫描的时候,这种操作对外部设备是可见的,但是外部的设备看到的mac地址是随机的。


六. 通知栏

    移除了Notification.setLatestEventInfo()这个方法


七. AudioManager

    不在支持直接通过AudioManager调整声音的大小和静音操作。setStreamSolo()弃用,应该调用 requestAudioFocus()。同样的, setStreamMute() 弃用,应该调用adjustStreamVolume()传递值 ADJUST_MUTE或者 ADJUST_UNMUTE.setStreamSolo()弃用,应该调用 requestAudioFocus()。同样的, setStreamMute() 弃用,应该调用adjustStreamVolume()传递值 ADJUST_MUTE或者 ADJUST_UNMUTE.


八. Text Seletion (文本选择)

    恩,这家伙就是一个可以选中文本进行赋值,拷贝,黏贴等操作,不多说,感觉没什么太大用处


九. Brower Bookmarker changes

    这个版本移除了全局的书签,移除方法:android.provider.Browser.getAllBookmarks()和android.provider.Browser.saveBookmark() methods 移除权限the READ_HISTORY_BOOKMARKS和 WRITE_HISTORY_BOOKMARKS 。意味着这个版本之后需要内部存储书签了。


十. keystore变化

    不在支持DSA格式


十一. wifi 和网络变化

   1.只允许APP改变自己创建的wifi配置状态。不能删除或者修改其它人创建的wifi配置信息

   2.之前可以强制到wifi网络,移动网络的连接会断开。但是这个版本不再这么做。假如targetSdkVersion 是“21”或者更高, 需要使用多网络APIs (像        openConnection(), bindSocket()和bindProcessToNetwork() 方法去确保网络数据被发送到指定的网络


十二. 摄像头服务改变

     不在实行先申请,先服务的策略。会更加优先级来进行选择


十三. RunTime (运行时)

     总的来就是修改newInstance()这个类。假如你的APP使用v7 appcompat library or the v7 recyclerview library你必须要更新到最新的版本 确保任何自定义的被XML引用的类能够正确创建。


十四. APK 校验

      APK 校验
对APK执行更加严格的校验 ,假如有文件在清单中进行了申明,但是却找不到时,则认为这个APK是损坏的。只要有内容被删除,APK必须重新进行打包


十五. USB 连接

     默认只进行充电。其它的操作需要显示的授权。


十六。 android for work change(啥东西,,,没见过)

     太长不看~~任性~~

ps:以上内容为翻译加理解。上原文:https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-afw






更多相关文章

  1. Android(安卓)MVVM:Google 为 Android(安卓)又开了一扇窗
  2. Android(安卓)开发自己的网络收音机4——读取XML文件的电台数据
  3. Android中使用网络定位需要的设置
  4. Looper中的睡眠等待与唤醒机制
  5. 《第一行代码Android》学习总结第二章 Acitivity的生命周期与启
  6. 挑战独立开发项目能力--IT蓝豹
  7. android Task类
  8. 整个网络可能最完善的 Android(安卓)自定义键盘 问题汇总以及解
  9. Android(安卓)USB默认连接模式为MTP

随机推荐

  1. Android(安卓)6.0、7.0 WiFi getScanResu
  2. Android(安卓)SubsamplingScaleImageView
  3. spring cloud+spring boot+redis社交电子
  4. cocos2d-x 3.16 Lua android studio 打包
  5. android改变CheckBox的样式
  6. 设置android编码格式与包的引入格式于源
  7. Android(安卓)studio如何使用SVN进行版本
  8. android Toast大全(五种情形)
  9. Android异步AsyncTask二三解
  10. Android(安卓)Service的说明和注意事项