Instant Run 23事
来源:互联网 发布:怎么看淘宝成交价格 编辑:程序博客网 时间:2024/04/30 01:38
Android Studio功能非常强大,在各个功能性方面都要优于Eclipse,唯独在速度方面被吐糟得比较惨。因此在Android Studio 2.0中,对速度方面进行了大幅度的改进:于是在Android Studio 2.0中加入了Instant Run功能。
传统情况下,我们修改程序后重新运行一次程序需要经历 代码重新编译 -> 停止程序 -> 重新安装 -> 重新启动 这样一个过程,而Instant Run则尝试只将程序变更的部分部署到手机上,尽量避免重新安装或重新启动程序,以此大大提升调试程序的效率。
当我们第一次运行程序之后,Android Studio中的运行按钮会变成这个样子:运行的三角形旁边多了一个闪电符号,这就说明现在可以使用Instant Run了。
nstant Run主要分为三种类型,hot swap、warm swap和cold swap。下面将通过插画形式进行区分:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
虽然在享受着新技术的同时,但也给我们带来了一些困扰,比如:首次启动程序白屏时间过长的问题
这个问题是在升级了Android Studio 2.0之后,当时Android Studio的版本是从1.5直接升级到了2.0,一个如此大版本的跨跃说明改动肯定是比较大的。
分析原因:
一开始将这个原因归结于是Android Studio 2.0的bug,毕竟一次性做了这么大的升级,有点bug也是很正常的。但是直到现在最新的Android Studio 2.2版本也还存在。然而后面发现是和我们使用的gradle插件版本有关系,打开build.gradle文件查看:
但同时你会发现,长时间白屏的问题不见了。
解决问题:1、降低gradle插件的编译版本
2、Google已经为我们考虑到了,在release版本中是不会出现长时间白屏现象的
具体优化:
如果你的观察力非常敏锐的话,应该能发现其实我们的程序还是会经历一个白屏的阶段,只不过非常短,瞬间就跳过了。
这个就和Instant Run无关了,这是由于在启动的时候程序都要进行一些基本的初始化操作,所有程序都是要经历这个过程的。
虽说这个白屏时间很短,并没有什么太大的影响,不过我们还是可以通过代码来进一步优化的。修改styles.xml中主题相关的代码,如下所示:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> ...... <item name="android:windowIsTranslucent">true</item> <item name="android:windowNoTitle">true</item></style>
虽然白屏界面看不到了,但是由于初始化的过程中窗口是透明的,会让用户感觉程序启动的响应速度稍微慢了点,然后这种影响是毫秒级别的。不用担心。
最后感谢以下资源
【传送门】http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236250&idx=1&sn=b8ff283fe65f2e344cec02f54a6cdb68&scene=0#wechat_redirect
http://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2MA==&mid=2650236001&idx=1&sn=f2ac9a45ebe0d59fa11d9599ad7cca50&scene=21#wechat_redirect
- Instant Run 23事
- Instant Run
- Instant Run
- Instant Run 浅析
- Instant Run实现原理
- Instant Run详解
- Instant Run 浅析
- Instant Run浅析
- Instant Run 瞬间启动
- studio设置Instant Run
- Android Instant Run
- 59. Instant Run 笔记
- Android Instant Run
- Instant Run导致ClassNotFoundException
- Try disabling Instant Run
- instant run requires tools
- 关闭instant run
- Android Studio Instant Run注意事项
- MD5mesh静态骨骼模型的openGL渲染
- 自动补全文本框AutoCompleteTextView简介
- C语言指针之野指针
- jdk1.6,jdk1.7,jdk1.8安装共存问题。
- Hive SQL的编译过程
- Instant Run 23事
- 深入分析 Java 中的中文编码问题
- 利用Makefile单独编译驱动模块文件
- iOS 系统自带的表情输出与获取
- android之LinearLayout
- Android中RAS加密解密
- 接下来的这14天
- 《剑指offer》跳台阶
- 装饰器模式