问题

我处于一个"特殊"的情况,我的计划是效率。现在我处于一个需要提高应用程序性能和减少电池消耗的阶段。

在问题之前:

  • 首先,我的申请工作。它运行良好 - 没有任何错误。
  • 其次,我已经阅读了Android开发者网站上的优化电池寿命,并且我已经优化了他们要求的小东西。没有任何问题。

现在,我很想知道他们用来优化自己的应用程序的其他开发人员的特殊修正。用户可能永远不会识别或注意的东西。但是,修复将延长电池寿命或帮助改善应用程序的维护。

那么,你的独特优化技巧是什么?

我处在一个特殊的情况,我正在寻找知识,我认为这将是一个很好的机会,可以分享开发人员对他们所处过的情况的了解。

请投票给出很好的答案,因为这将鼓励优秀的开发人员分享他们的知识。


#1 热门回答(65 赞)

在某些时候,你将会达到使用已知技巧将达到极限的程度。此时要做的最好的事情是分析你的代码,并根据你的具体要求查看瓶颈区域。

Investigating RAM usage using MATandUsing Traceview:有关如何使用工具分析应用程序的文章。


#2 热门回答(36 赞)

跟踪和挤压分配。你分配的越多,垃圾收集器运行所需的频率就越高,从而阻止你的进程在相对较长的时间内执行任何其他操作,例如100毫秒左右。

我知道的最好的工具是DDMS中包含的分配跟踪器。

不仅GC会对用户体验产生影响,而且多余的分配和GC会消耗一些计算资源。

这是一个例子和一个小技巧。在我的应用程序中,我有一个时钟显示当前(音频)时间,包括十分之一秒。这经常更新。只要你使用CharSequence调用setText(),TextView就会在内部执行分配。但它没有使用setText(char [] text,int start,int len)变量分配任何内容。这没有记录,当我询问时没有人回答。

有很多像这样的人。这是我的应用程序包含50%本机代码的原因之一(但还有其他原因)。

除此之外,我建议你尝试使用ProGuard。它执行多个优化传递,并在项目中记录诸如未使用方法之类的信息,这可以帮助你删除代码中的剩余内容。


#3 热门回答(21 赞)

如果你的应用程序将有大量的屏幕时间,可以在任何地方使用黑色.这将减少设备最糟糕部分的电池消耗:屏幕,特别是在AMOLED手机和平板电脑中。


原文链接