Android 6.0中的新技术有哪些

最近 Google 正式发布了 Android M,并命名为“棉花糖”(Marshmallow),对于开发者来说,有哪些新的技术和变化呢?本文尝试总结一下 Android 6.0(API 23)给开发者带来新的技术和改变。

权限管理

权限管理是 Android M 最大的改变,权限管理更加精细,并且由以前的安装时静态授权,改为现在的运行时动态授权。大家对 Android 的权限吐槽已久,Android 应该能极大的改善这方面的问题。主要改变有:

系统设置中可以对 APP 各个权限单独控制

权限根据内容进行分组了

普通权限还是在安装时授权

其他权限在运行时系统弹窗授权,并且要解析使用这个权限的目的

对于开发者来说,需要小心处理权限相关的问题。在使用某个功能的时候,需要总是判断是否有改权限,并且通过合适的方式请求用户授权。关于 Android M 权限的处理,可以参考官方文档。

另外,这篇文章结合图文和代码讲述了 Android M 中权限模型,比较清晰,可以参考一下。

APP Linking

这是一个把 APP 和网页直接打通的技术,能够让 APP 能够直接来处理你的网站普通的 URL 链接,来展示你对应的网站内容。这绝对是一个值得关注的改进,Web 和 APP 之间缝隙将越来越小。这对既有网站又有 APP 的应用来说非常有利,例如知乎和淘宝等。

有点类似于之前的 APP 的 Deep link,可以通过特殊的 Schema 也可以让 APP 直接打开对应的内容。APP Linking 的特点是,只要使用传统的 URL 就可以,而且是根据 URL 的域名对应特定的 APP 的。

开发者需要做的是在 AndroidManifest.xml 做一下对应的声明即可。如果需要让系统默认用你的 APP 打开对应的 URL 的话,还需要网站配合提供 assetlinks.json。详情可以参考这里。

APP 数据自动备份

支持 APP 数据自动备份到 Google Drive,在你换手机的时候,能够直接把 APP 的数据恢复到你的手机上,你还可以配置些数据那些数据需要或者不需要备份。而且不用写任何代码就自动实现了。详情可以参考这里。

然而这些对国内的开发者来说,并没有什么用。国内厂商的 ROM 有些已经有或者准备会跟上,到时候都能享受到这样的便利。

指纹解锁

Android 官方支持指纹认证,可以用在解锁,或者任何需要验证用户的地方,例如支付。提供了新的 API FingerprintManager,让第三方 APP 来用来获得指纹认证的功能。具体使用方法可以参考这个实例。

直接分享

直接分享是在 APP 内直接弹出一个选择分享到其他应用的中的对象的列表,中间省略了选择需要分享的 APP,选择“联系人”之类的操作。Android 中分享已经做得很好了,这里又更进一步简化了分享操作。如果要让你的 APP 支持被直接分享,需要实现一个ChooserTargetService,并且实现对应的处理分享 Intent 的 Activity。具体使用可以参考这里。

支持蓝牙触控笔

系统内置支持蓝牙触控笔,这样 Android 系统就默认支持高大上的触控笔了。并提供了 API 让你的 APP 来响应触控笔事件。

低功耗蓝牙扫描优化

优化了低功耗蓝牙扫描优化的扫描。现在低功耗蓝牙的应用越来越多,很多 APP 都需要扫描设备,扫描设备是一个非常重的操作,希望这次改动,能够带来一些改善。

支持主题化的 ColorStateLists

使用 context.getColorStateList(int id) 来获取当前主题对应的 ColorStateLists。

相机 API

提供 API setTorchMode()) 来直接开关闪光灯,并且可以监听闪光灯的开光状态,以前很多 APP 已经支持用闪光灯来做手电筒,现在官方提供 API 来做这样的事情了。

从 Android 5.0 开始,就提供了一套全新的相机 API Camera2,这里在此基础上添加了处理相关 API。

其他

另外还有很多的改进,因为涉及的方面太专业,或者是没有使用到相关功能,我就不详细说了,可以参考官方概述:

有语音交互 API

Hotspot 2.0 支持

4k 屏支持

语音和视频 API 的改进

Android 企业用户特性,例如多用户支持,静默安装等

推荐阅读

程序员未来发展三大方向

20年资深程序员编程经验分享

解析程序员的几个成长阶段

为什么程序员有高薪却不高兴?

程序员如何持续提升自己的开发技能

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-19 18:42:20

Android 6.0中的新技术有哪些的相关文章

在Android 5.0中使用JobScheduler

在Android 5.0中使用JobScheduler 原文链接 : using-the-jobscheduler-api-on-android-lollipop 译者 : Mr.Simple 校对者 : Mr.Simple 在这篇文章中,你会学习到在Android 5.0中如何使用JobScheduler API.JobScheduler API允许开发者在符合某些条件时创建执行在后台的任务. 介绍 在Android开发中,会存在这么些场景 : 你需要在稍后的某个时间点或者当满足某个特定的条件

我的Android进阶之旅------>如何解决Android 5.0中出现的警告: Service Intent must be explicit:

1.错误描述 今天在Android4.4 的小米4手机上运行我的程序的时候没有报错,而在Android 5.1的华为P7上运行我的程序的时候报了以下的错误,错误提示如下: E/AndroidRuntime(12500): FATAL EXCEPTION: main E/AndroidRuntime(12500): Process: com.xtc.watch, PID: 12500 E/AndroidRuntime(12500): java.lang.IllegalArgumentExcepti

Android 6.0 中TimePicker显示为滚动样式的方法

在Android6.0中,TimePicker控件的默认样式为转盘的样式,就像这个样子: 如果想要显示为之前的滚动样式的话也很简单,只要在布局文件中设置TimePicker的timePickerMode属性为spinner就好了,即: [html] view plain copy <TimePicker android:id="@+id/id_add_timePicker" android:layout_width="match_parent" android

Android 6.0 中动态获取权限

Android 5.0时代,用户可以在设置选项中对每个授权许可进行开启/关闭 Android 6.0 Marshmallow中,在首次打开.使用过程中实际用到哪些权限才会向收到申请授权的提醒,和现在的iOS非常相像. 参考:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0830/3387.html 需求:做一个定位功能的软件 checkSelfPermission 检查是否具有权限 requestPermissions; 请

浅析Android 5.0中多媒体相关的新特性

本文来源于本人在所属公司内部分享的一次培训内容,由于100%是AOSP开源内容,所以应该可以分享出来给大家. Android L是在今年2014年6月的Google I/O开发者大会上正式推出的,其中包含了诸多改进,包括新的Material Design交互设计,卡片式风格的通知栏,对64位和ART的支持等等,本文则重点关注一些多媒体相关的新特性. 由于Android L发布的时间仅有半年,无论国内还是国外的相关资料比较匮乏,很多内容本人只能是在Android developer网站中对L版本的

解决Android 5.0中出现的警告:Service Intent must be explicit

extends:http://www.eoeandroid.com/thread-568853-1-1.html 本帖最后由 469874851 于 2015-3-11 18:15 编辑 有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent  must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动.而android源码是这样写的(源码位置:sdk/source

[Android分享] 如何解决Android 5.0中出现的警告:Service Intent must be explicit

Android 5.0程序运行报Service Intent must be explicit错误,原因是5.0的service必须显式调用 改成 Intent intent = new Intent(mContext, IService.class); 或者Intent intent = new Intent(): intent.setclass(xx.xx,xx.xx): 网上说的如下方式是不可行的: Intent intent = new Intent("com.xx.xx.Service

如何解决Android 5.0中出现的警告:Service Intent must be expli

有些时候我们使用Service的时需要采用隐私启动的方式,但是Android 5.0一出来后,其中有个特性就是Service Intent  must be explitict,也就是说从Lollipop开始,service服务必须采用显示方式启动. 而android源码是这样写的(源码位置:sdk/sources/android-21/android/app/ContextImpl.java): private void validateServiceIntent(Intent service

在android studio2.0中,配置databinding问题

在百度了一些关于databinding的文章,试着写了一个dome,发现总是build的不成功. 最后发现在2.0的时候不用在build.gradle中配置 classpath "com.android.databinding:dataBinder:1.0-rc1"和对应的build.gradle中配置 apply plugin: 'com.android.databinding'只需要在相应的build.gradle中配置 dataBinding { enabled true}就可以