V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Totato5749
V2EX  ›  Android

AndroidStudio 2.0 的新特性 Instant Run 真的好用么?

  •  
  •   Totato5749 · 2016-04-18 16:04:59 +08:00 · 9209 次点击
    这是一个创建于 2931 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没带来心理预期效果,副作用很明显,编译时间变长, App 启动时间也明显变长,更改资源文件 /Manifest 等都无法 Instant Run

    大家觉着好用么

    41 条回复    2016-04-29 21:22:01 +08:00
    kslr
        1
    kslr  
       2016-04-18 16:15:46 +08:00
    好用,只有在按钮旁边有个闪电标志的时候才有作用
    kslr
        2
    kslr  
       2016-04-18 16:16:15 +08:00
    处理完直接就启动 activity
    CtrlSpace
        3
    CtrlSpace  
       2016-04-18 16:22:28 +08:00
    有一个被 Instant Run 坑了我一个下午,再也不敢开启...
    那次我为了修复个 BUG ,修改了几行代码 run 上去,发现 BUG 依旧在,于是改了一个下午,最后发现,卸载重新安装就好了,那个所谓的 Instant Run 并没有更新到我的代码...
    nocoo
        4
    nocoo  
       2016-04-18 16:30:44 +08:00
    不好用。我们 App 里有个较复杂的地图 SDK 。用一次 instant run 之后就再也启动不起来了,必须卸载重装。
    MiniGhost
        5
    MiniGhost  
       2016-04-18 16:34:37 +08:00   ❤️ 1
    只在单纯改改 UI ,改改 xml 的时候好用
    其他地方感觉好多坑,用过几次就关掉了
    我觉得现阶段,提供两个按钮,一个标准 Run 一个 Instant Run 会比较好
    suikator
        6
    suikator  
       2016-04-18 16:39:26 +08:00 via Android
    不好用, bug 有点多
    kaichen
        7
    kaichen  
       2016-04-18 16:41:26 +08:00
    从 Beta 开始用,一直都不好用,经常更新不到代码。
    Lonely
        8
    Lonely  
       2016-04-18 16:46:34 +08:00
    可以试试 jrebel 家的
    aliuwr
        9
    aliuwr  
       2016-04-18 16:46:35 +08:00   ❤️ 1
    一次都没用过,因为不支持 Kotlin 。
    同类产品 JRebel 非常好用。不过有个限制要注意下,如果应用被杀死了,一定要点击电脑上的运行才能用。
    sourcebace
        10
    sourcebace  
       2016-04-18 17:20:28 +08:00
    好像目前多进程还没法用,大型的项目有点蛋疼,小项目还是很方便的
    jaycee110905
        11
    jaycee110905  
       2016-04-18 17:22:17 +08:00
    @CtrlSpace 同感
    kassadin
        12
    kassadin  
       2016-04-18 17:35:47 +08:00
    感觉确实还不太健全,偶尔代码没生效,改半天都不行,干脆停止重装一下啥都好了 - -
    youxiachai
        13
    youxiachai  
       2016-04-18 17:45:20 +08:00
    项目简单..还可以...

    但是程序结构复杂了..例如多进程这种..instant run 还是关闭为妙...
    honeycomb
        14
    honeycomb  
       2016-04-18 17:56:44 +08:00
    项目简单是很好的,改革代码几秒钟后就跑起来
    大项目不推荐用
    williamx
        15
    williamx  
       2016-04-18 18:24:39 +08:00
    被坑了大半夜
    6v
        16
    6v  
       2016-04-18 19:23:20 +08:00
    同被坑... 现在我们全组的人都把 Instant Run 关了...
    感觉 build.gradle 发生变化的情况下, 编译时间从 5 分钟左右升到了 10 分钟上下
    williamwue
        17
    williamwue  
       2016-04-18 20:07:32 +08:00
    刚启用就发现有坑,立刻关掉了,等大家反馈可用了再说
    twoyuan
        18
    twoyuan  
       2016-04-18 20:29:06 +08:00
    确实坑,不过好在出了错看错误提示还能找到原因,大不了 clean 重新编译一遍。

    不然对于开了 MultiDex 的项目来说,改行代码编译三分钟实在忍不了,就为了这点在 beta 就上了 2.0 ,总体来说好处还是多一些的
    nashxk
        19
    nashxk  
       2016-04-18 20:31:47 +08:00
    编辑时间确实变长了。。现在电脑整天风扇声不停。不过还是忍着用了。之前用着 LayoutCast ,挺好用的,不过 gradle2.0 上貌似有问题。。
    Macya
        20
    Macya  
       2016-04-18 22:06:32 +08:00
    instant run 经常出问题,典型的就是未更新代码,如果有新加入资源的话,又要重新 gradle build Running ,开了 instant run 的时候,一个很小很小的项目都要 30s+,而且整台机子都卡了,关了一点事都没,效率还高不少。
    aliuwr
        21
    aliuwr  
       2016-04-18 22:15:22 +08:00   ❤️ 1
    @twoyuan 对于开了 MultiDex 的项目来说,有个加速编译的小技巧。
    在 productFlavors 里指定 minSdkVersion 为 21 ,可以避免计算 primary DEX file 的时间。
    相关文档 https://developer.android.com/tools/building/multidex.html#dev-build

    这个技巧同样适用于体积不大的应用,可以将依赖库预编译成 dex 。比如我的应用没有超过 65K 的限制,我也开启了 multiDex ,并指定了 minSdkVersion 为 21 。但注意不需要加入 com.android.support:multidex 的依赖,因为最终的 release 版本并不需要 multiDex 。
    JayFang1993
        22
    JayFang1993  
       2016-04-18 22:33:02 +08:00
    好像不太好,总是 adb 连不上,还有就是代码改了, instant run 没更新。我想回到 1.5 了
    pepsin
        23
    pepsin  
       2016-04-18 22:34:18 +08:00
    垃圾玩意, 巨难用, 代码改了老不更新, 搞个 java 片段 build 有那么难么
    kirisetsz
        24
    kirisetsz  
       2016-04-18 22:34:55 +08:00
    用了几天大概是这个感受:
    1. 首次编译的时间变长了,而且风扇超响。
    2. Debug 的时候不再遇到 64K 方法数问题, Release 的时候会出现。
    3. 在 API23 的 arm 模拟器里首次启动速度感人 (大概卡个十分钟编译)
    yrom
        25
    yrom  
       2016-04-18 23:23:42 +08:00
    用了一两天,实在受不了给关了。。。想法很好,但目前 bug 还挺多
    Ervin
        26
    Ervin  
       2016-04-18 23:30:13 +08:00
    @aliuwr AS 支持 kotlin 好吧
    ericyl
        27
    ericyl  
       2016-04-19 07:07:08 +08:00 via Android
    有时候编译真心慢,项目 crash 不做任何操作的时候直接 Instant Run 的时候会再 crash 一次。
    Makoshan
        28
    Makoshan  
       2016-04-19 09:06:52 +08:00
    改 XML 和 少量代码变量 用 Instant Run 编辑查看,大的改动,先停止调试,再重新编译安装。
    1023400273
        29
    1023400273  
       2016-04-19 09:11:59 +08:00
    已经关闭该功能,坑死我了
    zhouquanbest
        30
    zhouquanbest  
       2016-04-19 11:59:44 +08:00
    用 AS2.1 beta
    特么 Instant Run 只支持用 gradle plugin beta
    还得再下个 2.0 RC

    自己 Kotlin 写的反正也不支持

    推荐装个 Android N 的模拟器 新的 ART 机制让安装变得非常快 也就不太需要 InstantRun 了

    另外 InstantRun 基本是要 restart activity 的 所以我这种全 View 和全 Fragment 的架构方式基本用不上了 (不甘心
    coolkid1900
        31
    coolkid1900  
       2016-04-19 15:22:37 +08:00
    表示被坑过,还好我机智的卸载了
    Rocko
        32
    Rocko  
       2016-04-19 19:56:14 +08:00 via Android
    坑,首次 build 慢了很多 。增加代码还好,更改 移动代码时经常更新不到代码。修改 XML 控件标签名也会 ClassCash 。。 好一点的就是模拟器和 AS 的打开速度了。
    LvWind
        33
    LvWind  
       2016-04-20 10:35:38 +08:00
    有的时候改动不生效,然后你试试清除数据再启动,就变回好久之前的版本了。。
    tianlang1989
        34
    tianlang1989  
       2016-04-20 17:13:47 +08:00
    不好用,首次编译时间太长
    不知道为什么 用小米测试机 第一次编译需要在手机上点同意,如果忘了点, AS 上提示安装失败,然后不做任何改动,再点一下三角形启动,居然又需要编译很长时间
    fuck ,怒关!
    twoyuan
        35
    twoyuan  
       2016-04-23 18:03:15 +08:00
    @aliuwr 感谢您提供的方法,这几天试了一下, 21 以上这样用是没问题的, 21 以下没有 multidex 的依赖应用安装后打不开,加上 multidex gradle 构建的时候就 OOM ...orz
    aliuwr
        36
    aliuwr  
       2016-04-23 20:37:53 +08:00
    @twoyuan 设置成这样是为了加速开发, release 和测试低版本的时候就不应该如此了。
    21 之前的版本不原生支持 multidex ,所以需要依赖库进行支持。
    OOM 的问题你看官方文档调整下内存设置就好了。
    twoyuan
        37
    twoyuan  
       2016-04-23 22:41:27 +08:00
    @aliuwr ok 多谢了,这个方法还是很有用的。之前也看到文档里介绍这个迷信 instant run 没用这个,现在看来还是这么做靠谱。
    F1ReKing
        38
    F1ReKing  
       2016-04-25 21:45:27 +08:00
    建议还是关闭比较好,不坑不装逼
    mzlogin
        39
    mzlogin  
       2016-04-29 01:39:56 +08:00
    @nocoo 一样一样的……基于地图 SDK 做的东西,启用 Instant Run 后只第一次运行可用,再运行就报崩溃了,必须卸载重装。
    nocoo
        40
    nocoo  
       2016-04-29 19:49:14 +08:00
    @mzlogin 我们的地图 SDK 是我厂新出品,我们是第一个用户。所以估计是 GL 的问题吧。
    mzlogin
        41
    mzlogin  
       2016-04-29 21:22:01 +08:00
    @nocoo Soga ……反正就是说 Instant Run 目前在某些情况下 hold 不住啊 😁
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2741 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 15:21 · PVG 23:21 · LAX 08:21 · JFK 11:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.