【问题标题】:Android Live Wallpaper practices for performance and battery saving?Android动态壁纸的性能和省电实践?
【发布时间】:2011-07-04 16:24:12
【问题描述】:

很容易找到很多文章讨论初学者动态壁纸的实现,这些文章解决了涉及表面等的主要问题。

但是动态壁纸的专业发展呢?以正确的方式构建代码以确保良好的性能低功耗(以节省电池电量)和最适合不同设备的最佳实践是什么?

如果可能的话,一些涵盖这些问题的代码示例会很棒。

【问题讨论】:

    标签: android live-wallpaper


    【解决方案1】:

    功耗...
    1) 到目前为止,最重要的是您的壁纸在不可见时应自行关闭。多维数据集示例正确处理了这个问题,删除了 onDestroy()、onSurfaceDestroyed() 和 onVisibilityChanged() 中的可运行回调(当可见 == false 时)。
    2)除此之外,功耗的最大决定因素将是您的帧速率。与仅以 1 fps 更新以使其秒针滴答作响的时钟相比,24 fps 动画会消耗更多的汁液。没有办法解决这个问题,除了教育用户,让期望是合理的。无论是应用程序还是动态壁纸,动作游戏都会耗尽您的电量。

    性能...
    在画布上绘图具有简单的优点,但对于非常复杂的壁纸,您将需要使用 OpenGL。有 GLWallpaperService 和 AndEngine。库存壁纸使用 RenderScript(您可能会发现在 Android 源代码树中查找此代码很有用——比 SDK 中的立方体示例复杂得多)。还有一些关于扩展 libGDX 以处理壁纸的讨论。

    最适合...
    嗯,它就像 Android 的其他部分一样:您需要根据可扩展的比例来设计您的作品,查询设备并进行相应的调整。对于一个简单的壁纸,通常在 onSurfaceChanged() 中缩放您的作品就足够了,您可以在其中将宽度和高度作为参数。在某些情况下,您可能需要检查完整的 DisplayMetrics。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 2012-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多