了解与建设中国特色的 Android M&N

前言

Android N 已经发布有段时间,甚至马上都要发布 Android 7.1,相信不少玩机爱好者已经刷入最新的 Android N 7.1 Beta ROM 体验起来,即使你没有能够刷入的设备,通过模拟器来先行体验下,也不错。

不过对于 Android 的 ROM 来说,特别是国内的 ROM 厂家,估计就比较头大了,Merge 代码估计要疯了。下面,我们就来看看 Android N 到现在给我们带来哪些新特性,以及这些新特性如何运用在自己的 App 中(这里包括了 Android M&N,即 Android 6.0 和 Android 7.0 的新特性)。

运行时权限系统

这个应该是 M&N 系统更新以来最大的特性修改,也是各个 ROM 厂商最大的梦魇,因为这个功能,大部分的 ROM 厂商——都已经自己实现了!而现在,Google 提出了统一的权限管理系统,真是非常符合 Google 的一贯作风——养肥了就杀!

这个权限管理系统并不是在 ROM 级别进行的控制,而是将权限申请工作交给了 App 开发者,由他们来把控 App 的使用权限,这样有利有弊,利是用户可以更加方便、自由的控制自己的隐私权限。这一点类似于 iOS 的权限控制,但 Android 并不是 ROM 直接托管的;而弊端,就是用户可能无法判断这个权限的作用而关闭这个权限,导致 App 无法正常工作。

所以,对于要适配 Android M&N 的 App 来说,权限的管理与交互是适配的重中之重,而且也是以前从来没有过的新概念——如何去设计权限申请的交互逻辑,考验产品经理的时候到了。

权限系统基本概念

现在 Android 把权限分为了敏感权限与非敏感权限,对于非敏感权限,开发者同样是在 AndroidMainifest 中进行权限申请,这些权限会在 Android App 安装的时候显示出来,与现在一样,而敏感权限,则会通过 Dialog 的方式在使用时弹出,如图所示。

对于一个敏感权限来说,他有两条命,第一条命是在第一次显示该权限的时候,如果这个使用用户点击拒绝,那么第一条命就没了,当 App 第二次使用到这个权限的时候,界面会多出一个『不再询问』的选项,如果用户这里再继续拒绝,或者勾选『不再询问』,那么第二条命就 Game Over 了,只能让用户去 Setting 中手动去管理这个权限了。

权限系统的交互

这段应该让产品经理来写。

不过作为开发者和用户,我也来写一点。

首先要知道的是,不管怎么交互,在 Android M&N 之后,用户都可以把 App 的某个敏感权限关闭,所以,权限系统的交互,实际上就是引导用户了解 App 所需要使用的权限,已经引导用户相信这些权限的使用是合理的(当然,基本都是不合理的)。

Google 在它的官方文档中,给我们提供了四种权限交互的设计方式,我们可以来参考下:

  • Educate before asking:这种就是类似于在闪屏页提示用户『我们需要哪些权限哦,这些权限是干嘛的哦,亲你一定要在弹出对话框的时候同意哦亲』。
  • Ask up-front:这种方式简单粗暴,就是一上来就把需要申请的权限全部给用户,让他一个个去点,这种方式最简单,但也最野蛮,如果你的 App 敏感权限非常多,估计用户要崩溃的,可能会带来大量的流失。
  • Ask in context:这种方式就是在用户使用到某个权限的时候,才去提醒用户权限的使用,这样的好处是,用户可以很清楚现在的权限作用,比如我现在要语音搜索,那么 App 提示需要麦克风权限,这很正常啊,就同意了。
  • Educate in context:这种方式应该是第三种方式的补充,用于那些不是很明显的权限使用意图,例如我现在要拍照,你跟我申请定位权限,为啥呢,你需要解释下,可以记录照片的地理位置,这样我就知道了,否则我就会很奇怪,拍照要定位干嘛呢?

Chrome

作为 Google 的老牌 App,Chrome 在国外的浏览器市场上,已经占领了绝对的优势,所以,原本在 Android 中自带的浏览器,就是 Chrome 浏览器,而不是国内这些 ROM 的浏览器。

那么 Google 在 Android M&N 中,对 Chrome 进行了一系列的优化,可惜,很多国内 ROM 都没法使用,但如果你的 App 的目标人群是一些可以使用 Chrome 的用户,那么这些新特性,就是你一定需要了解的。

Chrome App Links

这个就相当于在 Web 中使用 Scheme 来进行 App 的跳转功能一样,只不过这里 Chrome 默认就支持了,用户只需要搜索相关的关键词,就可以直接显示 App,然后通过 App Link 直接启动 App,如图所示。

这个东西对用户来说应该是一件非常好、方便的事情,但由于国内这些浏览器的问题,不知道能否会兼容这个功能。

Android Pay

呵呵哒,算了不讲了,国内厂商都希望用自己的,这也就导致了被 Apple 独揽天下。什么时候这些 ROM 厂家能放弃这些利益,用 Google 提供的默认 API 支持,Android Pay 就可以和 Apple Pay 分庭抗礼了。毕竟现在在国外,Android Pay 已经非常成熟了,而且新的指纹 API 的加入,让安全等级更上一层楼。

另外提一点,Android 现在的安全等级已经非常高了,像指纹信息这些东西,都存储在单独的安全芯片上,而且,新的指纹 API 让开发者也可以非常方便地去使用指纹,不管是从用户还是开发者的角度来说,使用 Android 提供的原生安全方式,绝对是好于自己实现的。

Direct Share

一个小的功能点,App 可以实现 Android 提供的 API,在分享的时候,直接将分享内容分享到更加精细的目标,例如联系人中的某个联系人,这样可以节省用户重新打开 App 的时间,也拓展了App之间的信息分享。

Notification && Notification Menu

通知真的是 Android 领先 iOS 的一个巨大的筹码,可惜,很多国内 ROM 将通知改得一塌糊涂,很多关于 Notification 的新特性都无法使用,Notification 带来的新交互体验,也无法实现,可悲可叹。

通知栏样式修改

通知栏的样式修改,总体来说,让 Notification 的使用更加方便了,同时也更加好看,Google 在2016的 IO 大会上也着重讲了,大家可以参考 IO 大会上的内容,这里放几种截图,大家随便体会下。

通知栏快捷回复

在 Android N 上,Android 对通知栏进行了进一步的优化,其中一个非常大的改变就是让用户可以在通知栏上直接对通知进行回复,这对于一些 IM 类的 App 来说,提供了更加友好的回复功能。

通知栏消息分组

如同描述的一样,系统可以支持对通知消息进行合并,相比于 iOS 的通知一条条展示来说,简直不能再赞了。

菜单选项定制

在 Android N 上,用户可以通过『Edit』按钮来定制自己的快捷菜单,是的,这也是很多厂商的ROM都已经有的功能,Google 再一次养肥了杀了。

这一功能的优势在于 App 可以定制自己的快捷功能,让使用频率高的一些功能,集成到系统的快捷菜单中。

Text Selection

Android M 在系统级别,提供了对文字选择的 API 拓展,在以前的版本上,长按后,文字只提供剪贴、复制这些系统功能,而现在,系统为 App 提供了更多的访问接口,官方给出的例子比较复杂,如图所示。

现在已经有 App 适配了这个功能了,如图所示。

可以看见,这一功能,对一些翻译类的 App 来说简直就是福音,同时,对于自己的 App 内部,通过这种方式,也可以产生很多比较好的交互体验。

系统级电话黑名单

难道国内的电信诈骗已经惊动了 Google?不过这总归也算是一件好事,在 Android N 上,系统提供了黑名单的 API,App 可以调用,了解被拉入黑名单的电话信息。

Doze && App Standby

自从 Android M 开始,Google 在 Android 中就加入了这样一个『省电』的机制,到 Android N,这一机制被进一步完善,但不知道国内的 ROM 厂家会如何看待这个功能,或许会被阉割,或许省电阀值会被修改,目前还不得而知。但 Google 已经在官方文档中对这样一个功能App所需要的适配提供了解决方案:https://developer.android.com/training/monitoring-device-state/doze-standby.html

App 需要参照这个解决方案,来处理 Doze 和 App Standby 的功能与限制。

系统分屏多任务

Android N 提供的一个比较大的特色功能,就是应用的分屏功能,当然,这依然是一个 Google 养肥了再杀的功能,很多 ROM,例如 LG、三星,其实很早之前就已经支持了,不过 Google 这次的实现更加完整、更加丰富。

那么分屏功能究竟有哪些使用场景呢?这依然是一个产品经理要解决的问题,对于开发者来说,我们在适配多设备分辨率、屏幕的同时,又增加了一个对系统分屏的适配工作,还好这些事情,Google 都帮我们写好了文档。

VR

Android N 的一个很大的特点就是对 VR 虚拟现实的支持,这东西现在越来越火,但在手机设备上,效果并不是很好,所以,Android N 上对 VR 的支持,实际上是使用了一个新的跨平台图形计算库——Vulkan,所以说,如果一个手机支持 VR,那么从某种意义上来说,这个手机的性能应该是很赞的!

以上,就是 Android M&N 的一些新特性,以及他们如何能够运用在我们自己的 App 中,希望大家能够多使用这些新特性来持续优化我们的 App,为建设社会主义特色的 App 而奋斗!!!

原文发布于微信公众号 - Android群英传(android_heroes)

原文发表时间:2016-10-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Linyb极客之路

为什么要使用服务网格Service Mesh?

对于实现生产环境的构建和部署的人来说,这是一场噩梦。并且假设它们共享相同的操作系统但需要隔离,或者出于可移植性原因将它们打包到单独的VM镜像中。为每个服务实...

1543
来自专栏AI科技大本营的专栏

最新Python学习项目Top10!

【导读】过去一个月里,我们对近1000个Python 学习项目进行了排名,并挑选出热度前10的项目。这份清单涵盖了包括Web App, Geospatial D...

1452
来自专栏云加头条

韩伟:解谜腾讯游戏海量服务架构

网络游戏和其他互联网服务一样,需要面对承载海量用户的压力,同时还需要满足游戏所要求的低延迟、业务逻辑高复杂度的特性。腾讯游戏研发部资深架构师韩伟为大家带来了“解...

5509
来自专栏高性能服务器开发

12 经典游戏服务器端架构概述

现代电子游戏,基本上都会使用一定的网络功能。从验证正版,到多人交互等等,都需要架设一些专用的服务器,以及编写在服务器上的程序。因此,游戏服务器端软...

1.2K7
来自专栏EAWorld

建设DevOps统一运维监控平台,全面的系统监控你做好了吗?

前言 随着Devops、云计算、微服务、容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器、虚拟机、物理...

8995
来自专栏沃趣科技

备份重于一切:远离“Gitlab删库事件”,QBackup是你的最佳选择!

作者简介:孙朝阳 沃趣科技高级产品经理。 案发现场: Gitlab删库事件回顾 Gitlab是大家很熟悉的开源Git代码托管工具,国内公司大多使用社区版自行搭...

3748

52条你需要了解的云计算术语

云计算虽然不是什么新鲜的话题,但是云服务和云产品却时刻发生着变化。DZone编辑团队列出了我们认为是您最应该了解的云计算术语,来帮助你提前掌握关于云...

2457
来自专栏北京马哥教育

网易OpenStack部署运维实战

糖豆贴心提醒,本文阅读时间8分钟 OpenStack简介 OpenStack 是一个开源的 IaaS 实现,它由一些相互关联的子项目组成,主要包括计算、存储、...

5189
来自专栏云加头条

腾讯云虚拟网络架构揭秘

我是腾讯云网络产品中心的工程师我叫王营。今天主要介绍腾讯云整个技术架构,将从虚拟网络数据平面、控制平面,包括VPC网络监控等各方面,来给大家做一个全面的介绍,让...

1.8K2
来自专栏SEO

SEO常见疑问整理总结(一)

3357

扫码关注云+社区

领取腾讯云代金券