AndroidStudio 2.0 的新特性 Instant Run 真的好用么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Totato5749
V2EX    Android

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

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

    没带来心理预期效果,副作用很明显,编译时间变长, 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 之后就再也启动不起来了,必须卸载重装。
    feeeei
        5
    feeeei  
       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  
    PRO
       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     Solana     2990 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 13:17 PVG 21:17 LAX 05:17 JFK 08:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86