当打开一个应用时,应用的启动时间就是用户的等待时间,如何通过设计用户对应用启动过程的实时感知,避免等待过程中较差的用户体验,这就涉及到了本文要讲解的Starting Window 概念。
Starting Window 是一个在应用程序进程创建并初始化成功前显示的临时窗口,也就是应用启动页。当用户点击应用图标启动应用时,会立刻弹出Starting Window,当应用加载完第一帧页面后Starting Window 随之消失。
Starting Window 是由系统提供的,而开放性的系统决定了开发者可以自行定制Starting Window 的表现形式。目前主流的设置方法有三种:
使用系统默认的 StartingWindow :等应用加载好第一帧之后,StartingWindow 消失,显示应用第一帧页面;
使用定制的 StartingWindow :通常可以设置一张图片,减少画风突变带来的突兀感,等应用加载好第一帧之后,定制的 StartingWindow 消失,显示应用主界面;
把 StartingWindow 禁掉或者设置透明:用户点击应用图标启动应用后,除了图标黑一下外没有任何响应,过1- N 秒直接显示应用主界面或者欢迎界面。
由于使用系统默认和定制StartingWindow两种方式从广义上都是有StartingWindow的,且这两种方式用户感观差别较小,故将二者统一归结为有StartingWindow类。
本文主要对比有无StartingWindow两对用户感观的影响,为了更清晰的了解有无StartingWindow的区别,整理对比为下图:
从用户角度来说,设置了StartingWindow可以明显感知等待时间减少,下面通过测试数据来说明。
测试方案:
录制同一应用分别在设置Starting Window和屏蔽Starting Window下应用弹出第一个界面的视频,通过机械手进行时间统计。
测试应用和环境:
应用:心声社区
硬件设备:Mate20 6+128
软件版本:EMUI9.0.0
测试结果:
通过测试数据可以看到,在设置Starting Window的情况下出现首个界面的时间为150ms,用户直观感受为应用启动较快;没有设置Starting Window时,出现首个页面的时间为707ms,相对第一种情况足足多了500ms,这个等待时间用户可感知,会造成明显的等待时间,影响用户体验。
因此可以得到结论,设置Starting Window可以减少点击响应时延,减少用户等待时间,建议应用进行设置。
国内主流应用有无Starting Window 调查
本次评测分别从影音娱乐、实用工具、金融理财等12类应用中各选取了3款,来查看它们Starting Window的设置情况。
影音娱乐、实用工具、金融理财、社交通讯、便携生活、出行导航、教育、运动健康、拍摄美化、新闻阅读、购物比价和旅行住宿。
经分析发现,本次测试的36款应用中,绝大部分应用设置了Starting Window,仅有17%的应用没有设置,主要是社交通讯类和实用工具类应用。
虽然有无Starting Window并不会影响应用功能,但是启动是给用户的第一感受,是吸引用户使用的重要因素之一。因此建议开发者为应用添加Starting Window,加速界面反馈,减少用户等待时间,平缓过度到应用主界面,减少画风突变带来的突兀感。
Starting Window 设置指导
Starting Window可以设计为一个有内容的开始界面或一个白屏,但显示白屏的感官相对较差,因此建议开发者设计一个有内容的界面(通常为图片)。适配方法如下:
1. 选取一张合适的图片作为启动界面,建议PNG格式,放入工程中下列目录
MyApplication/app/src/main/res/drawable
例如放入一个startingwindow.png
2. 在styles.xml文件中添加一个style样式,指向放入drawable中的Starting Window图片,来实现Starting Window界面显示。
*原理是将窗口的背景设置为制定的Starting Window图片,实现Starting Window的显示。
3. 在AndroidManifest.xml文件中启动activity的节点下添加上一步新增的style,下述的黑色加粗部分,这样就会在应用的主界面显示前,先显示StartingWindow图片。
4. 修改MainActivity.java文件,在主界面显示前恢复窗口的背景为原有的样式:
在onCreate中使用setTheme恢复原有的样式。