从开发者角度解析 Android N 新特性!
大清早看到 Google 官方博客发布 Android N 的开发者预览版,立马从床上跳起来开始仔仔细细的读起来。
从开发者角度来看,Android N 的更新并不算大。网上之前流传的一些 Android N 可能出现的新特性,什么夜间模式,抽屉の消失,指纹识别接口什么的,目前来看很多都没有,现在看朋友圈转的好几篇文章更像是作者在贤者模式下的意淫。
Android N 的新特性
废话不多说,我来盘点下 Android N 的新特性,同时分析下开发者角度下的 Android N。
Multi-Window Support (分屏多窗口支持)
简单来说,就是屏幕上可以出现多个多个程序。想想你平时看视频的时候来了微信消息的时候,你得退出视频App,切到微信,回复消息,然后再切回来重新缓冲… 这是一个多么蛋疼的设定...
有了 Android N 以后,这个问题迎刃而解!
全新的 Android N 下将支持两种新的窗口模式:
- Side-By-Side 模式:两个 App 瓜分一个屏幕
- One-above-the-other 模式:一个 App 浮动在另一个 App 之上
在 Android N TV 上,还将支持 Picture-in-picture (画中画) 模式,用户在浏览其他 App 的时候,视频可以浮动在屏幕上。
大致效果就是下面这个样子的:
对开发者而言,想要支持多窗口也很简单,只需要在 AndroidManifest 文件里加上一个属性即可:
android:resizeableActivity=["true" | "false"]
Direct Replay & Bundle Notifications (快捷回复和归拢通知)
快捷回复
新的 Android N 目测是借鉴了 iOS 里的快速回复功能,用户将可以在通知栏里快速回复消息,邮件等通信信息。对于商务人士和爱好打游戏的玩家来说,是个很赞的功能。
快速回复截图
归拢通知
邮件和 IM 类的 App 总是会在短时间内发来很多通知,在此之前,所有的通知栏是相互独立的,这些新到的通知占用了很多空间,却只能显示有限的信息。归拢通知就是把这些通知归拢起来,逻辑性更强,展示的也会更多。另外一大好处可能就是,用户可以一键消除掉所有同一个 App 发来的通知。个人感觉这个功能比 iOS 要先进一些,很多人的 iOS 通知栏里肯定存在着很对微信的通知对吧...
对开发者而言,全新的通知体系允许开发者更灵活的自定义通知的 UI(View)。具体细节看这里。
Data Saver (节约数据)
Android N 增加了一个系统级的控制开关:节约数据。
其实这个设定是一个中间设定,因为目前对于网络数据只有开和关两种属性,但有的时候,比如我们月底 4G 数据套餐快用光了,学生在宿舍用着收费的 Wifi,又或者出国漫游,在这些场景下,我们既想开着移动数据,又想告诉所有的 App,我当前的流量是有限的,大家不要用太多。当 App 在收到这个通知后,就会尽可能的减少网络请求,节省用户流量。
可以看得出,这是一个很人性化而且实用的功能,给 Android 的 PM 点个赞。这个功能目前在 iOS 上是没有的,但在 Windows 10 上是有的,不过那个名字起得略微俗气,在网络里有一项叫:我当前使用的是收费网络。
这个功能的普及可能需要一段时间,所以早期不能完全指望开发者给你节省流量,更何况是国内各大厂的 App,所以不要忘了在流量不够的时候,开启流量黑白名单。
对于开发者而言
接下来的一部分,是 Android N 在 SDK 方面的一些提升。个人感觉没多少,而且不痛不痒,毕竟国内现在 Android 5.0 的统一大业都还差得很远。
对于开发者们而言,最大的利好,莫过于:
支持 Java 8
Android N 开始支持 Java 8 了,很酸爽对吧!终于扯掉了老奶奶的裹脚布!终于要迈开步子写代码了!终于能够时尚一把了!
很多 Geek 开发者为了 Java 中的 Lambda 表达式,折腾来折腾去的 Retrolambda 也即将要退出历史舞台了。 Kotlin 一贯标榜的便利,失色三分了。今天起,我也要开始学习 Java 8 了。
Jack ( Java Android Compiler Kit )全新的编译工具集
Jack 最大最大的优点,你不用再操心 65K 方法限制的问题了! Jack 在 Compile 的时候就已经解决了!『65k 方法限制』将成为过去式中存在的名词了。
其他的一些变化:
- 速度(每次都会提升速度
- Library File 的后缀(变成了 .jack
Background Optimizations(后台优化)
Android N 为了节约内存和电量,移除了三种广播通知。移除的三种分别是:
- ACTION_NEW_PICTURE:拍摄了新的图片
- ACTION_NEW_VIDEO:拍摄了新的视频
- CONNECTIVITY_ACTION: 用户网络发生变化
当我看到这些的时候,脑子里第一想法居然是好爽,那些国内的推送服务药丸!!推送服务又少了三种最有用的唤醒!!哈哈哈哈哈哈
不过对开发者来说影响还好,乍一看,CONNECTIVITY_ACTION 可能会影响比较大,但是官方给出了一个替代方案,想要接收网络变化的 App 需要注册一个 CONNECTIVITY_CHANGE 事件,当用户手机网络发生变化的时候,只有 App 正在运行的时候,才能收到 CONNECTIVITY_CHANGE 的回到,如果 App 已经被干掉,那么是不会回调的。这样既避免了网络变化监听的功能性缺失,又节约了用户电量,减少了唤醒。对国内第三方推送服务也是沉重的一击。
官方对 ACTION_NEW_PICTURE 和 ACTION_NEW_VIDEO 移除,也提供了缓和之计。就是使用 JobScheduler
这也是 Android 团队安利已久的一个定时任务方案,大家不要辜负了 Android 开发团队的一番苦心,快去读读文档,争取在下个项目里用上。
而且官方还说了,未来,很会广播机制都会有所改动。所以... 国内的 Android 目测也会越来越好用,国内无良厂商们能玩儿花样也会越来越少。撒花。
同时:
adb
里也增加了测试 后台服务 不可用的命令,方便开发者做测试:
禁用后台服务:
$ adb shell cmd appops set RUN_IN_BACKGROUND ignore
重新启用:
$ adb shell cmd appops set RUN_IN_BACKGROUND allow
Scoped Directory Access (特定文件夹权限)
有的时候,App 可能只需要读写特定文件夹,在此之前,你得申请 READ_EXTERNAL_STORAGE或者 WRITE_EXTERNAL_STORAGE 的权限,这个权限会让用户很不放心而且对于心怀鬼胎的 App,没准也会瞎搞,新的体系下,App 可以申请一个特定文件夹的权限来证明自己的清白。
做个干干净净的 App,就用这个特性吧!
Language and Locale (语言和地区)
Android N 里用户可以选择多种地区。比如你会中文和日语,就是不会英语。你就可以同时选择中国和日本。这样 App 显示语言的顺序将会是中文,没有中文优先显示日文,而非现在的一旦找不到语言包,就默认选择了英语。
Direct Boot (直接启动)
用户在开机但是还未解锁的情况下,很多 App 是无法启动的,这会导致一些问题,比如...你设置的第三方闹钟可能没响,你的微信可能收不到通知... Android N 下可以申请在开机未解锁情况下直接启动。
TV Recording(TV 录制)
这是 Android N TV 上的一个提升,允许 App 录制 TV 信号视频,很爽的,比如你在加班,而冰火第六季已然已经开演,先让 TV 录下来,回去再看…就酱...
以上,是所有关于 Android N 的变化。总体来看,变化不大,期待今年 Google I/O 2016 上 Google 会放出其他的一些黑科技来撩拨开发者的心房。Android N 的正式版大概会在第四季度到来,大家得再等等。
我是代码家,这是我总结的,质量值得信赖。
转载自 http://gank.io/post/56e0b83c67765963436fcb94
从开发者角度解析 Android N 新特性!的更多相关文章
- Android N 新特性
2016年5月19日,谷歌在美国加州的山景城举办了 Google I/O 开发者大会中发布.2016年6月,Android N正式命名为“牛轧糖” 本届I/O开发者大会上,Google重点介绍了And ...
- 可能是最早的学习Android N新特性的文章
可能是最早的学习Android N新特性的文章 Google在今天放出了Android N开发者预览版.Android N支持Nexus6及以上的设备.5太子Nexus5不再得到更新. Android ...
- Android O新特性和行为变更总结zz
https://mp.weixin.qq.com/s/Ezfm-Xaz3fzsaSm0TU5LMw Android O 行为变更https://developer.android.google.cn/ ...
- Android R 新特性分析及适配指南
Android R(Android 11 API 30)于2020年9月9日正式发布,随国内各终端厂商在售Android设备的版本更新升级,应用软件对Android R 版本的兼容适配已迫在眉睫. 对 ...
- Android 13 新特性及适配指南
Android 13(API 33)于 2022年8月15日 正式发布(发布时间较往年早了一些),正式版Release源代码也于当日被推送到AOSP Android开源项目. 截止到笔者撰写这篇文章时 ...
- Android N 新特性 + APP开发注意事项
1. 多窗口MultiWindow 多窗口MultiWindow,这是Android N里对开发者影响比较大的特性,也是大家疑问比较多的地方.站在开发者的角度其实不必太担心这个特性会导致我们需要修改很 ...
- Android开发学习之路-Android N新特性-多窗口模式
我们都知道,在最新的Android N系统中,加入了一个新的功能,就是多窗口模式.多窗口模式允许我们在屏幕上显示两个窗口,每个窗口显示的内容不同,也就是说,我们可以一遍看电视剧,一边聊微信. 这里我们 ...
- Android开发——新特性与知识点回顾
Fragment 用途:在一个Activity里切换界面,切换界面时只切换Fragment里面的内容 生命周期方法跟Activity一致,可以理解把其为就是一个Activity 定义布局文件作为Fra ...
- Android M新特性之Behavior Changes
1.Runtime Permissions On your apps that target the M Preview release or higher, make sure to check f ...
随机推荐
- 关于Lt分发系统的时序图分析
我们已经知道,系统共分为两个模块,mather与son 同时系统允许的操作也有三种,向mather提交war包,我某个服务器更新代码,为所有服务器更新代码 我们一个一个来看 先说,向mather提交w ...
- 简单搭建iOS开发项目框架
今天我们来谈谈如何搭建框架,框架需要做一些什么. 第一步:找到我们的目标我们的目标是让其他开发人员拿到手后即可写页面,不再需要考虑其他的问题. 第二步:我们需要做哪些东西各位跟着我一步一步来进行. 假 ...
- Hibernate单表操作
单一主键 assigned:由Java应用程序负责生成(即手工的赋值) native:由底层的数据库自动的生成标示符,如果是MySQL就是auto_increment,如果是Oracle就是seque ...
- [sersync+rsync] centos6.5 远程文件同步部署记录
针对本地文件的修改,自动同步到远程文件夹,远程备份很方面.研究了下大家的主流同步方案一般是 rsync+inotify和rsync+sersync, 我这里使用sersync的方案,当然大部分都是参照 ...
- Android PackageManager源码浅析以及静默安装实现方式
Aandroid应用管理 >http://blog.csdn.net/sk719887916/article/details/50314017 skay整理. >201 ...
- 1022. Digital Library (30) -map -字符串处理
题目如下: A Digital Library contains millions of books, stored according to their titles, authors, key w ...
- iOS中 UITableViewRowAction tableViewcell编辑状态下的功能 UI技术分享
* tableView:editActionsForRowAtIndexPath: // 设置滑动删除时显示多个按钮 * UITableViewRowAction // 通过此类创建按钮 * 1. 我 ...
- ios swift模仿qq登陆界面,xml布局
给大家推荐两个学习的地址: 极客学院的视频:http://www.jikexueyuan.com/path/ios/ 一个博客:http://blog.csdn.net/lizhongfu2013/a ...
- [Ext.Net]TreePanel 异步加载数据
异步加载数据指的是页面加载的时候只显示根目录,点击根目录再去加载其子目录. 下面就来介绍下这种异步加载的树结构要怎么实现 现将例子的图 QQ图片20131225134353.jpg (12.1 KB, ...
- TCP状态转换
最近笔试遇到一个题目:如果tcp建立连接时第三次握手失败,tcp会做何操作?该问题的本质是判断我们对tcp的状态转换是否能有比较深刻的理解.只要理解了下面的状态转换图,很容易回答上述问题. 在此,将& ...