在发布前优化安卓应用程序 [已关闭]

2022-08-31 08:57:46

我对我的程序的效率处于“特殊”状态。现在,我正处于需要提高应用程序性能并减少电池消耗的阶段。

在问题之前:

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

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

我处于一种特殊的情况下,我真的在寻找知识,我认为这将是一个很好的机会,可以分享开发人员关于他们都经历过的情况的知识。

请投票选出伟大的答案,因为这将鼓励伟大的开发人员分享他们的知识。


答案 1

在某些时候,您将达到使用已知技巧将达到极限的程度。此时,最好的办法是分析您的代码,并根据您的特定要求查看哪些区域是瓶颈。

使用 MAT 和使用 Traceview 调查 RAM 使用情况:有关如何使用这些工具分析应用程序的文章。


答案 2

跟踪和压缩分配。分配的越多,垃圾回收器就越需要运行,从而在相对较长的时间内(如 100 毫秒左右)停止进程执行任何其他操作。

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

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

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

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

除此之外,我还可以建议您尝试使用ProGuard。它执行多个优化过程,并将此类信息记录为项目中未使用的方法,这可以帮助您删除代码中的剩余部分。


推荐