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

受够了 Gradle

  •  
  •   pheyer · 2016-01-16 21:42:50 +08:00 · 4045 次点击
    这是一个创建于 1492 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本身做 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 回复  |  直到 2016-01-18 09:05:32 +08:00
    kassadin
        1
    kassadin   2016-01-16 21:46:38 +08:00
    ➜ ~ du -sh .gradle
    2.8G .gradle
    int64ago
        2
    int64ago   2016-01-16 21:54:59 +08:00
    所以必须是 MBP 顶配才有资格做 Android 开发,不搞点门槛出来不能显 B 格

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

    pheyer
        3
    pheyer   2016-01-16 22:00:14 +08:00
    @kassadin 我这个新手都有这么多啦
    ➜ ~ du -sh .gradle
    1.0G .gradle
    另外发现.gradle/wrapper/dists/目录下的每个 gradle 版本都是不唯一的,在里面好像还要根据应用区分,在应用文件夹里 gradle 版本又可能与另一个应用文件夹的 gradle 版本,是一个版本但是有两份,无以吐槽
    kslr
        4
    kslr   2016-01-16 22:00:15 +08:00
    好几 G 啊好几 G
    pheyer
        5
    pheyer   2016-01-16 22:06:07 +08:00
    @kslr 反正我觉得这几天搞 Android 后我的硬盘空间缩水很快,昨天还是前天就警告磁盘空间不足了
    wizardforcel
        6
    wizardforcel   2016-01-16 22:08:10 +08:00 via Android
    没感觉。
    hongfeiyu
        7
    hongfeiyu   2016-01-16 22:13:28 +08:00
    一个应用只用加载一次吧
    而且 Eclipse 没这个
    westlinkin
        8
    westlinkin   2016-01-16 22:21:13 +08:00
    ➜ ~ du -sh .gradle
    5.2G .gradle
    AnotherM
        9
    AnotherM   2016-01-16 22:37:06 +08:00
    爬墙是啥?一个 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
        10
    pheyer   2016-01-16 22:42:17 +08:00
    @AnotherM 就是翻越长城啊
    maomaomao001
        11
    maomaomao001   2016-01-16 22:52:38 +08:00 via Android
    @westlinkin as 有没有办法不用 gradle ,这个好慢啊
    可以像之前的 ADT 那样开发就好了
    AnotherM
        12
    AnotherM   2016-01-16 22:56:13 +08:00
    @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
        13
    dabaitu   2016-01-16 22:58:33 +08:00
    最近升级了 2.0 感觉快了不少了已经
    hei1000
        14
    hei1000   2016-01-16 22:58:39 +08:00 via Android
    @pheyer 其实他肯定知道翻墙啦,只不过他用的 hosts 方式, hosts 的确更方便
    pheyer
        15
    pheyer   2016-01-16 23:01:43 +08:00
    @dabaitu 是吗,不知道 Gradle 改进了啥,我还在用 1.5.1
    pheyer
        16
    pheyer   2016-01-16 23:02:10 +08:00
    @AnotherM 后面我试一下,我用 Mac ,应该是一样的
    AnotherM
        17
    AnotherM   2016-01-16 23:14:59 +08:00
    @pheyer Mac 的我不知道,不过道理都是通过修改虚拟机内存最小限制和最大限制来加快速度,原来在 Windows 上 xmx 是 750 的时候,到了 gradle 构建时候这货就给我限制到了 400m ,改成 4096 之后,任务管理器看 studio 使用,轻松上 1.5g ,如果不是因为 i5 不够用估计会更快,还有上面说的 2.0 你可以试试,不过貌似主要快在了虚拟机和 gradle 构建上
    clino
        18
    clino   2016-01-16 23:21:49 +08:00
    我能说我看到这个主题内容会有点快感咩...
    其实构建这种东西还是用动态脚本语言来做比较合适
    bkmi
        19
    bkmi   2016-01-16 23:36:36 +08:00   ❤️ 2
    都不知道楼上的在说些什么,
    请注意!! Gradle 不是依赖库,而是一个构建工具。
    楼主何不花个半小时,了解一下 Gradle 。
    [不同的 app 用不同版本的 Gradle] ,这个是因为你使用的是 gradlew
    你可以下载一个最新的 Gradle ,然后将其加入 PATH 。。使用本地的 gradle 来进行构建,而不是下载。
    miao1007
        20
    miao1007   2016-01-16 23:47:16 +08:00
    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
        21
    dubuqingfeng   2016-01-16 23:52:10 +08:00 via Android
    dubuqingfeng
        22
    dubuqingfeng   2016-01-16 23:53:54 +08:00 via Android
    @bkmi 嗯,同意。都没看懂上面的那些,现在 gradle 很好用啊,都 2.7 了,依赖管理和构建啊。
    mazyi
        23
    mazyi   2016-01-17 00:33:27 +08:00
    是不是你的使用方式有问题,用起来感觉良好呀
    zhuangzhuang1988
        24
    zhuangzhuang1988   2016-01-17 00:38:02 +08:00 via Android
    对 gradle 撒火干嘛?
    a0000
        25
    a0000   2016-01-17 08:39:57 +08:00 via Android
    有墙的存在确实用起来莫名其妙,都不知道具体卡在哪里了
    cruelcage
        26
    cruelcage   2016-01-17 11:02:03 +08:00
    @dubuqingfeng 不是都 2.10 了吗。。
    zhgg0
        27
    zhgg0   2016-01-17 12:15:12 +08:00
    ADT 换 Android Studio 大半年了,从没这感觉啊。
    pheyer
        28
    pheyer   2016-01-17 12:32:48 +08:00
    @bkmi 知道是构建工具,所以我用了“像”,原文“觉得 Gradle 就像是一个重要的依赖库
    加入 PATH 之后 AS 就会自动用本地 Gradle 构建吗?还需要设置 Offline ?或者是你这个只适合命令行?
    bkmi
        29
    bkmi   2016-01-17 13:19:32 +08:00
    @pheyer 在 as 设置 gradle 里有两个选项,分别是
    Use default gradle weapper(recommended)
    Use local gradle distribution

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

    等玩转了再说吧。。
    PS , server 端开发,依赖库用的是 maven ,地址在另外一个地方,累计了 3 、 4 年的大小:
    λ du -sh maven\
    1.9G maven\
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1183 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 18:58 · PVG 02:58 · LAX 10:58 · JFK 13:58
    ♥ Do have faith in what you're doing.