Google最近发布了Android的下一个版本,Android N的开发者预览版。此次预览版,可以让我们开发者在正式发布之前就测试代码,包括一些新的API,甚至于也可以提前反馈那些对于我们来说有些困扰的变化。这次的发布版本只酝酿了几个月,但是其中一些令人惊奇的功能已经看起来很棒了。相信你也一样对此感到非常兴奋!

接下来,列出一些我们迫不及待想要上手的新变化。

1. 支持Java 8语言特性

通常来讲,Java在最性感的语言当中根本就排不上号。更不用说,那些还仅仅支持Java 7部分特性的平台了,要知道它已经发布5年了。我们急需一个更加现代化的Java,每个人都应该已经意识到了。

当Google宣布Android将基于OpenJDK的时候,我们就已经知道这样的变化就要来了。这意味着,我们将要比原先期望的更早体验到Java 8的新特性。

如果你打算使用 Jack toolchain(一个Google官方的编译工具,可以自动打包、压缩、混淆以及multidexes你的代码)构建你的项目,那么你可以像下面这个示例一样兼容Java 8:

android {defaultConfig {jackOptions {enabled true}}compileOptions {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
}

这样就可以使 Jack (下同)识别出部分Java 8的语言特性。不用担心,你感兴趣的部分都在里面,比如:

  • 默认静态接口方法
  • Lambda表达式
  • 可重用的注解

好吧,其实我对可重用的注解不是很感冒,不过它已经包含在这些特性里面了。如果你要写更多的功能性代码,你应该会需要用到。想像一下,当你不需要过多考虑有关对象创建的所有listener、Adapter等等其他东西的时候,你的代码会变得多么具有可读性。

你也可以用 Lambda表达式直接指定一个OnClickListener,就像这段代码一样:

button.onClick(v -> Snackbar.make(v, "Hello sweet lambdas", Snackbar.LENGTH_LONG).show()
);

如果你对Lambda表达式不是很熟悉,那么可以参考一下 this helpful cheat sheet about Java 8 features and best practices.

而且,Lambda表达式还会以各种方式最低支持到Android 2.3版本。这都要得益于Jack 编译器在两年前就已经开始为此考虑。 把 Jack作为默认编译器,也会为我们构建的时间带来诸多裨益。 Jack会跳过常规的Java字节码编译,并直接生成dex文件。当然,一些外部引用的library,都会在dex文件上生效或更新,而不是字节码文件。

而且可以预见,Jack也有望全面增加支持其他一些已经得到广泛应用的注解运行器,比如:Dagger、Dagger2、ButterKnife,这些项目本身也正变的越来越受欢迎 。

2. 支持应用内多窗口

去年九月,iOS 9已经支持了多窗口。对于Android来说,这也只是个时间问题。如果你有一个大点屏幕的设备,你可能会一边看YouTube,一边在Facebook上聊天!这样的情况真的会出现!

但是,这对开发者来说,意味着什么呢?Activity的生命周期会变得非常复杂,开发者又要花费时间去熟悉。如果我们再把Fragment的生命周期加上去,那么光是为了解决这些View生命周期的工作量都会大大增加。

即使是现在,也有很多人在走捷径,锁定屏幕方向,避免去处理这些活动的生命周期状态。这样一来,在两个方向上缩放UI都会更加轻松。

看看到底会有多少开发者会重新考虑如何锁定屏幕方向以使他们的App可以支持多窗口,这应该会是一件有趣的事。Activity and Fragment,我非常高兴最终可以看到他们的生命周期图表变得更加完善。

3.电量管理的改进:Doze

Doze就是用来管理Android设备电量的。当你的手机还没有同时进行较多任务的时候,它就可以起作用,限制应用程序对各种资源的访问,以节省电量。

其实在Android M上已经有Doze了,但是它只能在设备没有使用的情况下才起作用,比如就放在桌子上不动的时候。
现在,在Android N上,当设备正在移动且屏幕是关闭的时候,Doze也会起作用。

对于用户而言,这意味着一个额外的好处——更长的电池寿命。对于开发者来说,在这也会更多的影响用户的前提下,就要小心你的应用会受到Doze的限制。最明显的就是,对于CPU和网络的限制,可能会让你感到懊恼。不仅如此,Doze同样也会影响wakelock,闹钟,同步功能,还有GPS。

虽然这样可能会使你的代码稍微复杂一些,但这也是一个巨大的用户体验的提升。更长的电池寿命意味着我们可以有更多的精力去做更有用,更有影响力的事情。比如:糖果消消乐!

4.通知

最后要说明的并非最不重要。通知经过了改版,现在所有来自同一应用的通知,都可以分组归类在一起。而且这里也提供给用户可以直接输入回复应用的选项。

看起来通知确实是得到了非常不错的改进,特别是对于消息类的应用!用户在应用之间的上下文切换会变少,这对于Android的生态系统也是一大裨益。

如果你想要了解关于这些新变化的更多细节,或者想要亲自上手Android N预览版。那么 这份资料 可以指导你怎样去做。顺便提一句,Android Studio 2.1 preview(译者注:原文链接已失效,正式版已出,此处换上官网链接) 也已经发布,并且支持Android N。好吧,我们在一开始就得到了全部工具的支持。

你最感兴趣的Android N特性是什么?我还漏掉什么了吗?在下面的评论里分享你的想法,并在预览文档里查证。伟大的时代即将来临!

译者注:谷歌官方推出的multidex兼容包,配合AndroidStudio实现了一个APK包含多个dex的功能。

译文链接:http://www.codeceo.com/article/android-n-4-new-features.html
英文原文:4 Reasons Why Android N is a Game Changer for Developers
翻译作者:码农网 – 温迪

转载:http://www.codeceo.com/article/android-n-4-new-features.html

Android学习交流群:523487222

(如果您觉得有用,欢迎加入,一起学习进步)
点击链接加入群【Android学习群】

Android N 完全不同以往的四个新特性相关推荐

  1. Android Q(10.0 API29)版本新特性和兼容性适配

    摘要 1.本文档基于谷歌AndroidQ官方文档和一加Q版本应用兼容性整改指导 2.本文档主要对影响比较大的部分进行简单总结,内容并不全面: 3.版本号对应关系: Android-Q = Androi ...

  2. Android 1.5 -10.0 都有哪些新特性?

    点击上方"开发者技术前线",选择"星标" 13:21 在看 真爱 本文部分整理 公众号 终端研发部 作者:嘟嘟呢 https://blog.csdn.net/u ...

  3. 魅族Android 5.1彩蛋,魅族Flyme 8新特性“彩蛋”:非常规渠道刷机会出现“全局水印”...

    IT之家8月28日消息 魅族正式发布了全新的Flyme 8,官方称Flyme用户已达9000万,Flyme 8研发耗时491天,采用Alive Design的全新设计理念,让体验轻快而鲜活.即日起Fl ...

  4. Android 8.0新特性(看这篇文章就够了)

    2019独角兽企业重金招聘Python工程师标准>>> 在刚结束不久的谷歌 I/O2017开发者大会上发布的第二个Android O(安卓8.0)开发者预览,并且向普通用户开放了第二 ...

  5. android各个版本的新特性

    首先看看最新版本Android 11 : https://www.zhihu.com/question/420186152 4.0 Ice Cream Sandwich(冰激凌三明治):2011年10 ...

  6. 即将到来的 Android N 将具备这些新特性

    去年的I/O大会上Google表示,今后每一年的I/O大会上都会推出对Android重大更新后的新版本. 今年I/O大会,我们有理由相信,Android 7.0,也就是Android N,会与我们见面 ...

  7. android8.1新功能,Android 8.1新特性:烦人的“正在后台运行”,拜拜

    IT之家10月27日消息 随着谷歌在昨天面向开发者预览通道推送Android 8.1 beta版,其中的新特性也逐渐被发掘出来.包括新的电源管理菜单.新的虚拟按键导航栏等. 在Android 7.0推 ...

  8. Android L系统 剖析安卓5.0安卓L新特性

    Android L系统全新发布了!在Google I/O 2014上,Google正式发布了最新一代安卓系统Android L,安卓系统终于告别了安卓4.×,迈入了全新的版本周期.新一代安卓系统此前一 ...

  9. (15.1.14)Google正式发布Android L系统 剖析安卓5.0安卓L新特性

    Material Design.卡片.环动式设计 ART.64位计算 升级.电池续航.安全 Android L系统全新发布了!在Google I/O 2014上,Google正式发布了最新一代安卓系统 ...

最新文章

  1. 微信小程序自定义组件Component的简单使用
  2. 简析平衡树(三)——浅谈Splay
  3. 【ES6】变量的解构赋值
  4. Django 运行 runserver 端口占用,报错:Errno 10013
  5. echarts 大屏可视化_看似复杂炫酷的数据可视化设计,用这波神器轻松搞定!
  6. 随想录(尝试wsl安装)
  7. SQLite内部机制和新特性
  8. Web应用防火墙的主要特性
  9. spring+ibatis+注解开发
  10. word论文公式编号排版
  11. 技术移民必看:工程师应该如何获得美国签证?
  12. 营业执照识别,三证合一
  13. python遍历指定文件夹下所有文件夹和文件
  14. php把文字写到图片生成
  15. 51单片机printf重定向
  16. python软件介绍-python软件界面介绍(python软件介绍)
  17. 二、MT8168 KeyPad驱动指南
  18. Walfisch-Ikegami模型 建筑物的高度、建筑物间的距离、街道宽度对传输损耗的影响
  19. 仿真软件proteus构建LCD1602显示字符串实验
  20. xtu oj 1218

热门文章

  1. 10 模拟SPI驱动PS2无线手柄
  2. 2020级李海扬、程志豪、杨本豪、周海涛——离散信源的熵的性质的简要介绍和证明
  3. 罗斯蒙特248温度变送器安装指南
  4. 玩游戏计算机配置,玩大型游戏需要什么配置
  5. 联想电脑的手触屏失灵
  6. 小程序制作预算_科普:小程序制作一个需要多少钱?
  7. echarts tree (树图) 实现自定义节点图标 自定义样式 点击节点后线条变色 自适应高度 搜索后节点关键字标红 写的很详细,建议收藏!
  8. c++学习记录(一)
  9. Nutch 2.0 终于来了
  10. window10下安装Elasticsearch(es)和IK分词器