移动互联网科技日新月异,在谷歌宣布2016 年 Google I/O 大会开放注册之后, 谷歌出人意料地正式发布了其最新移动操作系统AndroidN的开发者预览版。因这次的预览提前了三个月,作为最新版本的Android操作系统,尽管还只是开发者预览版,但是AndroidN中包含了诸多值得关注的新特性。

1. 多窗口模式 (Multi-Window Support)

多窗口模式支持拖放功能。主要用途是在窗口之间传输数据或其他种类信息。对于开发者来说如果应用需要支持多窗口模式,要对这部分的界面显示布局进行详细设计和测试,以匹配不同的高宽比。AndroidN开发者预览版自带的Google Play应用商店就在多窗口模式出现了适配的问题。

2. 通知机制 (Notifications)

Android开发平台从4.1开始就支持了通知的扩展样式,也就是我们通常所说的多行通知栏,除了最顶部的通知扩展样式会默认展开之外,其他通知即使支持扩展样式默认也是收起的。想要展开只有两个办法:把该通知以上所有的通知全部清除,使之成为排名第一的通知,从而自动展开;或 用一个鲜为人知的下滑手势展开;所以,对于广大Android开发者而言,支持扩展样式通知的效果其实是不尽如人意的,原因就是易用性不足从而导致曝光较少。

这个问题终于在AndroidN中获得了初步的解决。在上图中Gmail的通知顶部有一个箭头,点击即可切换收起状态和展开状态。如果没有箭头则表示这条通知是无法展开的(例如USB Debugging那条通知)。

其次,AndroidN中附带图标通知的视觉样式,与之前相比有很大变化。整体上来看样式更加规整,界面布局以信息为中心。通知的来源、接收通知的时间、标题和描述都集中在左侧,通过颜色和透明度的区分让重要信息一目了解。应用图标统一右置,与左侧信息形成有效的分隔。

3. 流量节省程序(Data Saver)

AndroidN中提供了一个全局的流量控制机制,目的自然是为了防止应用程序在后台恶意偷跑宝贵的移动流量。这个功能是默认关闭的,一旦开启之后除了GMS(Google Mobile Service,谷歌移动服务)外,其他应用都是默认不允许在后台使用超过前台所消耗的移动流量。

4.Android开发框架中提供部分ICU4J API支持

ICU4J(International Components for Unicode)是由IBM维护,基于IBM公共许可证分发的免费开源Unicode工具库,开发者可以使用ICU4J根据各地的风俗和语言习惯,实现对数字、货币、时间、日期、和消息的格式化、解析,对字符串进行大小写转换、整理、搜索和排序等功能。

5. 开始支持Java 8

AndroidN开始,开发者可以使用Java 8来编写应用程序,目前AndroidN对于Java 8的支持并不全面,但这依然是一个重量级的更新。目前支持以下内容:

默认和静态接口方法:使开发者可以修改接口而不破坏原来实现类的结构;

Lambda表达式:不仅让代码变得更简单、更可读、最重要的是代码量也随之减少很多;

重复注解:允许在同一申明类型(类,属性,或方法)的多次使用同一个注解,提高可读性;

反射及语言相关的API;

公用工具API;

为了使用Java8同时还需要引入Jack编译工具链,与传统编译工具链相比的优势在于全部开源,编译速度更快。Jack编译工具链完整地包含了重打包,压缩,混淆,MultiDex工具,使用Jack编译工具链之后将不需要再依赖类似ProGuard和Jarjar之类的单独组件。

Jack编译工具链向下支持到Android2.3应用的编译。同时Jack也是一套面向未来的编译工具链,未来预计还会支持Java 9,以及Java X。

开发者也可以继续使用Java7开发针对AndroidN的应用程序,但是编译时依然要使用JDK8。Jack编译工具链虽然非常诱人,但是对于开发者来说依然要做好充分的准备和测试工作。

6. 增强多语言支持 (Language and Locale)

Android N之前的系统中,多语言的匹配略显粗暴,例如一个讲法语(瑞士)的用户,使用一个包含默认英语(美国)和法语(法国)资源的应用
同时,海外很多国家的公民同时掌握多种语言。 Android N允许用户用户选择多种系统语言,并基于上述的多语言匹配顺序的优化,用户使用各种移动应用时看到自己母语的概率也会有所提高。

对于Android开发者来说,虽然AndroidN提供了容错能力更强的语言匹配方案,但这是以延长匹配时间为代价的,因此为了加快语言匹配速度,提高资源可维护性,应该将各种语言资源尽量提升到同源语目录下。例如将es-US和es-ES合并到es-419目录下。AndroidN提供了接口获取用户设置的语言列表,应用在显示多语言内容时,应该考虑到语言列表的因素以提升用户体验。例如对于提供网页翻译功能的浏览器来说,如果用户显示了语言列表中任意一种语言,就不应该再提示用户翻译。

7. 更加省电 (Efficiency)

在安卓6.0中,安卓引入了新的省电机制Doze,当时针对的场景只是当手机同时处于灭屏以及静止状态来减少应用对电量的消耗。但是在实际使用中手机灭屏时不仅仅是处于静止状态,还有很多情况下是处于运动状态的,例如步行,坐车,坐飞机等情况,这时Doze就不会生效。比如你出门在外把手机放在裤子口袋,若是Android6.0的Doze则会认为用户还可能会使用设备而不启动后台省电管理机制。AndroidN在此基础上更进了一步,将Doze的作用范围扩展到手机灭屏的所有时间段,无论是处于静止还是运动,省电效果也有望进一步提高。

当然,AndroidN的出现对于开发者来说是新的挑战,在Android日新月异的发展进化下,Android开发者优异性更加推动了Android开发市场前景​,高薪资加上完美就业环境​,多数开发者的选择。​


更多相关文章

  1. C语言函数的递归(上)
  2. Android(安卓)开发技术周报 Issue#294
  3. Flutter(环境搭建-Android视角)
  4. Android(安卓)Studio和eclipse之间的不同
  5. 【android】Sqlite中使用SQL与其他数据库的区别
  6. 谷歌宣布关闭Google TV,由Android(安卓)TV接任
  7. 个推-Android集成
  8. Android(安卓)6.0新特性
  9. Android(安卓)5.0 API新增和改进

随机推荐

  1. 今日学习内容 2021-12-20
  2. [开胃小菜]vscode常用插件与字体
  3. 通过 Maven 插件自动部署应用
  4. day1 note
  5. 在阿里云镜像站下载KiCad
  6. Manjaro Linux 入门使用教程
  7. 前端开发工具安装及使用小结
  8. 如何加快 Node.js 应用的启动速度
  9. Docker 镜像制作教程:针对不同语言的精简
  10. 编写vscode自带插件Ement常用语法并使用