我刚发布了我的第一个Android应用程序的阿尔法版本,我注意到从Play商店下载的发行版比调试版本更加响应。我认为这意味着Android Studio正在优化发行版,而在调试版本上没有进行这样的优化。我的问题是,如果是真的,这是否表明我的代码存在低效性,我应该追查下去?或者我应该将其视为发布的意外好处?
您的应用程序的调试版本旨在进行优化,即使这意味着添加额外的日志(来自系统或您的应用程序),用于捕获错误的系统,数据跟踪和管理,以及您可以从调试菜单中访问的所有内容等等。然而,当发布apk时,它不需要所有这些功能(这使得您的应用程序更容易)。此外,编译器可以对应用程序进行与速度相关的优化,这会阻止您正常进行调试。因此,它往往更快/更响应-尽管改进的程度取决于您的应用程序实际执行的操作。关于您代码中的低效率问题,没有了解您的具体情况,我只能说“这取决于情况”。请注意,这并不一定意味着您的代码低效-我只是不能确定您的代码本身是否低效。顺便说一句,这是正常做法-在调试时,为了调试而制作一个不太优化的程序。如果您曾经使用过C++和g++编译器,那么就像在使用-g标志进行调试时,同时使用-O3标志制作更快、更小的程序。
是的,当您在调试模式下编译时,编译器会保留有助于调试的内容。在发布模式下编译时,它会进行优化,这会减慢编译速度但使应用程序运行更快。此外,如果您在发布版本中使用ProGuard,它将优化代码以使其运行更快。希望这可以帮到您!