热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidO开发者预览版新特性

今天,2017年3月26日星期日,负责Android项目的副总裁DaveBurke先生向广大开发者宣布AndroidO正式发布。看来不仅仅是程序员周末没

        今天,2017年3月26日星期日,负责Android项目的副总裁Dave Burke先生向广大开发者宣布Android O正式发布。看来不仅仅是程序员周末没闲着,就连google副总裁也忙得不可开交,只能在周末推广Android新特性。我怀着好奇心进入Android开发者网站,发现新版本变化不小:后台限制、网络连接、高质量的蓝牙音频编解码、自适应图标、键盘导航、运行时优化等。以下是原文翻译(来自https://developer.android.google.cn/preview/behavior-changes.html):

        Android O引入许多新特性与新功能,包含大量的系统和API行为和变化。这篇文档突出介绍一些重要变化,建议开发者深入理解以便为自己项目所用。

这些变化中大多数会影响着所有app,不管是什么目标版本。但是,一些变化只会影响Android O 版本。为了最大限度地清晰地清晰表达,这页会分为两个章节:app的通用版本和针对Android O 的版本。

        app通用版本

        这些变化适用于所有app,当它们运行于Android O 平台的时候,不管它们目标版本API大小。当应用于app时,所有开发者应该复习这些变化,并且调整你们的app以正确地支持这些功能。

        后台执行限制

        作为Android O 用来延长电池寿命的其中一个功能,当你的app进入休眠状态时,没有激活任何组件,系统会释放app持有任何唤醒锁。

        Android后台限制

        为了节约电量、提高用户体验、系统健康,会尽量降低后台app接收位置更新的频率,当你使用的设备运行于Android O 平台时。这些行为变化会影响所有app接收位置更新,包括google play 服务。

 这些变化影响一下API:

        1、融合位置提供(FLP)

        2、地理栅栏

        3、GNSS测量

        4、位置管理器

        蓝牙

        Android O 做出以下调整,使用ScanRecorder.getBytes()来检索数据长度:

        1、getBytes()方法不对接收的字节数作任何假设,因此,app不应该以来任何返回字节数的最大值或最小值。相反,你们应该自己估计接收数组的长度。

        2、兼容蓝牙5.0的设备,返回的数据长度应该超过60字节的原有最大值。

        3、如果远程设备没有提供扫描响应,也有可能返回少于60字节数。

        输入与导航

        随着运行于Chrome OS的Android app的出现,与其他设备例如可穿戴式设备,我们看到在Android app使用键盘导航的复苏。在Android O中,我们重定向键盘作为导航输入设备,产生一个更可靠、可预测的箭头与导航标签模型。

为了学习如何在你的app中更好运用键盘导航,请查看Supporting Keyboard Navigation指南。

        可访问性

        在你的app TextView对象中,现在可访问性服务支持可点击实例。

        为了学习更多关于可访问性服务,请查看Accessibility指南。

        安全

        Android O 包含以下安全相关的变化:

        1、平台不再支持SLLv3。

        2、当创建一个HTTPS连接到服务器,而没有实现TLS协议的协商,HttpsUrlConnection不再尝试早期的TLS版本和重试。

        3、对于所有app,Android O具有一个安全计算(SECCOMP)过滤。系统调用仅限用于通过反射暴露的方法。虽然也有其他一些后台调用,但我们不推荐使用。

        4、你app 的WebView对象,现在运行于多进程模型。为了提高安全,web内容在一个独立隔离的进程进行处理,与app进程区分开来。

        关于使用native库来提高安全性的信息,请查看Native Libraries。

        为了使得你的app更加安全的额外指导,请查看 Security for Android Developers。

        隐私

        Android O在平台中做出如下关于隐私的调整:

        1、现在平台处理标识符与众不同了。

        2、查询net.hostName的系统属性会产生一个空指针。

        3、你不再能假定,名称为-1或者-2结束的apk驻留在目录中了。app应该使用sourceDir来获取目录,而不能直接依赖目录格式。

        网络与HTTP(S)连接

        android O包含以下对网络与HTTP连接的调整:

        1、Options请求没有请求体,会有一个Content-Length:0请求头。原先版本没有Content-Length的请求头。

        2、HttpUrlConnection规定Urls,在主机或者授权后面追加的反斜杠来包含空路径。例如,它把http://example.com转换成http://example.com/

        3、Urls不能再包含空标签。

        4、Android O不再执行不安全的TLS/SLL协议版本回退。

        5、在回退到TCP协议之前,InetAddress.isReachable()会先尝试ICMP。

        Android O 特有版本

        后台执行限制

        1、app后台运行不再能随便访问后台服务。

        2、app不能在manifest文件里注册隐式广播。

        安全

        如果你的app网络安全配置支持明文传输的opts out,WebView不能再通过HTTP进行访问,必须使用HTTPS来访问。

        本地库

        在Android O版本的app里,本地库不再加载包含可写的和可执行的代码区。一些app应该会停止运行,因为无法正确加载库。这是一个安全加固手段。更多详情,请查看 Writable and Executable Segments

        集合处理

        在Android O中,Collections.sort()属于List.sort()的顶层。

大多数情况下,你可以使用一个接口来重写List.sort(),根据不同API对默认实现的委托。例如:

&#64;Overridepublic void sort(Comparator comparator) {if (Build.VERSION.SDK_INT <&#61; 25) {Collections.sort(this);} else {super.sort(comparator);}}

        账号访问与扫描

        app不能再访问用户账号&#xff0c;除非持有账号或者用户授权访问。GET_ACCOUNTS权限不再有效。为了授权访问用户&#xff0c;app应该使用

AccountManager.newChooseAccountIntent()方法。在获得访问用户授权后&#xff0c;app可以调用 AccountManager.getAccounts()来访问账号。

        内容更新通知

        Android O 改变 ContentResolver.notifyChange()和 registerContentObserver(Uri, boolean, ContentObserver)的行为。这些API需要为所有授权的URLs定义一个有效的 ContentProvider。定义一个具有相关权限的有效 ContentProvider&#xff0c;将可以帮助抵抗恶意app的攻击&#xff0c;并且可以防止隐私数据的泄漏给恶意的app。

        自适应图标

为帮助您更好地与设备 UI 集成&#xff0c;您现在可以创建自适应图标&#xff0c;系统可以基于设备选择的蒙版将这些图标显示为不同形状。系统还将实现与图标的自动交互&#xff0c; 并在启动器、快捷方式、设置、共享对话框以及概览屏幕中使用它们。




推荐阅读
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 如何自行分析定位SAP BSP错误
    The“BSPtag”Imentionedintheblogtitlemeansforexamplethetagchtmlb:configCelleratorbelowwhichi ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • IhaveconfiguredanactionforaremotenotificationwhenitarrivestomyiOsapp.Iwanttwodiff ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
author-avatar
王俞宇淑珮_166
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有