美文网首页iOS 性能学习和探索
有效地使用图形动画和视频

有效地使用图形动画和视频

作者: 夜沐月 | 来源:发表于2020-05-07 10:05 被阅读0次

    避免无关的图形和动画

    如果你的应用程序只使用标准的窗口和控件,你可能不需要太担心无关的内容更新,因为系统api是为了最大限度地提高能效而设计的。但是,如果有自定义窗口和控件,请确保图形代码的执行效率高。您的应用程序不应该不必要地刷新内容,例如在屏幕上的模糊区域,或通过过度使用动画。
    每次你的应用程序更新(或“绘制”)屏幕内容时,它都需要CPU、GPU和屏幕处于活动状态。无关或低效的绘图可以将系统资源从低功耗状态中拉出来,或阻止它们完全断电,从而导致大量的能源使用。

    按照以下指导原则优化内容刷新

    • 减少应用程序使用的视图数。
    • 减少不透明度的使用,例如在显示半透明模糊的视图中。如果需要使用不透明度,请避免在经常更改的内容上使用它。否则,能量成本将被放大,因为无论何时内容更改,背景视图和半透明视图都必须更新。
    • 当应用程序或其内容不可见时(例如当应用程序的内容被其他视图、剪辑或屏幕外遮挡时),请删除绘图。
    • 尽可能对动画使用较低的帧速率。例如,在游戏过程中,高帧速率可能是有意义的,但是较低的帧速率对于菜单屏幕来说就足够了。仅当用户体验需要时才使用高帧速率。
    • 执行动画时使用一致的帧速率。例如,如果应用程序每秒显示60帧,则在动画的整个生命周期中保持该帧速率。
    • 避免在屏幕上同时使用多个帧速率。例如,游戏中没有角色以每秒60帧的速度移动,而天空中的云以每秒30帧的速度移动。对两者使用相同的帧速率,即使这意味着要提高其中一个帧速率。
      开发游戏时使用推荐的框架。这些框架经过优化以提供卓越的性能和最佳的能效:
      在二维游戏中使用SpriteKit。请参阅SpriteKit Programming Guide
      SpriteKit Framework Reference.

      使用SceneKit进行休闲3D游戏。请参见 Scene Kit Framework Reference
      和场景工具包功能参考。
      在高度沉浸式的游戏中使用金属。参见Metal Programming Guide, Metal Framework Reference
      和《Metal功能参考》。
      注意

    有关实现windows和视图的指导原则,请参阅 View Programming Guide for iOS and View Controller Programming Guide for iOS.

    播放全屏视频时限制用户界面

    iOS经过优化,可以在播放全屏视频的同时有效地管理资源,从而节约能源。然而,在播放视频的上方或下方的附加UI层可以通过增加额外的资源(例如GPU)来降低这种优化
    avplayervewcontroller类提供的标准视频控件集在媒体播放期间自动隐藏。应用程序应该避免在全屏视频上方添加额外的层(甚至是隐藏层),这是没有充分理由的。当用户通过点击等方式请求控件和其他UI元素时,在全屏视频上显示控件和其他UI元素是很好的和预期的行为。但是,当用户不与这些元素交互时,应该删除这些元素

    相关文章

      网友评论

        本文标题:有效地使用图形动画和视频

        本文链接:https://www.haomeiwen.com/subject/ckawghtx.html