• Android 6.0 新特性 整理 资料来自网络


    Android 6.0新特性

    • Runtime Permissions
    • Doze and App Standby
    • Apache HTTP Client Removal
    • BoringSSL
    • Access to Hardware Identifiers
    • Notifications
    • AudioManager Changes
    • Text Selection
    • Browser Bookmark Changes
    • Android Keystore Changes
    • Wi-Fi and Networking Changes
    • Camera Service Changes
    • Runtime
    • APK Validation
    • USB Connection
    • Android for Work Changes

    运行时权限-Runtime Permissions

    引入了新的权限模型
    6.0之前的版本中,关于权限部分的管理,是在APP安装的时候,出现一个权限的列表,同意则继续安装,之后的使用过程中无法重现的去修改权限--不利于用户体验啊
    其实现在很多的ROM厂家都已经创建了自己的权限管理的APP,就比如我手里面这个魅族手机中的手机管家,里面就有对每个APP权限的管理。某种意义上也是市场的需求。
    现在6.0的版本中,增加了这一功能。具体的细节如下。
    主要分两类:normal permission 和 dangerous permission

    • normal permission:不涉及用户隐私,不需要用户进行授权的
    • dangerous permission:涉及用户隐私的,需要用户授权

    相关的API

    检查权限:
    public int checkSelfPermission(String permission)
    activity中直接调用,有返回值,int类型
    分别对应:
    PackageManager.PERMISSION_GRANTED
    PackageManager.PERMISSION_DENIED

    申请授权
    public final void requestPermissions(String[] permissions, int requestCode) {}
    activity中直接调用,无返回值。
    当调用该方法的时候,手机界面上会弹出让用户操作的对话框,操作结束会触发回调函数onRequestPermissionsResult()
    参考博客

    Doze and App Standby

    6.0新版本中提供了两种省电延长电池寿命的功能,分别是doze和app standby
    谷歌便是,屏幕处于关闭状态,平均续航时间提高30%

    什么时候进入doze

    • 用户不操作设备一段时间
    • 屏幕关闭
    • 设备未充电

    doze下有哪些限制

    • 网络关闭
    • wake lock会被屏蔽
    • AlarmManager 定时任务延迟到下一个 maintenance window 进行处理,除非使用android6.0在AlarmManager新增加的方法: setAndAllowWhileIdle() 或者 setExactAndAllowWhileIdle()
    • 系统将不扫描热点 WIFI
    • 同步工作将被禁止
    • 不允许 JobScheduler 进行任务调度

    App Standby

    当用户一段时间内不操作app,该app就会处于standby状态,处于这个状态的时候,会有一些限制,比如系统将允许空闲app一天一次访问网络
    无需关闭屏幕也会进入app standby模式下的空闲状态
    参考博客

    Apache HTTP Client Removal

    6.0里面已经将httpclient给移除了,替代的它的时候httpURLConnection

    BoringSSL

    没做过ndk, 大概是安全加密方面的东西,用这个BoringSSL提到原来的openSSL

    Access to Hardware Identifiers

    以后蓝牙和Wi-Fi的Mac地址,将不再被获取了
    会返回一个默认的值:02:00:00:00:00:00
    但是有网友发现还是可以通过Java获取设备网络设备信息的API—— NetworkInterface来获取Mac地址
    参考博客

    Notifications

    移除了Notification.setLatestEventInfo() 。需要通过Notification.Builder来构建Notification

    AudioManager Changes

    此版本不再支持通过AudioManager类来直接对特定的音频流设置音量和静音,因此:
    setStreamSolo()方法过时(deprecated),替换调用requestAudioFocus()方法
    setStreamMute()方法过时,替换调用为adjustStreamVolume()方法,传入的值也变为ADJUST_MUTE 或 ADJUST_UNMUTE

    Text Selection

    在屏幕上长按进行文本选择的时候,或出现一个浮动的框框

    Browser Bookmark Changes

    此版本中移除了全局书签的支持。对应的方法和权限都可以移除,app需自己保存书签数据

    Android Keystore Changes

    此版本上Android Keystore provider不再支持DSA,仍旧支持ECDSA。

    Wi-Fi and Networking Changes

    • 现在app只能够修改自己创建的WifiConfiguration,对用户或者其它app创建的WifiConfiguration不能操作
    • 之前,应用可以使用enableNetwork(),设置disableAllOthers=true,来使设备断开其它网络,如蜂窝网络,而强制连接指定的Wi-fi网络。在此版本上,设备将不会从其它网络断开连接。如果你的app的targetSdkVersion是20或者更低,将固定在选择的Wi-Fi网络。如果targetSdkVersion是21或者更高,使用multinetwork APIs (如openConnection(), bindSocket()和bindProcessToNetwork()方法)来保证网络流量被发送到指定的网络上。

    Camera Service Changes

    原来相机服务是“先来先服务”,根据请求的顺序来执行的。
    现在改为基于优先级。高等级进程会驱逐低等级进程

    Runtime

    APK Validation

    更加严格的apk验证机制。apk在修改任何内容后都必须重现签名

    USB Connection

    通过USB连接设备的时候,默认仅采用充电模式。需要传输数据必须明确的用户授权

    Android for Work Changes

  • 相关阅读:
    Java知多少(下)
    Java知多少(112)数据库之删除记录
    Java知多少(111)数据库之修改记录
    Java知多少(110)数据库之插入记录
    Java知多少(109)数据库更新
    Java知多少(108)数据库查询简介
    C# Linq处理list数据
    vs2008 使用百度编辑器
    HTTP 错误 500.19
    联想R720面板右下部分按压后和上面按键串联了
  • 原文地址:https://www.cnblogs.com/zhou-guobao/p/5503433.html
Copyright © 2020-2023  润新知