发布版本比调试版本更加快速。

7
我刚发布了我的第一个Android应用程序的阿尔法版本,我注意到从Play商店下载的发行版比调试版本更加响应。我认为这意味着Android Studio正在优化发行版,而在调试版本上没有进行这样的优化。我的问题是,如果是真的,这是否表明我的代码存在低效性,我应该追查下去?或者我应该将其视为发布的意外好处?
2个回答

9
您的应用程序的调试版本旨在进行优化,即使这意味着添加额外的日志(来自系统或您的应用程序),用于捕获错误的系统,数据跟踪和管理,以及您可以从调试菜单中访问的所有内容等等。
然而,当发布apk时,它不需要所有这些功能(这使得您的应用程序更容易)。此外,编译器可以对应用程序进行与速度相关的优化,这会阻止您正常进行调试。因此,它往往更快/更响应-尽管改进的程度取决于您的应用程序实际执行的操作。
关于您代码中的低效率问题,没有了解您的具体情况,我只能说“这取决于情况”。请注意,这并不一定意味着您的代码低效-我只是不能确定您的代码本身是否低效。
顺便说一句,这是正常做法-在调试时,为了调试而制作一个不太优化的程序。如果您曾经使用过C++和g++编译器,那么就像在使用-g标志进行调试时,同时使用-O3标志制作更快、更小的程序。

3
是的,当您在调试模式下编译时,编译器会保留有助于调试的内容。在发布模式下编译时,它会进行优化,这会减慢编译速度但使应用程序运行更快。
此外,如果您在发布版本中使用ProGuard,它将优化代码以使其运行更快。
希望这可以帮到您!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接