谷歌的Android开发者博客对应用更改说了以下几点

2020-07-08 17:30:59 来源: INeng财经

Android Studio 3.5(当前在Canary和Dev通道中)现在提供了一种新方法,可将代码更改推送到您的应用程序并即时查看其效果,而无需重新启动应用程序。它被简单地称为“应用更改”,是Android Studio先前版本中“即时运行”功能的后继产品。

Google的Android开发者博客对应用更改说了以下几点:

“应用更改”使您可以将代码和资源更改推送到正在运行的应用程序,而无需重新启动应用程序-在某些情况下,也无需重新启动当前活动。应用更改用全新的构建优化方法替代了Instant Run。通过使用Android 8.0(API级别26)或更高版本支持的运行时检测,Apply Changes无需在构建期间重写APK的字节码,而是可以动态地重新定义类。

此外,Android Studio现在会在检测到更改与“应用更改”不兼容时提示您决定是否重新启动应用程序或活动。与Instant Run的行为相比,这种额外的控件应为您提供更一致和可预测的体验。

博客文章继续列出了新功能的一些限制。例如,您要在其上测试应用程序的设备必须至少运行Android 8.0 Oreo(API级别26),并且某些代码更改仍然需要您的应用程序重新启动。与“即时运行”一样,如果您满足以下条件,“应用更改”将强制您的应用重新启动:

添加或删除类,方法或字段

更改清单

更改方法签名

更改方法或类的修饰符

重命名课程

更改类继承

添加或删除资源

在“已知问题”下,该博客文章指出,由于Google最初在此新功能中将稳定性优先于性能,因此“应用更改”有时会比其先行功能“即时运行”慢得多。另外,不支持x86_x64仿真器映像,并且出于调试目的,仅支持Android Pie(API级别28)。您可以在下面的源链接中查看限制和已知问题的完整列表。

为了更详细地描述“应用更改”和“即时运行”之间的区别,Android Studio团队的一位Google员工在Reddit上这样说:

它所做的事情非常非常不同。Instant Run对构建产生了非常特殊的影响,在编译时对每个类进行检测,以准备在运行时用新版本的类替换它们。它还会将您的APK分成几个APK,以更逐步地重新上传您的应用。

应用更改没有任何效果。无论您是否使用“应用更改”,APK都几乎相同。相反,它依靠ART VM的新运行时检测功能来动态重新加载类并在应用程序运行时替换它们。这就是为什么它需要更新版本的Android。

随着Google对其性能和稳定性的改进,“应用更改”有望最终取代Beta和稳定版渠道中的“即时运行”。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。