新版本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 运行没个三五分钟都运行不起来
对我们来说 这个很有助于开发