Android O开发者预览系统体验[Nexus 6P] Skia GPU介绍和测试
农步祥 于 2017.04.23 17:41:26 | 源自: | 版权:原创 | 平均/总评分:09.50/171

上个月,谷歌提供了Android O的第一个开发者预览版的系统镜像下载, 虽然它对应的正式版系统Android 8要在今年第三季度才会正式发布,但未来新系统的许多重要变化,将会在开发者预览系统中进行体验和测试。由于是早期开发者固件,稳定性尚未达到Beta级别,谷歌并未向申请了系统测试的用户推送更新。目前支持Android O的机型有Pixel C、Pixel、Pixel XL和Nexus 5X、Nexus 6P等,由于Pixel XL正用于拍摄样张,因此我们在Nexus 6P上手动下载安装了Android O系统用于体验。

在界面上,由于的原生Android机型会保持独立的风格,因此界面风格并不是统一的,即使Nexus 6P在更新后,桌面和应用抽屉风格和原来一致,并没有向Pixel XL的界面样式靠拢。和去年的Android N和前年的Android M对比,Android O在“开发预览”的部分增加了相当多的新功能,虽然许多功能看起来和手机的应用无关,但还是和用户日常使用体验密切挂钩的。其中就包括了Skia功能的开放。4年前,我们在一篇技术分析文章的翻译中介绍并测试了Skia和Skia GPU加速的性能表现,不过近年来Soomal的新增了大量围观群众和读者,这部分对许多人来说或许是全新的内容,所以首先还是来回顾一下Skia和过去Android GPU加速的小知识。

Skia介绍

Skia是一个2D图形显示引擎,使用C++编写,在2005年被谷歌收购,目前是Chrome OS、Chrome浏览器Firefox和Android的图形渲染核心,并以BSD协议开放源码。不过目前稳定的Android系统并未使用完整的Skia API进行2D图形的渲染,许多图形处理仍通过OpenGL向帧缓冲输出进行显示。不过开发者和系统爱好者可以自行下载Skia的源代码编译强制替换成为Android默认的2D显示引擎。

从Android 3.0开始,谷歌在开发者选项中提供了一个GPU硬件加速功能,但此功能一直处于测试状态,表现并不稳定。但这个功能可以很好地测试GPU硬件加速对Android性能的影响。在当时,Skia GPU加速实测表现还远不如直接使用CPU进行图形处理。与之相对的是,即使如英特尔BayTrail Atom这样CPU性能较弱的X86处理器,借助Windows 8/10优秀的GPU硬件加速效率和图形处理能力也能获得流畅的系统使用体验。

当然这样的表现对比并不会让人意外,毕竟从Linux演变而来的Android继承了Linux在图形性能上的缺点[超算电影CG渲染那种堆节点的暴力应用案例不算],不过随着OpenGL自身的进步,以及性能效率媲美DirectX 12的Vulkan API发布,Android的3D图形性能上的表现是在逐步改善的。另外各个ARM处理器厂商针对Android的图形系统特点进行硬件级的优化,已经做得比较成熟。甚至还有NVIDIA的Tegra处理器依靠强大全面的GPU纹理压缩功能对2D和Web界面进行优化传输,以达到实质上的GPU加速效果。

然而随着屏幕分辨率的大幅度提高,单纯依靠CPU优化的方案在高分辨率显示下已经力不从心,也越来越耗电。虽然大多数网络APP本质就是网页浏览器套个应用外壳[一般被称为WebView,对比淘宝的手机浏览器版和手机APP的差别便知],在微信支付宝脸书等日渐复杂和越发变态的网络应用面前,2000元价位的主流性能手机已经不大可能只依靠CPU优化和内存硬吃等简单粗暴的手段改善应用体验了。

  • 在Android O开发预览版中,谷歌开放了完整的Skia系统渲染功能,并且可以在开发者选项中进行切换,对于Android开发者用户来说省去了下载源码编译和安装集成的步骤。可以方便地比较Skia和Skia GPU加速的性能表现区别。

    Skia GPU性能测试

    在截下来的理论性能测试中我们主要测试Android O的默认渲染器、Skia和Skia GPU加速的性能表现差异。测试主要使用browserbench.org的HTML/javascript测试和Vellamo的浏览器测试部分。由于手机系统重启后渲染器的选项会重置,因此每次测试后只能通过清理进程和加强散热的方式确保系统运行的状态。

  • MotionMark主要测试的是网页的图片、矢量图形和动画效果的显示性能,Skia GPU还是比CPU渲染稍慢一些,但差距很小。

  • JetStream是用于测试模拟运行复杂Javascript脚本时浏览器的性能表现。使用Skia GPU时,JetStream的Javascript性能提高了10%,看起来不多。不过在PC上同样电脑配置下[i7 6700+GTX1080]微软的Edge浏览器也只比Chrome快10%而已,而且脚本加载、加密和页面的读取速度等几个单项有明显提升,说明GPU加速对复杂Javascript的部分运算还是有明显影响的。

  • Vellamo得出的整体成绩是Skia比Skia GPU好一些,可以视为区别不大,在骁龙820处理器平台上测试的对比效果应该更好,因为Nexus 6P的骁龙810容易出现过热降频的问题,无法连续长时间运行测试。

    总结和展望

    目前以Android O为基础应用还无法进入Google Play市场,至于一些主要的国内网络应用,能在测试系统上正常运行的还较少。而Nexus 6P本身网页浏览表现就不好,在使用Skia GPU加速时,动画和划动页面效果还是要比默认的渲染器明显更慢,除了处理器的性能和运行稳定性成为了瓶颈,Skia GPU本身还是存在一些问题。

    和四年前相比,通过开源和不断的开发完善,Skia确实有了长足的进步,这也是它成为多款浏览器和操作系统的默认图形渲染器的原因。而Skia GPU加速虽然在图形显示效果上并没有比CPU渲染更好[听起来很奇怪?],但是和过去的“负优化”相比,Skia GPU起码已经处于可用状态,而且对于那些日渐变态的网络应用来说,Javascript的脚本运算同样占据了不少负载,Skia GPU加速确实可以改善复杂脚本、加密脚本的加载时间和触发延迟,也意味着耗电时间的减少,即使“看起来”那些网络应用并没有变得更流畅,但整体对于用户体验改进而言效果还是正面和积极的。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    123.151.077.***
    123.151.077.***
    发表于2020.03.28 02:45:31
    22
    113.096.231.***
    113.096.231.***
    发表于2019.08.15 20:08:13
    21
    123.153.160.***
    123.153.160.***
    发表于2018.06.02 00:06:04
    20
    10
    此帖使用MAC提交
    蛋炒饭修改此贴于2017.05.24 15:14:41
    发表于2017.05.24 14:13:08
    19
    085.025.236.***
    085.025.236.***
    发表于2017.05.15 15:37:05
    18
    03
    发表于2017.04.25 23:00:58
    17
    211.143.230.***
    211.143.230.***
    发表于2017.04.25 12:12:27
    16
    112.115.***.***
    112.115.***.***
    测试过的机型有:安卓4.0.4的HTC EVO 3D;安卓4.4的三丧NOTE3(韩版);安卓5.0的乐视1PRO;安卓6.0的LG V10;安卓6.0和安卓7.0的LG G5(韩版)。其中HTC EVO 3D开了这个电池如同尿崩,机身发热频次和程度明显恶化;其次是LG的G5和V10,开了后明显感到待机更垃圾了;乐视1PRO开了后,待机时莫名发热以及电池狂掉概率上升。总而言之,感觉打开强制使用GPU呈现后,原先跟手的操作仍旧跟手,原先会卡顿的操作仍旧卡顿,但是电池却负优化了,难怪谷歌把这玩意儿一值珍藏在开发者选项里并且默认关闭……就好比当年停电,我全低特效(垂直同步开)开启独显跑老滚5,笔记本坚挺了2小时左右;同样的设置,用核显关独显,笔记本居然坚挺了快4个小时。所以我想说,看个网页、聊个微信神马的时候,你GPU最好做一个安静的花瓶,呆在那发呆就行,就不麻烦您老人家了,毕竟我们这边还1核有难,9核围观中……
    此帖使用Win10提交
    发表于2017.04.25 10:58:44
    15
    114.229.031.***
    114.229.031.***
    发表于2017.04.25 10:18:15
    14
    03
    也赞楼上的高手
    此帖使用iPhone提交
    发表于2017.04.24 18:56:43
    12
    220.172.006.***
    220.172.006.***
    发表于2017.04.24 17:41:58
    11
    220.172.004.***
    220.172.004.***
    发表于2017.04.24 17:41:58
    10
    03

    此帖使用ZUK Z2131提交
    发表于2017.04.23 23:58:38
    9
    111.058.146.***
    111.058.146.***
    发表于2017.04.23 23:52:05
    8
    221.013.063.***
    221.013.063.***
    发表于2017.04.23 22:26:37
    6
    175.042.221.***
    175.042.221.***
    发表于2017.04.23 22:25:12
    5
    Skia是一个可以跨平台使用的色彩空间处理和2D图形加速库,但是这个库所面对的后端还是根据操作系统选择的(Linux和Android为OpenGL Windows为Direct 3D、Direct 2D或者是陈旧的GDI)。
    在以前的Android版本中Google就已经使用Skia作为图片处理库了(我记得没错的话在Android 7以前的版本中Skia有RGB和YVY色彩互转的Bug,问题表现JEPG图片经过多次转换后会变绿)。
    从Android 4.0开始,Google为应用程序提供了基于OpenGL ES 2.0实现的全局可用的GPU 2D加速(在Android 4.1-4.4又进行了大量的功能更新)。
    Android的WebView(也可以说Android版本的Google Chrome和Mozilla Firefox)是使用Android提供的GPU2D加速实现的网页加速,这样不利于浏览器的跨操作系统实现,而Skia将不同操作系统的图形加速封装成统一的API,可以方便的实现跨操作系统的硬件加速实现。我觉得这才是Skia真正重要的地方。
    此帖使用NEXUS 6P提交
    发表于2017.04.23 21:23:57
    4
    171.105.146.***
    171.105.146.***
    发表于2017.04.23 19:34:57
    3
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    1948 为防止广告机贴垃圾,不得已而为之
    表情
    正文