pheyer
V2EX  ›  Android

受够了 Gradle

  •  
  •   pheyer · Jan 16, 2016 · 16834 views
    This topic created in 3945 days ago, the information mentioned may be changed or developed.
    本身做 iOS 开发的,最近有些东西需要看 Android 的代码,简单地看了一本书大概入门,直接从 Android Studio 上手。然后下载了几个 Github 上的 Android app 开源代码学习,每次都要在 Gradle 上卡半天时间,简直是受够了,有人说它像 CocoaPods ,真的感觉与 iOS 的 CocoaPods 一个地下一个天上啊
    觉得 Gradle 就像是一个重要的依赖库,不同的 app 用不同版本的 Gradle ,每个 app 都要去下一次,还都是 60 多 M 的东西,这设计思路是不是要得改改?
    刚开始是每次都要去下载 Gradle 文件,即使爬墙也很慢,后来学乖了,知道用 Use local gradle distribution 了,然后就是在 Gradle: Configuring projects 那里总是卡,又是卡半天。。。这时间浪费得真是哗哗地。。
    一个 Android 新手的吐槽,大家随意看吧
    34 replies  •  2016-01-18 09:05:32 +08:00
    kassadin
    kassadin
    Jan 16, 2016
    1
    ➜ ~ du -sh .gradle
    2.8G .gradle
    int64ago
    int64ago
    Jan 16, 2016
    2
    所以必须是 MBP 顶配才有资格做 Android 开发,不搞点门槛出来不能显 B 格

    比如我这个 Thinkpad 屌丝编译 Android 的时候

    pheyer
    pheyer
    OP
    Jan 16, 2016
    3
    @kassadin 我这个新手都有这么多啦
    ➜ ~ du -sh .gradle
    1.0G .gradle
    另外发现.gradle/wrapper/dists/目录下的每个 gradle 版本都是不唯一的,在里面好像还要根据应用区分,在应用文件夹里 gradle 版本又可能与另一个应用文件夹的 gradle 版本,是一个版本但是有两份,无以吐槽
    kslr
    kslr
    Jan 16, 2016
    4
    好几 G 啊好几 G
    pheyer
    pheyer
    OP
    Jan 16, 2016
    5
    @kslr 反正我觉得这几天搞 Android 后我的硬盘空间缩水很快,昨天还是前天就警告磁盘空间不足了
    wizardforcel
    wizardforcel
    Jan 16, 2016 via Android
    6
    没感觉。
    hongfeiyu
    hongfeiyu
    Jan 16, 2016
    7
    一个应用只用加载一次吧
    而且 Eclipse 没这个
    westlinkin
    westlinkin
    Jan 16, 2016
    8
    ➜ ~ du -sh .gradle
    5.2G .gradle
    AnotherM
    AnotherM
    Jan 16, 2016
    9
    爬墙是啥?一个 hosts 搞定了 这货感觉比较好的就是想导入一些 Library 的比如 Android Design Support Library 时候,直接 compile 'com.android.support:design:23.1.1',还有,表示 i5-4210H 在打开依赖比较多的 app 的时候根本不够用, 8G 内存打开 Studio 直接没了一半,所以说真想玩好 studio 这货,没个 E5-2699 v3+4*8G 2133 DDR4 还真不行(误)
    pheyer
    pheyer
    OP
    Jan 16, 2016
    10
    @AnotherM 就是翻越长城啊
    maomaomao001
    maomaomao001
    Jan 16, 2016 via Android
    11
    @westlinkin as 有没有办法不用 gradle ,这个好慢啊
    可以像之前的 ADT 那样开发就好了
    AnotherM
    AnotherM
    Jan 16, 2016
    12
    @pheyer 我用 doge 表情就代表我知道意思,你去老 D 博客翻翻他的 hosts 用一下再试试,如果还觉得慢,找到 studio 安装目录下 bin\studio.exe.vmoptions 和 studio64.exe.vmoptions 用 notepad 打开,改一下 xms 和 xmx 的值,具体大小视你内存而定, xmx 后面那两个的值也可以修改,具体是啥我也不了解,反正我是 xms1024m xmx4096m ,改完了比原来 gradle 编译快了将近 4 倍, PS 刚刚忘了说了,除了 E5 和 4*8G 你还需要一个 Intel SSD 750
    dabaitu
    dabaitu
    Jan 16, 2016
    13
    最近升级了 2.0 感觉快了不少了已经
    hei1000
    hei1000
    Jan 16, 2016 via Android
    14
    @pheyer 其实他肯定知道翻墙啦,只不过他用的 hosts 方式, hosts 的确更方便
    pheyer
    pheyer
    OP
    Jan 16, 2016
    15
    @dabaitu 是吗,不知道 Gradle 改进了啥,我还在用 1.5.1
    pheyer
    pheyer
    OP
    Jan 16, 2016
    16
    @AnotherM 后面我试一下,我用 Mac ,应该是一样的
    AnotherM
    AnotherM
    Jan 16, 2016
    17
    @pheyer Mac 的我不知道,不过道理都是通过修改虚拟机内存最小限制和最大限制来加快速度,原来在 Windows 上 xmx 是 750 的时候,到了 gradle 构建时候这货就给我限制到了 400m ,改成 4096 之后,任务管理器看 studio 使用,轻松上 1.5g ,如果不是因为 i5 不够用估计会更快,还有上面说的 2.0 你可以试试,不过貌似主要快在了虚拟机和 gradle 构建上
    clino
    clino
    Jan 16, 2016
    18
    我能说我看到这个主题内容会有点快感咩...
    其实构建这种东西还是用动态脚本语言来做比较合适
    bkmi
    bkmi
    Jan 16, 2016❤️2
    19
    都不知道楼上的在说些什么,
    请注意!! Gradle 不是依赖库,而是一个构建工具。
    楼主何不花个半小时,了解一下 Gradle 。
    [不同的 app 用不同版本的 Gradle] ,这个是因为你使用的是 gradlew
    你可以下载一个最新的 Gradle ,然后将其加入 PATH 。。使用本地的 gradle 来进行构建,而不是下载。
    miao1007
    miao1007
    Jan 16, 2016
    20
    JAVA_OPTS=-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8787 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8787
    MAVEN_OPTS=-Dhttp.proxyHost=127.0.0.1 -Dhttp.proxyPort=8787 -Dhttps.proxyHost=127.0.0.1 -Dhttps.proxyPort=8787
    GRADLE_OPTS=-Dgradle.user.home=/Users/leon/.gradle
    dubuqingfeng
    dubuqingfeng
    Jan 16, 2016 via Android
    21
    dubuqingfeng
    dubuqingfeng
    Jan 16, 2016 via Android
    22
    @bkmi 嗯,同意。都没看懂上面的那些,现在 gradle 很好用啊,都 2.7 了,依赖管理和构建啊。
    bigdogbigpig
    bigdogbigpig
    Jan 17, 2016
    23
    是不是你的使用方式有问题,用起来感觉良好呀
    zhuangzhuang1988
    zhuangzhuang1988
    Jan 17, 2016 via Android
    24
    对 gradle 撒火干嘛?
    a0000
    a0000
    Jan 17, 2016 via Android
    25
    有墙的存在确实用起来莫名其妙,都不知道具体卡在哪里了
    bombshell
    bombshell
    Jan 17, 2016
    26
    @dubuqingfeng 不是都 2.10 了吗。。
    zhgg0
    zhgg0
    Jan 17, 2016
    27
    ADT 换 Android Studio 大半年了,从没这感觉啊。
    pheyer
    pheyer
    OP
    Jan 17, 2016
    28
    @bkmi 知道是构建工具,所以我用了“像”,原文“觉得 Gradle 就像是一个重要的依赖库
    加入 PATH 之后 AS 就会自动用本地 Gradle 构建吗?还需要设置 Offline ?或者是你这个只适合命令行?
    bkmi
    bkmi
    Jan 17, 2016
    29
    @pheyer 在 as 设置 gradle 里有两个选项,分别是
    Use default gradle weapper(recommended)
    Use local gradle distribution

    默认选中的是第一项,选中第二项并指定本地 gradle 路径。
    另外在导入项目时,通常会询问使用 wrapper 还是本地的,注意选择使用本地(cancel)
    Offline work 在你构建成功一次之后 可以选择开启,影响不大。
    bkmi
    bkmi
    Jan 17, 2016
    30
    @pheyer 当然 as 很多地方很不人性,反人类,甚至是弱智,这个我十分有感受,但是搞懂原理后就容易多了。
    ladddd
    ladddd
    Jan 17, 2016
    31
    gradle 的语法在某几个版本间发生过变化,用本地的 gradle 构建采用老版本的工程时会提示语法错误。
    pheyer
    pheyer
    OP
    Jan 17, 2016
    32
    @ladddd 所以要多准备几个版本
    justjavac
    justjavac
    Jan 18, 2016 via Android
    33
    为什么不好好看看文档呢?
    ppwangs
    ppwangs
    Jan 18, 2016
    34
    λ du -sh .gradle\
    127M .gradle\

    等玩转了再说吧。。
    PS , server 端开发,依赖库用的是 maven ,地址在另外一个地方,累计了 3 、 4 年的大小:
    λ du -sh maven\
    1.9G maven\
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1560 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 64ms · UTC 23:32 · PVG 07:32 · LAX 15:32 · JFK 18:32
    ♥ Do have faith in what you're doing.