1、起因
所有演示Demo都通过APPManager统一进行管理,后面发现原来的应用程序打开后,运行起来有些卡顿;
后面通过查看FPS,发现FPS值只有20;而之前源工程中保存的Build的该应用程序,打开后正常,FPS值有60;
由于创凯采用的旧版本的SDK制作的软件,运行起来较为流畅,FPS值最大1000左右,最小也有150,然后开始查找SDK在升级过程中,那部分更改导致SDK打包的程序边卡了;
2、原因
APPManger采用的Unity进行开发的,默认启动时在固定窗口下打开,用于通过APPManager启动应用后,一般都等待软件启动,不会刻意将APPManager最小化或者关闭,在应用程序启动后,APPManager在后台运行;
这就导致前台运行的Demo出现卡顿,FPS只有20;后面发现,即使在后台打开一个视频(不论是否全屏),都会导致前台运行的Demo的FPS值出现明显下降;
而且用Unity打包一个空场景,在后台运行时也会对前台的Demo产生影响;
3、解决办法
APPManager在打包时,取消“Run In Background”的勾选(后面运行/鼠标焦点不在当前应用上时,Unity默认的声明周期不再执行),即APPManager切换到后台后,不再运行;
然后将Demo按照窗口模式运行,分辨率任意设置,需保证分辨率大小非全屏时大小;然后再通过相关代码,将当前窗口调整到显示器分辨率大小,实现伪全屏;
4、总结
1、Unity打包的应用,如果不勾选“Run In Background”,应用切换到后台后仍在运行,会占用相关GPU和CPU;
2、后台用其他应用或者窗口在运行时,对前台运行的程序会产生相应影响,导致前台应用出现操作变慢等情况;
领取专属 10元无门槛券
私享最新 技术干货