发布版本比调试版本更快捷

时间:2015-01-31 16:40:35

标签: android performance

我刚刚将我的第一个Android应用程序发布到alpha中,我注意到从Play商店下载的发布版本比调试版本更具响应性。

我认为这意味着Android Studio正在对发布版本进行一些优化,而不是在调试版本上进行。我的问题,如果这是真的,这是否表明我应该追踪的代码效率低下?或者我应该把这作为出版的一个意想不到的好处?

2 个答案:

答案 0 :(得分:4)

您的应用程序的调试版本应针对此进行优化 - 即使这意味着添加额外的日志(来自系统或来自您的应用程序),系统以捕获错误,数据跟踪和管理,您可以从调试菜单等等。

然而,当发布一个发行版apk时,它不需要所有这些功能(这使你的应用程序更容易生活)。此外,编译器可以对应用程序进行与速度相关的优化,这使您无法正常调试。因此,它往往更快/更敏感 - 尽管不同程度的改进取决于您的应用实际上在做什么。

关于代码效率低下,如果不了解您的情况,我可以说“这取决于”。请注意,必然意味着您的代码效率低下 - 我无法确定您的代码本身是否效率低下。

顺便说一下,这是正常的做法 - 在调试时,为了调试而制作了一个不太优化的程序。如果您曾经使用过C ++和g ++编译器,那就像使用-g标志,比如使用gdb进行调试,然后使用-O3标志来制作更快,更小的程序。

答案 1 :(得分:2)

是的,当你在调试模式下编译时,编译器会留下有助于调试时的内容。在发布模式下进行编译时,它会进行优化,从而减慢编译速度,但会使应用程序运行得更快。

此外,如果您在发布版本中使用ProGuard,它将优化代码以使其运行更快。

希望这有帮助!