Android Studio 2.0新特性之Instant Run
来源:互联网 发布:mac 加速器 编辑:程序博客网 时间:2024/05/01 20:36
Instant Run是AS2.0才引入的新特性,它极大地减少了我们在调试过程中部署APP到设备(模拟器或者真机)的时间.在第一次部署APP的时候可能会耗时较长,但是之后,当我们修改了代码,再次运行之时,AS不会因为你修改了代码而重新生成APK,它会直接将你修改了的部分代码推送到设备,省去了打包APK,和重启APP的时间,因此Instant Run模式下进行调试会比以前快很多.
开启Instant Run
1.调试模式(build variant -> debug)
2.Gradle插件版本2.0.0或者更高
3.APP的minSdkVersion 15或更高,为了达到最佳效果,建议将minSdkVersion设定为21或者更高
当第一次将APP部署到设备之后,在Run按钮(或者Debug按钮)的左边就会出现一个闪电标志,这表示下次你点击Run(或者Debug)按钮的时候,AS会直接将你更新过的代码和资源文件推送到设备,而不会生成新的APK,即Instant Run
Instant Run进行更新的3种模式
hot swap , warm swap, cold swap 这是Instant Run模式下进行内容更新的3种模式,APP开发者不需要去指定使用哪种swap方式,Instant Run会自动选择最佳的方式.下面的表格默描述了不同情况下所选择的交换方式,和相应的效果
hot swap模式更新不会重新初始化正在运行的APP中的各种对象,因此你必须手动重启当前Activity或者重启APP来查看更新的效果.默认情况下,当执行hot swap后AS会自动重启当前的Activity,如果你不想自动重启Activity,可以在设置里面修改 改变或者删除已存在的资源文件 warm swap 模式,这种模式依旧非常快,但是更新的时候Instant Run会杀掉当前正在运行的Activity,然后重新创建这个Activity(同样不会杀掉整个APP) 结构方面的代码发生变化:
增加,移除或者改变
1.注解(annotation)
2.实例变量(instance field)
3.静态变量(static field)
4.静态方法的签名(static method signature)
5.成员方法的签名(instance method signature)
改变当前类的父类
改变类实现的接口
改变类的静态构造方法
改变动态引用的layout中的UI结构 cold swap模式(仅支持API level >= 21的设备),这种交换模式比之前的两种模式会慢一点,更新的时候虽然不会生成新的APK,但是会重启整个APP
如果用于调试的设备,API level 小于21(即Android lollipop之前的系统),那么AS会重新部署整个APP(除了这种情况,其他情况下Instant Run进行更新都是重启Activity,或者重启APP,只将修改过的部分注入到正在用于调试的设备,并没有重新部署过整个APP) 改变APP的manifest
改变被manifest所引用的资源文件
改变小组件(widget)的UI(这种情况必须用Rerun) 当app的manifest文件或者manifest所引用的资源文件发生了变化,为了使这些变化生效,AS会执行一次build过程,把这些改动打包进APK,并重新部署到设备
使用Rerun
在Android Studio2.0里面新增了一个Rerun按钮,一般情况下我们点击Run按钮就可以快速运行我们修改过的代码,但是有些情况下必须重启APP,比如我们修改了构造器(不一定是构造函数)中的代码比如Activity的onCreate,为了使修改的内容生效你必须重启APP,这时候就是用Rerun.如果你要执行增量编译然后重启APP,你也可以使用Rerun
如果你要执行clean build,可以通过主菜单:Run > Clean and Rerun ‘app’,这样做AS会停止正在运行的APP,新的APK生成后将新的APK部署到设备
关闭Activity的自动重启
在前面说到热交换(hot swap)的时候,提到AS默认会自动当前Activity,如果你不想要它自动重启,可以关闭它,关闭的方式:
Mac OSX : Preferences > Build, Execution, Deployment > Instant Run
Linux/Windows : Settings > Build, Execution, Deployment > Instant Run
取消 Restart activity on code changes 的勾选即可
- Android Studio 2.0新特性之Instant Run
- 如何关闭 Android Studio 新特性Instant Run
- 如何关闭 Android Studio 新特性Instant Run
- Android Studio之Instant Run
- Android新特性Instant Run详解
- Android新特性Instant Run详解
- Android Studio 2.0--如何使用新模拟器以及Instant Run
- Android Studio 2.0 Instant Run问题
- Android Studio 2.0 Instant Run问题BootstrapApplication
- Android Studio 2.0 Instant Run问题解决方法
- Android Studio Instant Run注意事项
- Android Studio中的Instant Run
- android studio Instant Run 问题
- Android Studio中Instant Run
- Android Studio 2.0 Instant Run无效(Instant Run没有闪电符号)
- 这酸爽!android studio 2.0的模拟器如何快速Instant Run
- Android Studio 2.0 Instant Run即时运行功能实现分析
- android studio 2.0 instant run首次编译时间慢
- 利用最小堆管理事件超时
- triple
- 第五周项目二(1)-游戏中的角色类
- 四个100以内的随机数排大小
- iOS开发-FMDB
- Android Studio 2.0新特性之Instant Run
- JQuery绑定事件与移除事件、动画
- 慕课 springmvc 起步 maven wbe
- android聊天器(仿QQ)编写第一天__界面的搭建和主要的布局
- js 实现图片位置随意变化
- JAVA IO(三)
- 专题二:搜索总结报告
- BZOJ4524: [Cqoi2016]伪光滑数
- 通过NSURLSessionDownloadTask代理实现下载大文件