首页 存档 技术 查看内容

关于AndroidN的那些事

2018-3-30 13:00 |来自: 互联网 308 0

摘要: 今年3月,Google破天荒提前半年发布了Android N开发者预览版。当然,作为一个不合格的谷粉并没有第一时间体验安装,因为至今仍然能够回忆起来去年今日此门中(雾)兴冲冲刷了Android M Preview的时候发现各种crash就 ...

今年3月,Google破天荒提前半年发布了Android N开发者预览版。当然,作为一个不合格的谷粉并没有第一时间体验安装,因为至今仍然能够回忆起来去年今日此门中(雾)兴冲冲刷了Android M Preview的时候发现各种crash就连微信也(不出所料得)中招时自己一脸懵逼的心情。当然,为自己的机智而庆幸并没有过多久,很快就有微信好友(当然也是纯纯的谷粉)反馈微信又双在Android新版本下crash了……好吧这次我们的时间很充裕,因为5个preview之后才会发布最终release版本。令人失望(咦)的是,我们的工程师在一天之内就修复了这个bug并且赶在当天6.3.15alpha版本发布之前修复并合入主线,辜负了Google的一片苦心。

痛定思痛,当天我就拎起来麒麟臂,在chrome的地址栏重重得敲入:http://developer.android.com/preview/overview.html,并且听说Google在北京举办了Android开发者大会的时候,屁颠屁颠得过去了。

假如我是产品经理

在这个『人人都是产品经理』的年代,作为程序员当然是敲得起代码,当得起经理(。。。)。如果我是产品经理,Android N的更新无非是以下三个点:

  • 1. 默认多窗口支持

  • 2. 强化通知,里边有你最喜欢的直接回复

  • 3. 没了…当然不是:Android Developer一笔带过的重磅feature:允许第三方应用在快速设置中添加自己的服务

默认多窗口支持

注意『默认』二字:这很重要,这很重要,这很重要。


Android M里边,系统允许应用在启动某Activity(对于PM(这里的PM统一指代产品经理)来说可以不严谨得理解成界面)时带上特殊参数,该应用可以在最近任务窗口中和主应用分开显示,即multi-tasking支持。当然,并没有多少应用鸟这个Android M中为数不多的新特性之一,因为效果实在是不明显。也有一定的原因是在这个大部分产品经理不会关注Android Developer的年代,这个非默认的特性实在不会引起他们的注意。

在Android N中,竟然直接支持了multi-window!虽然这个特性并不惊艳,在iOS、三星和华为等机型中早已支持,甚至在Android M中,也可以预埋了这个特性,并可以通过某些特殊方法开启(详见:http://www.androidauthority.com/multi-window-mode-android-6-0-marshmallow-647230)。然而,和iOS应用需要特殊声明才能支持多窗口的特性不同,Android N竟然默认支持了多窗口。这意味着任何一个应用,无论target-api是否是Android N,都支持从最近任务中长按应用标题栏进入多窗口模式。demo视频(需翻墙):https://www.youtube.com/watch?v=XrySr1KBKIs。

默认支持也就意味着除非特殊声明,任何应用都支持前述视屏所示效果,也就是说如果应用不针对这种模式进行完美适配,或者说用了绝对布局的话,你的应用就会。。。。呵呵呵。

当然,这种老掉牙的特性是不会引起高冷的PM的注意的,只会扔给开发狗交给我们去适配。那好吧,来一个one more thing刺激一下你:

在Android N中,将支持分屏情况下drag and drop,让这个4.0开始就支持faeture焕发了新生。这也就意味着你可以将一个应用内、甚至不同应用间的分屏情况将一个分屏幕控件拖拽到另外一个分屏幕。也许可以用来拖拽图片快速发图,或者。。随便你想干什么。

当然,从开发狗的角度来说,这里有一点安全隐患:如果通过拖拽将数据传递过来,你甚至不知道来源是什么。但是想想也是,毕竟用的和粘贴板一样的接口,还能指望什么呢?

另外,作为分屏的一种特殊形式,画中画(picture in picture)也得到了相应的支持。不过据Google的工程师说,画中画模式主推Android TV中应用(也许Google认为在手持设备上场景不足)。不过whatever,现在很多功能已经可以通过浮窗接口实现。画中画对于做视频应用或者有视频支持功能的应用非常有帮助。

此外,给程序员朋友们几个小贴士

  • 1. 虽然分屏状态下两个应用都可见,但是对于非Focus状态的应用当前是处于onStop状态的,也就是说,并没有实际在运行中。原本onStop的时候应用应该是不可见,但是现在可见了。。。原本的一些恶心逻辑注意修改下。

  • 虽然分屏状态下的应用不会double内存占用,但是内存占用肯定会比正常状态大,注意分屏模式下即时释放内存。

  • 2. 适配好你的程序,该加scroll的地方加scroll。当然,如果原本的你的程序就已经针对多尺寸屏幕有了处理,就已经完美适配了这个模式

强化通知

通知栏一直是Android引以为豪的方面。相对于iOS的通知栏来说,Android的通知栏具有几乎完爆的功能:自定义控件,自定义Action,可以定义下来拓展的控件……除了快速回复。

在这之前,先上一段Android N新版本的通知栏和快速设置栏,至于为什么放视频,嗯。。。因为我觉得很好看: