[Android Pro] 告别编译运行 ---- Android Studio 2.0 Preview发布Instant Run功能

reference to : http://www.cnblogs.com/soaringEveryday/p/4991563.html

以往的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老版本的项目和设置信息。

实际项目评测



这里我将用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.

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.

时间: 2024-11-08 22:16:47

[Android Pro] 告别编译运行 ---- Android Studio 2.0 Preview发布Instant Run功能的相关文章

Android Studio 2.0 Preview发布,附下载地址,支持即时运行和GPU Profiler

Android Studio 2.0 Preview 发布,此版本最重要的两个更新是:即时运行和 GPU Profiler. 即时运行:更快的构建和部署:Settings/Preferences > Build > Execution > Deployment > Instant Run GPU Profiler 下载: Windows: https://dl.google.com/dl/android/studio/ide-zips/2.0.0.0/android-studio-

[Android Pro] 开发一流的 Android SDK:Fabric SDK 的创建经验

cp from : https://academy.realm.io/cn/posts/oredev-ty-smith-building-android-sdks-fabric/ Ty Smith Ty 是一个在 Twitter 的 Android 技术负责人,专职于 Fabric 开发工具团队.他曾经负责架构了 Fabric 平台和 Twitter 的 Android SDK,推动了 Digits 和 Twitter SDK 的开源事业,可以说是他一手创建了更大的 Twitter 体系结构.他

Android Studio 2.2 preview发布

转:http://geek.csdn.net/news/detail/74971 15小时的时差阻隔不了隔海相望的狂欢,当多地GDG(谷歌开发者社区)组织的Google I/O Extended活动如期上演,与全世界开发者一同观看I/O大会Keynote直播时,我们站在与未来最为贴近的地方. 也是一夜之间,我们迎来了许多新工具:语音助手Google Assistant.智能音箱Google Home.很会聊天的新App Allo和Duo.全新VR平台Daydream,以及系列Android版本更

编译调试 .NET Core 5.0 Preview 并分析 Span 的实现原理

很久没有写过 .NET Core 相关的文章了,目前关店在家休息所以有些时间写一篇新的??.这次的文章主要介绍如何在 Linux 上编译调试最新的 .NET Core 5.0 Preview 与简单分析 Span 的实现原理.微软从 .NET Core 5.0 开始把 GIT 仓库 coreclr 与 corefx 合并移动到了 runtime 仓库,原有仓库仅用于维护 .NET Core 3.x,你可以从以下地址查看最新的源代码: https://github.com/dotnet/runti

[Android Pro] app_process command in Android

reference to : http://blog.csdn.net/wangkaiblog/article/details/46050587 本来以为存放在/systen/bin/下的monkey.input.am等adb shell命令都是二进制可执行程,偶尔cat input下,发现不是二进制文件,内容如下: # Script to start "input" on the device, which has a very rudimentary # shell. # base

深入理解Android Instant Run运行机制

Instant Run Instant Run,是android studio2.0新增的一个运行机制,在你编码开发.测试或debug的时候,它都能显著减少你对当前应用的构建和部署的时间.通俗的解释就是,当你在Android Studio中改了你的代码,Instant Run可以很快的让你看到你修改的效果.而在没有Instant Run之前,你的一个小小的修改,都肯能需要几十秒甚至更长的等待才能看到修改后的效果. 传统的代码修改及编译部署流程 传统的代码修改及编译流程如下:构建整个apk → 部

[原创]Android Studio的Instant Run(即时安装)原理分析和源码浅析

Android Studio升级到2.0之后,新增了Instant Run功能,该功能可以热替换apk中的部分代码,大幅提高测试安装的效率. 但是,由于我的项目中自定义了一些ClassLoader,当使用InstantRun时,经常出现class加载不正确的问题.分析后原因如下. 使用Instant Run编译出的apk里面会多出几个dex文件,和一个instant-run.zip,这个zip里也是一堆dex文件: 所以推测,instant Run的实现原理是: 根据代码结构,将App的源码分割

Android Freeline加速编译App方案 使用和总结

Freeline简单介绍 在Android Studio还没推出Instant Run功能之前,每次改动Android project项目时都要将整个项目又一次编译一次,然后再将资源和代码文件打包成APK文件传输到手机上安装执行.这个过程是非常耗时间的,在配置较低的PC上一般须要高达3分钟以上.配置较高的PC最低也须要1分钟以上的时间.程序员每天无数次改动代码然后编译执行都要浪费非常多宝贵的时间.之后在Android Studio2.0之后推出了Instant Run功能,也就是交换技术即Swa

Android Studio新功能解析,你真的了解Instant Run吗?

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/51271369 本篇文章首发于我的微信公众号,由于网上讲解Android Studio中Instant Run功能的文章实在是太少了,为了让更多人可以了解这个技术,我将这篇文章同步到我的博客上面.想看更多技术文章的朋友可以扫一扫本篇文章底部的二维码来关注我的微信公众号,每周都会有技术文章推送. 先扯点题外话,我是2010年8月份开始自学Android的,到现在已经快有6年的时间了.