(4.6.11.3)告别编译运行:Instant Run ---- Android Studio 2.0 Preview发布功能
2016-04-26 20:08
726 查看
以往的Android开发有一个头疼的且拖慢速度的问题,就是你每改一行代码要想看到结果必须要编译运行到手机或者模拟器上,而且需要从头(可能是登录界面)一直点击到你修改的界面为止。开发一个完整的Android App你可能要经历无数个重复编译运行的过程,严重的拖慢了开发进度。
最近React Native for Android可谓是解决了这个问题,修改代码可以直接在模拟其上刷新出来当前修改的界面(毕竟是用web技术)。于是乎Google能看得下去让FB占领自己的开发领域吗?不可能!
即时运行:更快的构建和部署
终于现在Android Studio 2 Preview推出了,其中一个革命性的功能就是Instant Run(即时运行)!新的即时运行功能可以让开发者像写html网页一样写Android原生代码,能做到一边修改代码,一边在模拟器或者实际设备上看到修改代码后的结果。
下面是几个平台上的下载地址,下载后直接解压进入bin文件夹就可以运行(建议保留之前Android Studio1.4或者1.5的版本不要删除),同时它会自动import老版本的项目和设置信息。
Windows: https://dl.google.com/dl/android/studio/ide-zips/2.0.0.0/android-studio-ide-143.2443734-windows.zip (320
MB)
Mac: https://dl.google.com/dl/android/studio/ide-zips/2.0.0.0/android-studio-ide-143.2443734-mac.zip (319
MB)
Linux: https://dl.google.com/dl/android/studio/ide-zips/2.0.0.0/android-studio-ide-143.2443734-linux.zip (318
MB)
实际项目评测
这里我将用Android Studio 2.0 配合 Genymotion模拟器实际演示一个项目
进入Android Studio2.0打开项目后依次进入Setting->Build,Execution,Deployment->Instant Run查看即时运行的设置项目,你可能会发现勾选项目是灰色的,如图
这个是因为你的project gradle是旧的,点击下Update Project稍等片刻就好。
更新我发现Project gragle的依赖:
被更新成了:
这个时候再次打开Instant Run的设置会发现已经可以勾选了,请保持如图的勾选:
此时我们观察运行按钮的左侧多了一个类似于“闪电”的标志:
我们的项目中有这样的一个页面:
准备把临时拜访换成别的字串比如“你好”,同时换掉左边的Icon。它是一个拥有自定义属性的自定义控件,布局代码片段为:
首先我们需要先跑一下这个项目,然后先点击界面直到上述的界面为止停住不动,这个时候我们再修改上述代码(这一步是必须的,不然的Instant Run功能使用时会出现问题,导致重新运行)
这个时候我们让模拟器保持在这个页面上,同时修改布局代码成:
然后点击带闪电的运行:
可以看到界面快速的刷新成了:
最后说明
需要说明的是,我在使用过程中发现,改Instant Run仅仅适用于布局的修改。即我们可以把一次修改然后到运行看效果看作一个“周期”,在这个周期里面你仅仅修改了xml布局文件,或者说和逻辑代码不相关的文件,那么你点击运行的时候才会触发Instant Run,否则的话,Android Studio还是依然会重新编译运行。
其实想想也是合理的,比如若你修改了代码,而该代码恰好是当前界面的“逻辑前提”,那么你怎么仅仅刷当前界面就能得到正确结果呢?
对于到底目前Instant Run支持哪些形式的代码修改,官方有一篇文章可供参考
https://sites.google.com/a/android.com/tools/tech-docs/instant-run
Not all code changes are supported by Instant Run currently. Here is the current list of supported code change scenarios.
Here are some code changes that Instant Run does not currently support:
Add/remove/change annotations
Add/remove/change an instance field
Add/remove/change a static field
Add/remove a static method signature
Change a static method signature
Add/remove an instance method
Change an instance method signature
Changing which parent class the current class inherits from
Change the list of implemented interfaces
Changing static initializer of a class
Over the coming months, we plan to expand the Instant Run enable more change types, and continue to make your edit, build, run cycle faster.
作为一个Android开发者,很多的时候我们需要花大量的时间在bulid,运行到真机(虚拟机)上,对于ios上的
目前Android Studio的2.0版本还在
Preferences -> System Settings ->Updates
可以切换升级版本
然后
需要在
Preferences -> Build,Execution,Deployment -> Instant Run
中有关于 Instant Run的设置
第一个设置是,是否开启Instant Run的,默认是开启。
第二个是,当代码变动的时候重启activity(亲测没有效果,不知道是不是还不是太完善)
第三个是,每次变动的时候都有个toast提示下(我选择关闭了)
再没有运行项目的时候,我们的Run图标和以前是一样的。
(话说这个Debug的图标好可爱)
运行了项目之后的图标是这样的:
运行之后的Dialog框是这样的,和debug的时候一样多了个Stop的按钮
再改完代码之后直接点击Run按钮就可以
目前还是有一些小的问题,偶尔还是会出现build ->run到设备的方式,期待Google尽快的把instant Run做的更加完善,也期望AS2.0的正式版本。
另外google说优化了虚拟机部分,性能提高了
最近React Native for Android可谓是解决了这个问题,修改代码可以直接在模拟其上刷新出来当前修改的界面(毕竟是用web技术)。于是乎Google能看得下去让FB占领自己的开发领域吗?不可能!
即时运行:更快的构建和部署
终于现在Android Studio 2 Preview推出了,其中一个革命性的功能就是Instant Run(即时运行)!新的即时运行功能可以让开发者像写html网页一样写Android原生代码,能做到一边修改代码,一边在模拟器或者实际设备上看到修改代码后的结果。
下面是几个平台上的下载地址,下载后直接解压进入bin文件夹就可以运行(建议保留之前Android Studio1.4或者1.5的版本不要删除),同时它会自动import老版本的项目和设置信息。
Windows: https://dl.google.com/dl/android/studio/ide-zips/2.0.0.0/android-studio-ide-143.2443734-windows.zip (320
MB)
Mac: https://dl.google.com/dl/android/studio/ide-zips/2.0.0.0/android-studio-ide-143.2443734-mac.zip (319
MB)
Linux: https://dl.google.com/dl/android/studio/ide-zips/2.0.0.0/android-studio-ide-143.2443734-linux.zip (318
MB)
实际项目评测
这里我将用Android Studio 2.0 配合 Genymotion模拟器实际演示一个项目
进入Android Studio2.0打开项目后依次进入Setting->Build,Execution,Deployment->Instant Run查看即时运行的设置项目,你可能会发现勾选项目是灰色的,如图
这个是因为你的project gradle是旧的,点击下Update Project稍等片刻就好。
更新我发现Project gragle的依赖:
dependencies { classpath 'com.android.tools.build:gradle:1.2.3' }
被更新成了:
dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' }
这个时候再次打开Instant Run的设置会发现已经可以勾选了,请保持如图的勾选:
此时我们观察运行按钮的左侧多了一个类似于“闪电”的标志:
我们的项目中有这样的一个页面:
准备把临时拜访换成别的字串比如“你好”,同时换掉左边的Icon。它是一个拥有自定义属性的自定义控件,布局代码片段为:
<com.qianmi.shine.widget.CommonLeftIconRightButtonRelativeLayout android:id="@+id/ll_sudden_visit" android:layout_width="match_parent" android:layout_height="wrap_content" app:CLIRBRIconId="@drawable/icon_temp" app:CLIRBRTitleName="@string/sudden_visit" app:CLIRBRActionIconId="@drawable/btn_go_nor" />
首先我们需要先跑一下这个项目,然后先点击界面直到上述的界面为止停住不动,这个时候我们再修改上述代码(这一步是必须的,不然的Instant Run功能使用时会出现问题,导致重新运行)
这个时候我们让模拟器保持在这个页面上,同时修改布局代码成:
<com.qianmi.shine.widget.CommonLeftIconRightButtonRelativeLayout android:id="@+id/ll_sudden_visit" android:layout_width="match_parent" android:layout_height="wrap_content" app:CLIRBRIconId="@drawable/icon_resent"//修改1 app:CLIRBRTitleName="你好"//修改2 app:CLIRBRActionIconId="@drawable/btn_go_nor" />
然后点击带闪电的运行:
可以看到界面快速的刷新成了:
最后说明
需要说明的是,我在使用过程中发现,改Instant Run仅仅适用于布局的修改。即我们可以把一次修改然后到运行看效果看作一个“周期”,在这个周期里面你仅仅修改了xml布局文件,或者说和逻辑代码不相关的文件,那么你点击运行的时候才会触发Instant Run,否则的话,Android Studio还是依然会重新编译运行。
其实想想也是合理的,比如若你修改了代码,而该代码恰好是当前界面的“逻辑前提”,那么你怎么仅仅刷当前界面就能得到正确结果呢?
对于到底目前Instant Run支持哪些形式的代码修改,官方有一篇文章可供参考
https://sites.google.com/a/android.com/tools/tech-docs/instant-run
Not all code changes are supported by Instant Run currently. Here is the current list of supported code change scenarios.
Code Change | Instant Run Support |
Change instance method implementation Change static method implementation Add or remove a class | Supported |
Add, remove, or change a string resource | Supported but requires an Activity restart. |
Add/remove/change annotations
Add/remove/change an instance field
Add/remove/change a static field
Add/remove a static method signature
Change a static method signature
Add/remove an instance method
Change an instance method signature
Changing which parent class the current class inherits from
Change the list of implemented interfaces
Changing static initializer of a class
Over the coming months, we plan to expand the Instant Run enable more change types, and continue to make your edit, build, run cycle faster.
作为一个Android开发者,很多的时候我们需要花大量的时间在bulid,运行到真机(虚拟机)上,对于ios上的
Playground羡慕不已,这种情况将在Android Studio 2.0有了很大改善,使用
instant run,在第一次运行之后,就可以快速的在真机中看见修改后的结果,不仅仅是UI可以直接显示,还包括代码逻辑。不用再苦苦等build了,节约生命呀!
首先要升级到Android Studio 2.0
目前Android Studio的2.0版本还在 Canary Channel(金丝雀) 上面,所以想体验2.0的同学需要先把升级版本切换到Canary Channel 上面。
Preferences -> System Settings ->Updates
可以切换升级版本
然后
check for updates就可以升级了。(如果连接不上升级服务器,请墙一下)
升级android tools build
instant run功能之后再
android tools build的
2.0.0的版本才可以使用。
需要在
build.gradle中指定
buildscript {
repositories {
jcenter()
}
dependencies { classpath 'com.android.tools.build:gradle:2.0.0-alpha1' }
}
设置instant Run
Preferences -> Build,Execution,Deployment -> Instant Run中有关于 Instant Run的设置
第一个设置是,是否开启Instant Run的,默认是开启。
第二个是,当代码变动的时候重启activity(亲测没有效果,不知道是不是还不是太完善)
第三个是,每次变动的时候都有个toast提示下(我选择关闭了)
运行Instant Run
再没有运行项目的时候,我们的Run图标和以前是一样的。(话说这个Debug的图标好可爱)
运行了项目之后的图标是这样的:
运行之后的Dialog框是这样的,和debug的时候一样多了个Stop的按钮
再改完代码之后直接点击Run按钮就可以
立刻就能在你的设备上面看到效果。
目前还是有一些小的问题,偶尔还是会出现build ->run到设备的方式,期待Google尽快的把instant Run做的更加完善,也期望AS2.0的正式版本。
另外google说优化了虚拟机部分,性能提高了
50倍,是不是可以抛弃Genymotion了?
相关文章推荐
- Android自定义Dialog实现弹出它的Activity背景变暗,并自定义Dialog的大小
- android:ToolBar详解
- Android群英传--绘图机制与处理技巧(三)
- Android完美解决输入框EditText隐藏密码打勾显示密码问题
- Android AssetManager <1>
- 学习笔记(八)数据存储
- Android懒人专用RecyclerView+懒人专用Adapter+懒人专用animator+下拉上拉侧滑等
- Android BLE浅析
- Android读书笔记(一)Activity退出时释放内存
- Android源码桥梁模式---FragmentCompat
- Android数据传输格式(基于JSON格式)
- android中修改tablayout中的字体大小和颜色
- Android中Adapter的notifyDataSetInvalidated()和notifyDataSetChanged()的区别!
- android.support.design.widget.TabLayout的使用
- Android技术知识分享第一弹——SDK中常用命令
- Android开发中通过源码彻底理解ListView工作原理
- Android框架xUtils简介
- Android Service生命周期 Service里面的onStartCommand()方法详解
- Android bind service讲解以及跨进程通信
- Android开发艺术探索——第四章View的工作原理