新版本Android Studio 3.5以上版本新特性(Apply Changes and Restart Activity 和 Apply Code Changes)

新版本Android Studio 3.5以上版本新特性(Apply Changes and Restart Activity 和 Apply Code Changes)

  • android studio为何会出这几个功能呢?

(1)减少构建和部署app到手机的时间;
(2)热更新代码改动,无需重启app或者activity。
有助于开发节省开发时间的;

但是对于大型复杂应用,它会导致更长的构建时间
所以基于此,as开发者团队重新设计了底层的架构,推出了ApplyChangs。和InstantRun不同的是,它不会在构建过程中去修改apk。它依赖的是安卓8.0开始虚拟机支持的特殊指令来进行类的替换。

run app 大家都懂什么意思 就不说了 就是运行app
Apply Changes 是通过利用Android 8.0(API级别26)或更高版本中支持的 Android JVMTI(https://docs.oracle.com/javase/8/docs/platform/jvmti/jvmti.html#bc1)技术。所以如果想使用Apply Changes有两个条件:
Apk必须是debug包
必须在Android 8.0以上的手机上运行
Apply Changes按钮在菜单栏上,在运行的右侧新增两个按钮,如下图

1,Apply Changes and Restart Activity:尝试通过重新启动活动但不重新启动应用程序来应用资源和代码更改。如果有代码和资源的修改可以使用这个来使代码和资源即时生效。
2,Apply Code Changes:尝试仅应用代码更改而不重新启动任何内容。如果只有代码修改,可以使用这个来使代码生效。如果修改了代码和资源,请使用“Apply Changes and Restart Activity ”。
在这里插入图片描述
ApplyChanges
当连接上安卓8.0及以上的设备时,as将会多出三个按钮
ApplyChanges部署资源和代码改动到手机,重启activity,但是无需重启应用。
仅部署代码改动到手机,不需要重启activity和应用。
架构
接下来我们研究下ApplyChanges的实现原理。ApplyChanges的核心是要找出AndroidStudio构建出来的apk和已经安装到手机设备apk的差异。找出差异后,然后将差异发送到手机上执行差异合并。

所以对于我们开发者 可以节省很多开发时间,我们的代码就是组件化,模块就分了十几个,每次run 运行没个三五分钟都运行不起来
对我们来说 这个很有助于开发

  • 8
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴能够回答您的问题。Android Studio有专门的工具,可以帮助您从旧版本文件转换到新版本文件。首先,您需要在Android Studio中打开旧版本文件。然后,点击“文件”菜单,然后点击“迁移指南”。系统会提示您正在迁移旧版本文件,然后点击“确定”。系统会提示您新版本文件已转换完毕,您可以点击“确定”完成操作。更改失效索引后,您可以继续使用新版本文件。 ### 回答2: 在将Android Studio的旧版本文件转移到新版本文件时,可能会遇到失效索引的问题。在解决这个问题之前,首先需要确保已经安装了最新版本Android Studio,并且已经打开了旧版本的项目。 以下是一些可能的解决方法: 1. 清理项目缓存:选择菜单栏的“文件(File)”>“Invalidate Caches/Restart”,然后选择“Invalidate and Restart”。这将清除项目的缓存,并重新启动Android Studio。在重新启动后,Android Studio会重新索引项目文件。 2. 删除索引文件:关闭Android Studio,并导航到项目目录中的'.idea'文件夹。删除'.idea'文件夹中的'caches'和'indexes'文件夹。然后重新启动Android Studio并重新索引项目文件。 3. 更新Gradle版本:打开项目的'build.gradle'文件,并将Gradle版本更新为最新版本。然后点击右上角的'Sync Now'按钮,等待Gradle同步完成后,重新启动Android Studio并重新索引项目文件。 4. 使用命令行工具:如果上述方法仍然无效,可以尝试使用命令行工具来索引项目文件。打开终端,导航到项目目录,并运行以下命令: ``` $ ./gradlew clean build $ ./gradlew assembleDebug --recompile-scripts ``` 这些命令将清理项目并重新编译和构建。然后重新启动Android Studio并重新索引项目文件。 无论采用哪种方法,都应该允许一些时间来重新索引项目文件。如果问题仍然存在,可能需要考虑使用新版本Android Studio创建一个新的项目,并将旧版本的文件逐个复制到新项目中。 ### 回答3: 在Android Studio中,如果你在升级到新版本后遇到了失效索引的问题,你可以尝试以下步骤来解决: 1. 首先,在Android Studio中打开你的项目。 2. 在项目窗口中,找到并展开你想要更改失效索引的模块文件夹。 3. 打开模块文件夹后,你会看到一些以".iml"为扩展名的文件。这些文件是与模块相关的配置文件,其中包含了索引相关的信息。 4. 在模块文件夹中找到并删除该模块的".iml"文件。这将会删除掉旧版本的索引文件。 5. 现在,你需要重新导入你的项目。在Android Studio的菜单栏中,选择"File"->"New"->"Import Project"。然后选择你的项目文件夹,点击"OK"。 6. 重新导入项目后,Android Studio会重新构建索引文件。这个过程可能需要一些时间,取决于你的项目规模和复杂度。 7. 重新构建索引文件完成后,你应该已经成功更改失效索引。 值得注意的是,如果你仍然遇到问题,可能是因为你的项目存在其他配置问题。在这种情况下,你可以尝试清除并重新构建项目,或者检查你的项目的Gradle配置是否正确。 希望这个回答能够帮助你解决问题!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值