了解与建设有中国特色的Android M&N(Android6.0和7.0新特性分析)
http://geek.csdn.NET/news/detail/110434
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 M&N(Android6.0和7.0新特性分析)的更多相关文章
- Android 5.0(棒棒糖))十大新特性
Android 5.0(棒棒糖))十大新特性 1. 全新Material Design设计风格 Android Lollipop全新的设计语言是受到了多种因素影响,是一种大胆的平面化创新.换句话说,谷 ...
- Android 7.0(牛轧糖)新特性
Android 7.0(牛轧糖)新特性 谷歌正式在I/O大会现场详细介绍了有关Android 7.0的大量信息.目前,我们已经知道,新一代Android操作系统将支持无缝升级,能够通过Vulkan A ...
- Android 4.4 新特性分析-15项大改进!
Google发布了Android 4.4 KitKat,并其同时面世的还有新旗舰Nexus 5.Android 4.4 KitKat有怎样的改进.是否值得升级呢,下面就为大家呈现Android 4.4 ...
- 【转载】Android N 完全不同以往的四个新特性
Google最近发布了Android的下一个版本,Android N的开发者预览版.此次预览版,可以让我们开发者在正式发布之前就测试代码,包括一些新的API,甚至于也可以提前反馈那些对于我们来说有些困 ...
- Android R 新特性分析及适配指南
Android R(Android 11 API 30)于2020年9月9日正式发布,随国内各终端厂商在售Android设备的版本更新升级,应用软件对Android R 版本的兼容适配已迫在眉睫. 对 ...
- Android 6.0(棉花糖)新特性
1.支持4K显示 Android 6.0本身已经支持4K显示,会通过一定优化形式使4K内容更加清晰. 2. 启动验证 (更完整的应用权限管理) Android 6.0在开机时会自动运行验证代码,检测设 ...
- 可能是最早的学习Android N新特性的文章
可能是最早的学习Android N新特性的文章 Google在今天放出了Android N开发者预览版.Android N支持Nexus6及以上的设备.5太子Nexus5不再得到更新. Android ...
- Android 8.0 新特性
Android 8.0 (Android Oreo(奥利奥))新特性介绍 通知渠道 - Notification Channels 通知渠道是由应用自行定义的通知内容类别,借助渠道,开发者可以让用户对 ...
- android 7.0 新特性 和对开发者的影响
android 7.0新特性 - jiabailong的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/jiabailong/article/details/5241 ...
随机推荐
- MyBatis主键生成器KeyGenerator(一)
Mybatis提供了主键生成器接口KeyGenerator,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 . 由于 ...
- LocalBroadcastManager—创建更高效、更安全的广播
前言 在写Android应用时候,有时候或多或少的需要运用广播来解决某些需求,我们知道广播有一个特性,就是使用sendBroadcast(intent);发送广播时,手机内所有注册了Broadcast ...
- React Native入门教程2 -- 基本组件使用及样式
在上一篇文章中,我们学会了如何搭建React Native的环境(React Native入门教程(笔记) 1 – 开发环境搭建),不知道你们是否搭建好了呢,如果还没有,那么快动起小手,来体验RN带给 ...
- [TCP] 网络协议流程图
之前在跟别人讲协议的时候总是找不到类似的图,这次再看python网络编程书籍的时候找到了一个,留存一份. 清晰的看到不同协议在不同层的传输过程!
- 自建log4cxx.sln
log4cxx的下载包是0.10版本的,代码较旧,有些错误,应该从主干下载最新的代码. 0.10的下载包中有projects目录,内有VC6的工程文件; 还有site目录,内有vc构建的帮助文档vst ...
- (五十)Quartz2D生成图片的一些应用
应用一:给图片打水印,不应该是画到View的Layer上,而应该画到Bitmap上,产生一张新的图片. 1.首先读入背景图,然后开启一个位图上下文,并将它画在位图上下文上: UIImage *bgIm ...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(十五)
现在啃第2个问题:如何让玩家输入赌注金额. 实现的方法有很多种,比如可以限制玩家只能从特定的金额中选择,把每个选择做成一个按钮即可.以下是一个假想选择窗口的示意图: 这样没有玩家的输入问题了.缺点是不 ...
- Java集合之WeakHashMap
纸上得来终觉浅,绝知此事要躬行 --陆游 问渠那得清如许,为有源头活水来 --朱熹 WeakHashMap继承于AbstractMap,同时实现了Map接口. 和HashMap一样,Weak ...
- 用curl采集需要登录的页面
登陆cookie存储至自定义目录 $cookie_dir = tempnam('.', 'cookie');curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_ ...
- CentOS删除自带的java,安装新java
[root@localhost ~]# java -version java version "1.4.2″ gij (GNU libgcj) version 4.1.2 20071124 ...