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
相关文章
|
1月前
|
人工智能 搜索推荐 物联网
Android系统版本演进与未来展望####
本文深入探讨了Android操作系统从诞生至今的发展历程,详细阐述了其关键版本迭代带来的创新特性、用户体验提升及对全球移动生态系统的影响。通过对Android历史版本的回顾与分析,本文旨在揭示其成功背后的驱动力,并展望未来Android可能的发展趋势与面临的挑战,为读者呈现一个既全面又具深度的技术视角。 ####
|
1月前
|
IDE Java 开发工具
移动应用与系统:探索Android开发之旅
在这篇文章中,我们将深入探讨Android开发的各个方面,从基础知识到高级技术。我们将通过代码示例和案例分析,帮助读者更好地理解和掌握Android开发。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧。让我们一起开启Android开发的旅程吧!
|
21天前
|
监控 Java Android开发
深入探索Android系统的内存管理机制
本文旨在全面解析Android系统的内存管理机制,包括其工作原理、常见问题及其解决方案。通过对Android内存模型的深入分析,本文将帮助开发者更好地理解内存分配、回收以及优化策略,从而提高应用性能和用户体验。
|
22天前
|
存储 安全 Android开发
探索Android系统的最新安全特性
在数字时代,智能手机已成为我们生活中不可或缺的一部分。随着技术的不断进步,手机操作系统的安全性也越来越受到重视。本文将深入探讨Android系统最新的安全特性,包括其设计理念、实施方式以及对用户的影响。通过分析这些安全措施如何保护用户免受恶意软件和网络攻击的威胁,我们希望为读者提供对Android安全性的全面了解。
|
1月前
|
监控 Java Android开发
深入探讨Android系统的内存管理机制
本文将深入分析Android系统的内存管理机制,包括其内存分配、回收策略以及常见的内存泄漏问题。通过对这些方面的详细讨论,读者可以更好地理解Android系统如何高效地管理内存资源,从而提高应用程序的性能和稳定性。
68 16
|
28天前
|
安全 Android开发 iOS开发
深入探讨Android与iOS系统的差异及未来发展趋势
本文旨在深入分析Android和iOS两大移动操作系统的核心技术差异、用户体验以及各自的市场表现,进一步探讨它们在未来技术革新中可能的发展方向。通过对比两者的开放性、安全性、生态系统等方面,本文揭示了两大系统在移动设备市场中的竞争态势和潜在变革。
|
1月前
|
存储 数据可视化 API
重磅干货,免费三方网络验证[用户系统+CDK]全套API接口分享教程。
本套网络验证系统提供全面的API接口,支持用户注册、登录、数据查询与修改、留言板管理等功能,适用于不想自建用户系统的APP开发者。系统还包含CDK管理功能,如生成、使用、查询和删除CDK等。支持高自定义性,包括20个自定义字段,满足不同需求。详细接口参数及示例请参考官方文档。
|
1月前
|
存储 前端开发 搜索推荐
淘宝 1688 API 接口助力构建高效淘宝代购集运系统
在全球化商业背景下,淘宝代购集运业务蓬勃发展,满足了海外消费者对中国商品的需求。掌握淘宝1688 API接口是构建成功代购系统的關鍵。本文详细介绍如何利用API接口进行系统架构设计、商品数据同步、订单处理与物流集成,以及用户管理和客户服务,帮助你打造一个高效便捷的代购集运系统,实现商业价值与用户满意度的双赢。
|
1月前
|
算法 JavaScript Android开发
|
1月前
|
安全 搜索推荐 程序员
深入探索Android系统的碎片化问题及其解决方案
在移动操作系统的世界中,Android以其开放性和灵活性赢得了广泛的市场份额。然而,这种开放性也带来了一个众所周知的问题——系统碎片化。本文旨在探讨Android系统碎片化的现状、成因以及可能的解决方案,为开发者和用户提供一种全新的视角来理解这一现象。通过分析不同版本的Android系统分布、硬件多样性以及更新机制的影响,我们提出了一系列针对性的策略,旨在减少碎片化带来的影响,提升用户体验。