开发者社区 问答 正文

应用研发平台EMAS如果加了热修复 平时热更新 需要关闭 insert run 吗?

应用研发平台EMAS如果加了热修复 平时热更新 需要关闭 insert run 吗?

展开
收起
青城山下庄文杰 2023-07-31 13:54:23 132 分享 版权
5 条回答
写回答
取消 提交回答
  • 需要-此回答整理自钉群“应用研发平台EMAS开发者交流群”

    2023-08-01 10:47:56
    赞同 展开评论
  • 在应用研发平台EMAS中,如果您启用了热修复功能,并且进行了热更新操作,通常不需要关闭"Insert Run"选项。

    "Insert Run"是一种针对应用代码注入的运行时技术,用于实现热修复功能。通过在代码中插入修复逻辑,可以在不重新发布应用的情况下修复已经部署到用户设备上的问题。

    在进行热更新时,EMAS会根据您的配置将新的补丁文件下发给用户设备,而不会影响到正在运行中的应用代码。因此,在这种情况下,不需要关闭"Insert Run"选项。

    "Insert Run"选项通常是在开发和测试阶段使用的。当您需要快速验证热修复逻辑是否正确时,可以选择关闭"Insert Run",以避免重复执行插入逻辑和修复逻辑。但在正常的热更新流程中,您无需关闭该选项。

    2023-07-31 20:07:09
    赞同 展开评论
  • 北京阿里云ACE会长

    是否需要关闭insert run,我的建议是:

    热修复和热更新可以同时启用,两者互相独立,不会有功能冲突。

    启用热修复只会在发现crash时自动加载补丁,不影响正常的热更新。

    保留insert run的启用可以确保热更新功能正常生效。

    唯一需要注意的是,不能对同一处代码同时应用热修复补丁和热更新,这会导致冲突。

    所以热修复的代码修改需要避开热更新打补丁的代码段。

    如果热更新也修复了crash问题,可以先停用热修复,然后发布热更新。

    两者修复范围要区分开,热修复专注crash,热更新可以增加新功能。

    2023-07-31 18:18:36
    赞同 展开评论
  • 在使用EMAS进行热更新时,一般不需要关闭Instant Run。Instant Run是Android Studio提供的一项功能,可以在开发过程中实时部署和更新应用的代码,以加快开发和调试的效率。

    热修复和Instant Run在实现机制上有一些区别。热修复是通过动态加载补丁文件来修复应用的bug或添加新功能,而Instant Run是通过在应用运行时替换代码来实现实时更新。因此,它们之间并没有直接的依赖关系,可以同时使用。

    2023-07-31 16:39:27
    赞同 展开评论
  • 月移花影,暗香浮动

    如果加了热修复,平时热更新需要关闭insert run。

    2023-07-31 14:26:20
    赞同 展开评论