zoukankan      html  css  js  c++  java
  • 安卓6.0(棉花糖)新特性汇总

    安卓6.0(棉花糖)新特性汇总

    Android伴随着众多新特性和新功能,Android6.0(API level 23)在系统和API上都有着诸多的改变。

    1.App Permissions(软件权限管理) 在安卓6.0里,应用许可提示可以自定义了。它允许对应用的权限进行高度管理,比如应用能否使用位置、相机、麦克风、通讯录等,这些都可以开放给开发者和用户。 作为开发者,当你的app的目标版本(target)为Android6.0(API 23)或更高时,请确保在运行时进行权限的检查和请求。其中,新的方法checkSelfPermission()可以用来判断你的应用是否被授予了权限,而requestPermissions()可请求权限。即使你app的目标版本在android6.0以下,也应该在新的权限管理模型下测试你的应用。

    2.Chrome Custom Tabs(网页体验提升) 新版的M对于Chrome的网页浏览体验进行了提升,它对登陆网站、存储密码、自动补全资料、多线程浏览网页的安全性进行了一些列的优化。Android.provider.Browser.getAllBookmarks() 和 android.provider.Browser.saveBookmark()方法被移除,同样的READ_HISTORY_BOOKMARKS和WRITE_HISTORY_BOOKMARKS权限也被移除。如果你app的目标版本是android6.0或更高,请不要访问全局的provider获取书签,而是应该在应用的内部保存书签数据。

    3.App Links(APP关联) 安卓6.0加强了软件间的关联,谷歌在现场展示了 一个例子,比如你的手机邮箱里收到一封邮件,内文里有以个Twitter链接,用户点击该链接可以直接跳转到Twitter应用,而不再是网页。

    4.Android Pay(安卓支付) Android支付统一标准,新的安卓6.0系统中集成了Android Pay,其特性在于简洁、安全、可选性。Android Pay是一个开放性平台,使用户就可以选择谷歌的服务或者使用银行的APP来使用它,Android Pay支持4.4以后系统设备,在发布会上谷歌宣布Android Pay已经与美国三大运营商700多家商店达成合作。支付功能可以使用指纹来进行支付,这意味着今年基于安卓M的Nexus产品肯定会有指纹识别了。

    5.Fingerprint Support(指纹支持) 安卓6.0增加了对指纹的识别API,谷歌开始在M里自建官方的指纹识别支持,力求Android统一方案,目前所有的Android产品指纹识别都是使用非谷歌认证的技术和接口。 新特性六:Power & Change(电量管理 ) 新的电源管理模块将更为智能,比如Android平板长时间不移动时,安卓6.0M系统将自动关闭一些App。同时安卓6.0设备将支持USB Type-C接口,新的电源管理将更好的支持Type-C接口。

    6.眠和应用待机模式(Doze and App Standby)

        此次发布引入了新的省电优化方案,在设备和应用空闲时起作用。此特性影响所有的应用,请确保做好相应的测试

        休眠模式(Doze): 手机在没有外接电源且放置至屏幕关闭一段时间后,设备将进入休眠模式,它将使系统进入睡眠状态(sleep state)。在此模式下,设备周期性的短暂恢复正常操作,以使应用可以同步,系统执行一些必要操作。

        应用待机模式(App Standby):在用户没有使用某应用的情况下,此模式允许系统判定此应用进入空闲状态。系统的判定依据则是用户在一定的时间内没有再点击此应用(译注:主要还是依据前台进程判定)。如果此时设备也没有连接充电器,系统将禁用该应用的网络连接、同步及任务调度。

    了解更多关于省电方面的变化,可查看Optimizing for Doze and App Standby(Optimizing for Doze and App Standby)

    7.移除Appache的HTTP Client(Apache HTTP Client Removal)

      Android6.0版本移除了对Appache的HTTP client的支持。如果你的app的目标版本是Android2.3(API level 9)或者更高,请使用HttpURLConnection类进行替换。此类采用了透明压缩(transparent compression)和响应缓存(response caching),最小化电量消耗。如果你希望继续使用Appache Http API,请修改你的build.gradle文件,

    增加如下:android {     

          useLibrary 'org.apache.http.legacy'  

        }  

     

    8.BoringSSL
      Android正在将OpenSSL库替换为BoringSSL库。这将影响你的应用在NDK中所链接的加密库,比如libcrypto.so和libssl.so,它们不是NDK API的一部分。这些库不是公开的API,因此在不同版本和设备上的变化也不会及时通知开发者。而且,这也将暴露你应用的安全缺陷。因此,需要修改你的native代码,通过JNI的方式调用Java的加密API或者静态链接你选择的加密库.

     

    9.获取硬件标识符(Access to Hardware Identifier)
      在此版本中,为了更好的保护用户的数据,Android移除了从代码中通过Wi-Fi和蓝牙的API访问设备本地网络标识符。因此WifiInfo.getMacAddress()和BluetoothAdapter.getAddress()将始终返回02:00:00:00:00:00
      而为了能够通过Wi-Fi和蓝牙扫描时,获取周边设备的硬件标识符,应用必须具有ACCESS_FINE_LOCATION 和 ACCESS_COARSE_LOCATION权限:
    WifiManager.getScanResults()
    BluetoothDevice.ACTION_FOUND
    BluetoothLeScanner.startScan()
    注意:当运行Android6.0(API level 23)的设备启动后台Wi-Fi或蓝牙扫描时, 此操作对外部设备是可见的,且被显示为一个随机MAC的地址。

     

    10.通知(Notifications)
        此版本移除了Notification.setLatestEventInfo()方法。用Notification.Builder类来构造通知,在需要反复更新通知的情况下,保存并重用Notification.Builder的实例;

    在获取更新后的Notification实例时,调用其build()方法.
        adb shell dumpsys notification命令不再输出你的通知文本,而adb shell dumpsys notification --noredact命令将输出一个notification对象的文本.

     

    11.AudioManager Changes

      此版本不再支持通过AudioManager类来直接对特定的音频流设置音量和静音,因此:setStreamSolo()方法过时(deprecated),替换调用requestAudioFocus()方法,

      setStreamMute()方法过时,替换调用为adjustStreamVolume()方法,传入的值也变为ADJUST_MUTE 或 ADJUST_UNMUTE

     

    12.文本选择(Text Selection)
      用户在应用中选择文字后,你现在可以显示一个浮动工具栏(floating toolbar),展示并进行剪切、拷贝、粘贴操作,交互过程的实现和contextual action bar的实现一样( Enabling the contextual action mode for individual views)
     实现选择文字后的浮动工具栏,在app代码中需要做如下修改:
      (1)在View 或 Activity对象,ActionMode的调用从startActionMode(Callback) 变为 startActionMode(Callback, ActionMode.TYPE_FLOATING)
     (2)替换原有的ActionMode.Callback为ActionMode.Callback2
     (3)重写OnGetContentRect()方法,提供内容Rect对象(文本选择的矩形框)在view中的位置
     (4)在矩形框作为唯一的元素不再有效时,调用invalidateContentRect() 方法
        如果你在使用Android Support Library revision 22.2,需要注意浮动工具栏不向后兼容且因为appcompat默认接管ActionMode对象,阻止了浮动工具栏被显示。为了在AppCompatActivity中支持ActionMode,需要调用getDelegate()方法,之后对返回的AppCompatDelegate对象调用setHandleNativeActionModesEnabled()方法,并设置输入参数为false,该调用将ActionMode对象的控制交还给系统框架层。在Android6.0(API level 23)的设备上,框架层支持ActionBar或浮动工具栏模式,在Android 5.1(API level 22)及以下的设备上,只支持ActionBar模式。

     

    此次,安卓6.0(Android M)新系统主要改进的地方就是,改善用户体验,修复BUG,提升了这个开放平台的整体质量,很多内容都得到了改善,相信从这些新特性中大家也能看到。

    ​​​​

  • 相关阅读:
    强化学习的基本迭代方法
    基于文本描述的事务聚类
    学习强化学习之前需要掌握的3种技能
    其它 华硕 ASAU S4100U 系统安装 win10安装 重装系统 Invalid Partition Table 解决
    数据分析 一些基本的知识
    Python 取样式的内容 合并多个文件的样式 自定义样式
    电商 Python 生成补单公司需要的评论格式3
    SpringBlade 本地图片上传 生成缩略图
    SQL Server 字符串截取
    SpringBlade 本地图片上传
  • 原文地址:https://www.cnblogs.com/xxdh/p/6610016.html
Copyright © 2011-2022 走看看