返回 登录
0

了解与建设有中国特色的Android M&N(Android6.0和7.0新特性分析)

【编者按】CSDN知识库特邀社区专家徐宜生审阅了Android技术图谱,帮助广大开发者更加系统、全面的学习技术。

作者简介:徐宜生,CSDN知名博主,CSDN知识库特邀编辑。上海沪江高级Android开发工程师,代表作《Android群英传》《Android神兵利器》

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的什么250安全浏览器、企鹅浏览器等等。

那么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开发呢?
徐宜生CSDN知识库是一个非常好的平台,避免了开发者在初学阶段,需要花费大量时间来甄别网上太多的学习资源这样一个问题,让初学者可以快速了解到每个需要掌握的知识点,这是学习的重点,其实技术学习的难点,是如何建立起这些知识点的架构和联系,以及如何将这些知识转化为自己的知识。
就我个人的学习经历来说,入门的时候,先掌握Android中基本组件的使用,已经一些控件的基本使用,接下来,要着重理解Android的线程、消息调度的设计思想,以及要了解一些底层的原理,这一块是学习的难点,最后,通过自定义View、封装一些简单的SDK库、练手小App这些方式来串联整个知识体系,达到学以致用的目的。

知识库小能手:听说您的图书《Android群英传:神兵利器》上市了,这与您之前出版的《Android群英传》有什么异同?
徐宜生:《Android群英传》主要是针对Android开发中的一些重点和难点的知识点进行梳理,帮助开发者理清整个Android知识点的脉络,同时,教会开发者如何整理、总结知识点,而《Android群英传:神兵利器》则是重点针对开发中的一些工具,例如开发、测试、性能优化已经一些平时的小任务使用到的工具进行讲解,快速提高开发者的开发效率。具体的内容,大家可以参考京东上书籍的目录,很详细的,大家可以根据自己的需求来选择。图书链接

推荐阅读

更多内容请访问Android CSDN知识库。该产品汇集了领域专家们精心绘制的各重点技术领域的知识图谱,及由特邀编辑(领域专家)从海量数据中层层筛选出的精华内容和资源(学习视频、实践Demo、图书)。知识图谱可以帮助开发者全局把控该技术领域,而精选内容更能让开发者从技术细节加深了解该领域的每个核心技术点。扫描二维码,获得更多知识库内容
图片描述

评论