Android 6.0(API级别23)包括各种系统变化和API的行为变化。

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:           随着新的特性和功能,Android 6.0(API级别23)包括各种系统变化和API的行为变化。本文强调一些关键的变化,你应该理解和考虑在你的应用程序。
          随着新的特性和功能,Android 6.0(API级别23)包括各种系统变化和API的行为变化。本文强调一些关键的变化,你应该理解和考虑在你的应用程序。如果你有以前发表的Android应用程序,请注意,这些变化在影响你的应用程序平台。
       1.运行时的权限

       这个版本引入了一个新的权限模型,用户现在可以在运行时直接管理应用程序的权限。这个模型提供了改进的可见性和控制用户权限,同时简化安装和自动升级过程对于应用程序开发人员。用户可以授予或撤销权限单独安装的应用程序。 在你的应用程序的目标Android 6.0(API级别23)或更高,确保在运行时检查和请求权限。来确定应用程序已经被授予权限,调用新的checkSelfPermission()方法。请求权限,调用新的requestPermissions()方法。即使你的应用程序并不是针对Android 6.0(API级别23),你应该测试你的应用在新的权限模型。有关支持新的权限模型在你的应用程序,使用系统权限。对如何评估对应用程序的影响,看到权限最佳实践。


       2.Doze与App Standby
  这个版本引入了新的节能优化闲置设备和应用程序。这些特性影响所有应用程序确保测试您的应用程序在这些新模式。
  Doze:如果用户拔掉设备,让它静止不动的,与它的屏幕,在一段时间内,该设备进入休睡模式,它试图保持系统处于睡眠状态.在这种模式下,设备周期性地短暂恢复正常操作的时间,以便应用程序同步发生,系统可以执行任何悬而未决的操作。
           App Standby:应用备用允许系统确定应用程序空闲当用户不积极使用它。系统使这一决心当用户不接触一段时间的应用。如果设备不插电,系统禁用网络访问和暂停同步应用程序认为空闲和工作。

       3.Apache HTTP客户端删除
  Android 6.0版本将支持Apache HTTP客户端。如果你的应用程序使用此客户端和目标Android 2.3(API级别9)或更高,使用HttpURLConnection类。
  这个API是更有效的,因为它通过透明的压缩和响应缓存,减少网络使用和减少能耗。继续使用Apache HTTP api,你必须首先声明以下编译时依赖项。gradle文件:
  android {
           useLibrary 'org.apache.http.legacy'

           }


       4.BoringSSL

  Android是BoringSSL远离OpenSSL库。如果你在你的应用程序,使用Android NDK对加密库不是不联系NDK API的一部分,比如libcrypto。所以,libssl.so。这些库不是公共api, 并可能改变或打破跨版本和设备不另行通知。此外,你可能会暴露自己的安全漏洞。相反,修改您的本机代码调用Java加密api通过JNI或静态链接对您选择的密码库。


       5.访问硬件标识符
  为用户提供更大的数据保护,开始在本版本中,Android将编程访问设备的本地硬件标识符使用wi - fi和蓝牙api的应用程序。BluetoothAdapter.getAddress                                         WifiInfo.getMacAddress()和()方法返回02:00:00:00:00:00恒定值。
       访问硬件标识符附近的外部设备通过蓝牙和无线网络扫描,应用程序必须现在ACCESS_FINE_LOCATION或者ACCESS_COARSE_LOCATION权限:
       WifiManager.getScanResults()
        BluetoothDevice.ACTION_FOUND
        BluetoothLeScanner.startScan()

        注意:当设备运行Android 6.0(API级别23)发起一个背景wi - fi或蓝牙扫描,操作是可见的外部设备,来自一个随机的MAC地址。


       6.Notifications
  这个版本删除Notification.setLatestEventInfo()方法。使用通知。构建器类来构建通知。反复更新通知,通知重用。构建器实例。调用build()方法来获取更新通知实例。
       亚行壳dumpsys通知命令不再打印出你的通知文本。使用亚行壳dumpsys通知——noredact命令而不是打印的文本通知对象。
        7.AudioManager Changes

设置音量直接或通过AudioManager静音特定流类是不再支持。setStreamSolo()方法是弃用,你应该调用requestAudioFocus()方法。同样,setStreamMute()方法是弃用;          相反,称为adjustStreamVolume()方法并传递价值ADJUST_MUTE或者ADJUST_UNMUTE的方向


        8.Text Selection
当用户选择文本在你的应用程序,现在您可以显示文本选择行为,如剪切、复制和粘贴在一个浮动工具栏。用户交互实现类似于上下文操作栏,使所述上下文动作模式为个人观点。
         实现浮动工具栏的文本选择,在你现有的应用程序做以下更改:
        在你的视图或活动对象,改变你ActionMode startActionMode打来(回调)startActionMode(回调,ActionMode.TYPE_FLOATING)。
         把你现有的ActionMode的实现。回调,让它延长ActionMode。Callback2代替。
         覆盖onGetContentRect()方法提供的坐标内容矩形对象(如文本选择矩形)的观点。
       如果矩形定位不再是有效的,这是唯一的元素失效,称之为invalidateContentRect()方法。
        如果您使用的是Android支持库版本22.2,请注意,浮动工具栏不向后兼容和appcompat需要控制ActionMode默认对象。
这可以防止浮动工具栏显示。以AppCompatActivity启用ActionMode支持,叫getDelegate(),然后调用setHandleNativeActionModesEnabled()
返回的AppCompatDelegate对象和输入参数设置为false。这个调用返回控制ActionMode对象的框架。在设备运行Android 6.0(API级别23),

允许框架支持ActionBar或浮动工具栏模式,在设备上运行Android 5.1(API级别22)或更低,只有ActionBar模式支持。


        9.Browser Bookmark Changes
这个版本将支持全球书签。android.provider.Browser.getAllBookmarks()和android.provider.Browser.saveBookmark()方法现在移除。
同样,READ_HISTORY_BOOKMARKS,WRITE_HISTORY_BOOKMARKS权限删除。

如果你的应用目标Android 6.0(API级别23)或更高,不从全球供应商访问书签书签或使用权限。相反,应用程序应该在内部存储书签数据。


10.Android Keystore Changes
有了这个版本,安卓不再支持DSA密钥库提供者。ECDSA仍支持。
        键,不需要加密不再禁用安全锁定屏幕或重置时删除(例如,由用户或设备管理员) 。keys需要加密在这些事件将被删除。


        11.Wi-Fi and Networking Changes
这个版本引入了以下行为改变无线和网络api。
        您的应用程序现在可以改变WifiConfiguration对象的状态只有在您创建这些对象。你不允许修改或删除WifiConfiguration对象创建的用户或其他应用程序。
        以前,如果一个应用程序迫使设备连接到一个特定的wi - fi网络通过使用enableNetwork与disableAllOthers = true()设置,设备与其他诸如蜂窝数据网络。
在本版本中,设备不再从其他网络断开。如果你的应用的targetSdkVersion“20”或更低,这是固定在选定的wi - fi网络。

        如果你的应用的targetSdkVersion“21”或更高,使用multinetwork api(比如openConnection(),bindSocket(),和新bindProcessToNetwork()方法),以确保其网络流量所选网络上发送。


        12.Camera Service Changes
在本版本中,该模型用于访问共享资源在相机服务改变了从以前的“先来先服务”访问模型一个高优先级进程支持的访问模型。更改服务行为包括:
       进入相机子系统资源,包括打开和配置一个摄像头设备,获得基于客户端应用程序的“优先级”的过程。应用程序进程和用户可见或前台活动通常是给定一个高优先级,使相机资源获取和使用更可靠。
       活跃相机客户低优先级的应用可能会“驱逐”当一个更高的优先级应用程序试图使用相机。弃用的摄像头API,这导致onError驱逐客户机()被调用。在Camera2 API,它导致onDisconnected驱逐客户机()被调用。
与合适的相机硬件设备上,单独的应用程序进程能够独立开放和同时使用独立的摄像头设备。然而,多进程的用例,同时访问造成重大降解性能或功能的打开摄像头设备,现在相机服务发现和不允许的。这种变化可能导致“驱逐”为低优先级的客户,即使在没有其他应用直接尝试访问相同的摄像头设备。
改变当前用户原因活跃相机的客户应用程序由以前的用户帐户被驱逐。进入相机是有限的用户配置文件属于当前用户设备。在实践中,这意味着一个“客人”帐户,例如,将无法离开运行过程时使用相机子系统用户切换到一个不同的帐户。


       13.Runtime
  14.APK Validation
  apk的平台现在执行更严格的验证。APK被认为是腐败的,如果一个文件在清单中声明,而不是出现在APK文件本身。APK必须续签如果任何内容删除。
  
  
  
  
  详细可见:https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-apk-validation
相关文章
|
14天前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
39 15
Android 系统缓存扫描与清理方法分析
|
5天前
|
算法 JavaScript Android开发
|
8天前
|
安全 搜索推荐 Android开发
揭秘安卓与iOS系统的差异:技术深度对比
【10月更文挑战第27天】 本文深入探讨了安卓(Android)与iOS两大移动操作系统的技术特点和用户体验差异。通过对比两者的系统架构、应用生态、用户界面、安全性等方面,揭示了为何这两种系统能够在市场中各占一席之地,并为用户提供不同的选择。文章旨在为读者提供一个全面的视角,理解两种系统的优势与局限,从而更好地根据自己的需求做出选择。
21 2
|
13天前
|
监控 安全 测试技术
我们为什么要API管理系统呢?
API 管理系统通过接口标准化与复用、简化开发流程、版本管理、监控与预警、访问控制、数据加密、安全审计、集中管理与共享、协作开发、快速对接外部系统和数据驱动的决策等多方面优势,显著提高开发效率、增强系统可维护性、提升系统安全性、促进团队协作与沟通,并支持业务创新与扩展。
|
16天前
|
安全 搜索推荐 Android开发
深入探索安卓与iOS系统的差异及其对用户体验的影响
在当今的智能手机市场中,安卓和iOS是两大主流操作系统。它们各自拥有独特的特性和优势,为用户提供了不同的使用体验。本文将深入探讨安卓与iOS系统之间的主要差异,包括它们的设计理念、用户界面、应用生态以及安全性等方面,并分析这些差异如何影响用户的使用体验。
|
16天前
|
安全 搜索推荐 Android开发
揭秘iOS与Android系统的差异:一场技术与哲学的较量
在当今数字化时代,智能手机操作系统的选择成为了用户个性化表达和技术偏好的重要标志。iOS和Android,作为市场上两大主流操作系统,它们之间的竞争不仅仅是技术的比拼,更是设计理念、用户体验和生态系统构建的全面较量。本文将深入探讨iOS与Android在系统架构、应用生态、用户界面及安全性等方面的本质区别,揭示这两种系统背后的哲学思想和市场策略,帮助读者更全面地理解两者的优劣,从而做出更适合自己的选择。
|
7天前
|
安全 搜索推荐 程序员
深入探索Android系统的碎片化问题及其解决方案
在移动操作系统的世界中,Android以其开放性和灵活性赢得了广泛的市场份额。然而,这种开放性也带来了一个众所周知的问题——系统碎片化。本文旨在探讨Android系统碎片化的现状、成因以及可能的解决方案,为开发者和用户提供一种全新的视角来理解这一现象。通过分析不同版本的Android系统分布、硬件多样性以及更新机制的影响,我们提出了一系列针对性的策略,旨在减少碎片化带来的影响,提升用户体验。
|
7天前
|
安全 Android开发 iOS开发
深入探索iOS与Android系统的差异性及优化策略
在当今数字化时代,移动操作系统的竞争尤为激烈,其中iOS和Android作为市场上的两大巨头,各自拥有庞大的用户基础和独特的技术特点。本文旨在通过对比分析iOS与Android的核心差异,探讨各自的优势与局限,并提出针对性的优化策略,以期为用户提供更优质的使用体验和为开发者提供有价值的参考。
|
9天前
|
安全 Android开发 iOS开发
安卓系统与iOS系统的比较####
【10月更文挑战第26天】 本文将深入探讨安卓(Android)和iOS这两大主流移动操作系统的各自特点、优势与不足。通过对比分析,帮助读者更好地理解两者在用户体验、应用生态、系统安全等方面的差异,从而为消费者在选择智能手机时提供参考依据。无论你是技术爱好者还是普通用户,这篇文章都将为你揭示两大系统背后的故事和技术细节。 ####
22 0
|
1月前
|
IDE Android开发 iOS开发
探索安卓与iOS系统的技术差异:开发者的视角
本文深入分析了安卓(Android)与苹果iOS两大移动操作系统在技术架构、开发环境、用户体验和市场策略方面的主要差异。通过对比这两种系统的不同特点,旨在为移动应用开发者提供有价值的见解,帮助他们在不同平台上做出更明智的开发决策。
下一篇
无影云桌面