2016年5月19日,谷歌在美国加州的山景城举办了GoogleI/O开发者大会中发布。
在系统界面上谷歌或许已经贫乏,这也是手机整体大环境所致,因此谷歌也只好转向修补方面,在Android M的基础上优化,AndroidN在三个方面做了改进,分别是性能、安全、生产力。
性能
支持Vulkan API全部特性,
应用编译与安装方面
JIT实时编译、混合编译.安装速度比现在快最多75%。
安全
1. 支持基于文件的加密
2. 无缝升级
Android N会使用两个系统镜像来确保OTA更新顺利、安全,相比也是为了解决Android系统碎片化的产物,谷歌提到的“无缝更新”,Android自动在后台下载新版系统并不算是什么新鲜事,不过在Android N当中,系统并不只是单纯的后台下载更新包而已,而是自动安装。这意味着以后你将无需重启手机完成更新,届时只需正常的重启,开机之后便是新系统了。
这种更新方式有些似曾相似,没错,Chromebook正是采用了这样的更新方式。Android N有两个系统分区,当系统发现有更新时该更新将被安装在第二分区,而当用户重启手机之后第二分区则自动切换成为主分区,从而实现“无缝更新”。
这种更新方式应该支持所有的Android N设备,不仅限于Nexus以及其它运行原生Android系统的手机。不过值得注意的是,这并不意味着OEM能更快的推进新系统的更新,这只是说当更新推送时你能更快的安装而已。
新产品
谷歌智能语音系统
Android N将其很好的结合在了手机应用的各个方面。Allo社交应用,它不仅能够用于沟通,还与谷歌最新的语音助手GoogleAssistant相结合。使用这款新的聊天应用时,能够同时使用谷歌搜索、位置以及视频应用等谷歌的服务。
Google Home+谷歌助理=全新智能家庭终端是一款智能音响,没有任何按钮,全靠语音控制。GoogleHome
除了能播放音乐和电影之外,还可以回答问题、设定闹钟或任务、记录预订信息和旅行计划,甚至是控制智能家居配件,而这一切操作都要配合谷歌助理使用,而基于人工智能的谷歌助理会在用户使用产品的过程中,一步一步地学习用户的习惯。
推全新应用Allo/Duo:聊天与视频都做到了
Allo是一款聊天应用,与微信、Line、Whatsapp等著名即时通讯应用类似,同时也支持图片分享评论功能。
Duo,实际上就是安卓的视频通话工具,当然你也可以把它看做类似于Facetime的应用,Duo是Allo视频辅助技术,即使网速不快也能流畅通话,Duo同时支持Android和iOS。
Android Wear2.0发布:无需连接手机也可独立运行,AndroidWear2.0同样进行了大幅度的优化,最重要的一点是用户在运动时可以不用携带手机也可通过智能手表进行短信,音乐等操作,同时不需要蓝牙连接。
加入了全新的原生分屏多任务功能,并且加入了多任务快速切换功能,帮助用户解决在两个任务之间频繁切换的问题。
新的AndroidN系统将增加一个“清除所有”的按键来帮助用户快速退出所有已经打开的应用程序。对于用户较长时间未使用的应用程序,AndroidN将会自动关闭。
1. Multi-Window Support (分屏多窗口支持)
2. Direct Replay & BundleNotifications (快捷回复和归拢通知)
3. Data Saver (节约数据)
4.系统层级支持了VR应用
5. 各种模式
6.新设计的系统设置界面
7.可调节显示尺寸Multi-Window Support
Multi-Window Support (分屏多窗口支持)
简单来说,就是屏幕上可以出现多个多个程序。想想你平时看视频的时候来了微信消息的时候,你得退出视频App,切到微信,回复消息,然后再切回来重新缓冲…这种设定用户体验较差...
有了 Android N以后,这个问题迎刃而解!
全新的 AndroidN 下将支持两种新的窗口模式:
1. Side-By-Side 模式:两个App瓜分一个屏幕
2. One-above-the-other 模式:一个App浮动在另一个App之上
3. 在 Android N TV 上,还将支持Picture-in-picture(画中画)模式,用户在浏览其他App的时候,视频可以浮动在屏幕上。
大致效果就是下面这个样子的:
对开发者而言,想要支持多窗口也很简单,只需要在AndroidManifest文件里加上一个属性即可:android:resizeableActivity=“true”|”false”
通知栏
通知栏终于支持自定义
在系统设置中,你能选择是否显示诸如蓝牙、屏幕旋转、音量、Wi-Fi、飞行模式等图标,同时也能更改时间(支持具体到秒)的电池(支持百分比)的显示样式,而通知栏中的「快捷按钮」也同样支持修改,直接拖拽就能更改位置或直接替换。
Direct Replay
新的 Android N目测是借鉴了iOS里的快速回复功能,用户将可以在通知栏里快速回复消息,邮件等通信信息。对于商务人士和爱好打游戏的玩家来说,是个很赞的功能。快速回复截图:
Bundle Notifications
邮件和 IM 类的 App 总是会在短时间内发来很多通知,在此之前,所有的通知栏是相互独立的,这些新到的通
知占用了很多空间,却只能显示有限的信息。归拢通知就是把这些通知归拢起来,逻辑性更强,展示的也会更
多。另外一大好处可能就是,用户可以一键消除掉所有同一个 App 发来的通知。个人感觉这个功能比 iOS 要先进一些,很多人的 iOS 通知栏里肯定存在着很多微信的通知对吧... 对开发者而言,全新的通知体系允许开发者更灵活的自定义通知的 UI(View)。
DataSaver
AndroidN 增加了一个系统级的控制开关:节约数据。
其实这个设定是一个中间设定,因为目前对于网络数据只有开和关两种属性,但有的时候,比如我们月底4G数据套餐快用光了,学生在宿舍用着收费的Wifi,又或者出国漫游,在这些场景下,我们既想开着移动数据,又想告诉所有的App,我当前的流量是有限的,大家不要用太多。当App在收到这个通知后,就会尽可能的减少网络请求,节省用户流量。VR平台
正式推出了全新的VR平台-Daydream,此平台优化了VR的算法,有效地降低延迟,减少用户体验过程的中的眩晕与不适;同时Daydream由谷歌最新操作系统AndroidN设备所支持,并且只支持那些已经配置特殊传感器和屏幕的新型手机。
谷歌在其最新的AndroidN操作系统中新增了AndroidVR模式,以此方便用户对Daydream的使用。VR模式将带来一系列优化,提高应用表现。Daydream的主页让用户在使用头盔的时候能够连接到应用和内容。谷歌在本届I/O大会上宣布了将要生产适配Daydream的手机厂商,包括三星、HTC、LG、小米、华为、中兴、华硕等。
模式
省流量模式:它能限制应用的后台数据、同时告诉应用「你该省点流量了」。
未来理想的情况是(国内大厂先不能指望),应用能利用好Google推出的接口,在你开启「省流量模式」后,能够学会在前台后台都省流量。
而其中的原理,也绝不是单纯地关闭后台那么简单。
夜间模式:更暗、更护眼
在太阳落山后自动开启夜间模式了
Doze 省电模式
一句话解释,就是之前是在手机平放一段时间后,才会开启的Doze省电模式,现在可以随时开启了。其中的唤醒原理有些复杂,但可以预见未来的Android应用频繁唤醒的情况会有所改善。
新设计的系统设置界面
很多常用设置不需要进入二级页面
可调节显示尺寸
AndroidN将带来一系列新的辅助功能,现在你不只可以调整字体大小,还可以调整显示的尺寸。在系统设置中,除了字体大小,如今还可以调整显示大小了。在放大后,页面中的图标、字体、按钮等元素都将放大,而不会带来清晰度的损耗。直接带来的好处就是,在长辈使用手机时,也许不必再掏出眼镜。
对于开发者而言的新特性
接下来的一部分,是 Android N 在SDK方面的一些提升。 对于开发者们而言:
1. 支持Java 8
2. Jack(JavaAndroid Compiler Kit)全新的编译工具集
3. BackgroundOptimizations(后台优化)
4. ScopedDirectory Access(特定文件夹权限)
5. Languageand Locale (语言和地区)
6.Direct Boot (直接启动)
7.TV Recording(TV录制)
8.Launcher Shortcuts
9.Vulkan3D渲染API以及EmojiUnicode
10.开发者工具更新Firebase
支持Java8
OpenJDK替换JavaAPI
因为诉讼,Android未来将不再使用甲骨文专有JavaAPI。
但OpenJDK也是开源Java开发工具包的一部分,能够更简单地创建通用代码,改善Android的开发环境,可以说是AndroidN内在的一个重大变化。
Android N开始支持Java8了
很多 Geek 开发者为了Java中的Lambda表达式,折腾来折腾去的Retrolambda也即将要退出历史舞台了。Kotlin一贯标榜的便利,失色三分了。今天起,开发者也要开始学习Java8了。
Jack(Java Android Compiler Kit)全新的编译工具集
Jack 最大最大的优点,你不用再操心65K方法限制的问题了!Jack在Compile的时候就已经解决了!『65k方法限制』将成为过去式中存在的名词了。
其他的一些变化:
1. 速度(每次都会提升速度
2. Library File的后缀(变成了.jack
Background Optimizations(后台优化)
官方对 ACTION_NEW_PICTURE和ACTION_NEW_VIDEO移除,也提供了缓和之计。就是使用 JobScheduler 这也是Android团队安利已久的一个定时任务方案。
而且官方还说了,未来,很会广播机制都会有所改动。所以...国内的Android目测也会越来越好用,国内无良厂商们能玩儿花样也会越来越少。
同时,adb 里也增加了测试后台服务 不可用的命令,方便开发者做测试。
禁用后台服务:$adbshellcmd appops setRUN_IN_BACKGROUND ignore
重新启用:$adbshellcmd appops setRUN_IN_BACKGROUND allow
Scoped Directory Access (特定文件夹权限)
有的时候,App可能只需要读写特定文件夹,在此之前,你得申请READ_EXTERNAL_STORAGE 或者 WRITE_EXTERNAL_STORAGE 的权限,这个权限会让用户很不放心而且对于心怀鬼胎的App,没准也会瞎搞,新的体系下,App可以申请一个特定文件夹的权限来证明自己的清白。
做个干干净净的App,就用这个特性吧!
Language and Locale (语言和地区)
AndroidN里用户可以选择多种地区。比如你会中文和日语,就是不会英语。你就可以同时选择中国和日本。这样App显示语言的顺序将会是中文,没有中文优先显示日文,而非现在的一旦找不到语言包,就默认选择了英语。
Direct Boot (直接启动)
用户在开机但是还未解锁的情况下,很多App是无法启动的,这会导致一些问题,比如...你设置的第三方闹钟可能没响,你的微信可能收不到通知...Android N下可以申请在开机未解锁情况下直接启动。
TV Recording(TV录制)
这是 Android N TV上的一个提升,允许App录制TV信号视频,很爽的,比如你在加班,而冰火第六季已然已经开演,先让TV录下来,回去再看…就酱...
LauncherShortcuts
在苹果的3D Touch和魅族Pro 6的3D Press之后,现在谷歌终于也加入了类似于压力触控的交互功能,名为LauncherShortcuts,也就是为应用增添了一些“右键选项”,比如向特定联系人拨打电话或发送短信,以及地图应用直接导航回家等常用操作,而每个应用大致可添加的快捷选项可能在3至5个左右。不仅如此,谷歌表示应用的LauncherShortcuts还可直接固定在桌面上,相较于重压呼出的方式更加直接,而这也是3DTouch所无法实现的。
Vulkan 3D渲染API以及Emoji Unicode
第二版Android N Preview还支持Vulkan 3D渲染API以及EmojiUnicode 9,前者可在降低资源占用率的同时大幅提升渲染效果,而最新的EmojiUnicode 9则添加了不少新表情,甚至还有耸肩、捂脸和黑人警察叔叔,估计也是够大家玩儿一阵子的了。
Firebase
本届谷歌I/O大会还推出了新一代的移动开发者平台Firebase,它可以帮助开发者提高开发速度、改进应用质量、获取用户以及更好地变现。
Firebase是同时支持Android、iOS与移动Web开发的统一应用平台,能够让开发者跨平台工作;它还能提高集成度,为开发者提供更好的开发体验。
背景情况是Firebase作为一家实时后端数据库创业公司,它能帮助开发者很快的写出Web端和移动端的应用。2014年10月Google收购Firebase。
适配AndroidN需要注意什么
记得 6.0对ApacheHttp库的废除导致的应用崩溃吗?还记得6.0中 MACid 始终返回为空导致的唯一id 混合生成算法大幅失效
1.Android 中Java的实现向OpenJDK8 迁移
Android 是站在 Linux和 Java肩膀上快速成长的,在运行时依赖 Oracle JDK,早在2010年甲骨文就起诉谷歌侵权Java。在N中 Google采用OpenJDK 8作为 Java 的实现,在Java实现上的一些差别可能导致应用出问题。如:
(1) ArrayList实现中的私有属性array被移除,反射使用该属性的需要注意下。
(2) 随机数种子调用可能出错,Crypto安全提供商在OpenJDK中不提供,而它在大家调用SecureRandom.setSeed()设置随机种子时会用到,OpenJDK中需要通过SecretKeySpec去直接加载原始密钥或者使用真正的密钥导出函数。
2.JNI 中不允许调用非公有 API
JNI 中不允许调用非公有API,由于命名空间的变化,在Android N 上运行会崩溃,需要切换到对应公有API。
3. “老人机的适配”
Android N 允许用户设置显示密度,有点像老人机模式。需要测试App 在 sw320dp密度下显示是否正常,及配置变更后应用是否会有异常。
4. 后台优化——三个广播被禁止监听或发送
(1)CONNECTIVITY_CHANGE 广播,对targetVersion设置为AndroidN的App,在后台时不再能接收到CONNECTIVITY_CHANGE广播,前台不影响。
(2)ACTION_NEW_PICTURE 和ACTION_NEW_VIDEO广播,所有运行在Android N 上的 App不能发送或是接收新增图片(ACTION_NEW_PICTURE)和新增视频(ACTION_NEW_VIDEO)的广播。
5. 权限改动
(1)GET_ACCOUNTS 权限被废弃,对targetVersion设置为AndroidN的App,GET_ACCOUNTS权限被废弃。
(2) 增加 ACTION_OPEN_EXTERNAL_DIRECTORY权限,这个感觉就是对部存储设备写权限的保护,需要用户同意,说不定以后就慢慢废弃WRITE_EXTERNAL_STORAGE权限了。
6.更严格的Doze模式
大家知道在Android6.0中,在手机关屏且静止时,Doze模式通过推迟CPU和网络操作延长底池寿命。而Android N则在手机关屏时就会一定程度限制CPU和网络操作,进入Doze模式一段时间后进一步限制WakeLock、Alarm、GPS和Wi-Fi扫描等,做好迎接休眠状态下更多功能受限导致的bug吧,哈哈。
7.自带ICU4J库的子集
更方便App的全球化了