android wear续航,androidwear开发之优化性能与电池续航.doc

androidwear开发之优化性能与电池续航.doc

除了容纳通知卡片和系统指示器,你需要确保添加的动画在你的表盘上可以流畅运行,并且你的service没有执行不必要的计算。android wear中的表盘会在设备上持续运行,所以你的表盘能有效的使用电量尤为重要。

需要表盘包含一个背景图和其他覆盖在上面的图像资源,例如时钟指针和其他时刻运动的设计元素。每次系统重绘表盘的时候,通常这些图像元素在Engine.onDraw() 方法中都会被缩放或者旋转。

这些图像资源越大,就需要越多的计算资源来变化它们的效果。在Engine.onDraw()方法中变化的图像资源越大,就会大大降低系统运行动画时的帧率。

为了提高表盘性能:

不要使用过大的图像元素

移除不需要的透明像素

上面这两个时钟指针图片示例可以减少97%的尺寸。

减少bitmap资源尺寸不止是提高动画性能,还能节省电量。

如果你有经常绘制在一起的多个bitmap,考虑在一个图像资源中组合它们。你可以在交互模式下多利用组合背景图片,避免系统在重绘表盘的时候每次都绘制两个全屏的bitmaps。

当你使用Canvas对象的 Canvas.drawBitmap()方法来绘制一个缩放图像时,你可以利用一个paint实例来配置多种参数。为了提高性能,使用setAntiAlias()方法来禁用抗锯齿,因为这个参数在bitmaps上没有任何效果。

使用位图过滤

对于你绘制在所有元素顶部的bitmap资源,通过使用同一个paint实例的setFilterBitmap() 方法来启用位图过滤。

上面两张图是放大了的时钟指针视图,显示出开启(下图)和关闭(上图)位图过滤后的效果。

当重绘表盘时系统每次都会调用Engine.onDraw()方法,所以你应该只把完全必须用来刷新表盘的操作放到这个方法中,这样可以提高性能。

如果可能,避免以下这些操作放到onDraw()方法中:

加载图片和其他资源

调整图片大小

分配对象

不会总是发生改变的计算执行结果

你通常可以将这些操作放到Engine.onCreate()方法中。你可以把调整图片大小的时间提前到Engine.onSurfaceChanged()方法中,这里也可以获取到画布尺寸大小。

为了分析表盘性能,可以使用DDMS。特别是要确保Engine.onDraw()方法中的实现执行时间很短,以及调用一致。

除了上面描述的技术问题,下面还有让你的表盘减少电量消耗的最佳实践。

减少动画帧率

动画的计算通常非常昂贵,并会消耗很多电量。大部分动画保持每秒30帧看上去就会很流畅,所以你需要避免用太高的帧率运行动画。

让CPU休眠

动画和表盘少量内容变化都会唤醒CPU。你的表盘应该可以让CPU在动画期间休眠。例如,你可以在交互模式下每秒种内使用短时动画,在下一秒之前可以CPU休眠。让CPU经常休眠,甚至只是短暂的时间,都可以明显减少电量消耗。

为了最大化电池续航,尽量少的使用动画。即使一瞬间的闪光都会唤醒CPU,并会消耗电量。

监视电量消耗

android wear配对应用可以让开发者和用户看到android wear设备上的不同进程消耗了多少电量,在设置 > 查看电量(Settings > Watch battery)中。

更多android 5.0新功能以便帮助你的提高电池续航,可查看Project Volta

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值