应用研发平台EMAS如果加了热修复 平时热更新 需要关闭 insert run 吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在应用研发平台EMAS中,如果您启用了热修复功能,并且进行了热更新操作,通常不需要关闭"Insert Run"选项。
"Insert Run"是一种针对应用代码注入的运行时技术,用于实现热修复功能。通过在代码中插入修复逻辑,可以在不重新发布应用的情况下修复已经部署到用户设备上的问题。
在进行热更新时,EMAS会根据您的配置将新的补丁文件下发给用户设备,而不会影响到正在运行中的应用代码。因此,在这种情况下,不需要关闭"Insert Run"选项。
"Insert Run"选项通常是在开发和测试阶段使用的。当您需要快速验证热修复逻辑是否正确时,可以选择关闭"Insert Run",以避免重复执行插入逻辑和修复逻辑。但在正常的热更新流程中,您无需关闭该选项。
是否需要关闭insert run,我的建议是:
热修复和热更新可以同时启用,两者互相独立,不会有功能冲突。
启用热修复只会在发现crash时自动加载补丁,不影响正常的热更新。
保留insert run的启用可以确保热更新功能正常生效。
唯一需要注意的是,不能对同一处代码同时应用热修复补丁和热更新,这会导致冲突。
所以热修复的代码修改需要避开热更新打补丁的代码段。
如果热更新也修复了crash问题,可以先停用热修复,然后发布热更新。
两者修复范围要区分开,热修复专注crash,热更新可以增加新功能。
在使用EMAS进行热更新时,一般不需要关闭Instant Run。Instant Run是Android Studio提供的一项功能,可以在开发过程中实时部署和更新应用的代码,以加快开发和调试的效率。
热修复和Instant Run在实现机制上有一些区别。热修复是通过动态加载补丁文件来修复应用的bug或添加新功能,而Instant Run是通过在应用运行时替换代码来实现实时更新。因此,它们之间并没有直接的依赖关系,可以同时使用。