android 编程有偷懒的方法么? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
herozem
V2EX    Android

android 编程有偷懒的方法么?

  •  
  •   herozem 2015-05-14 22:59:34 +08:00 14794 次点击
    这是一个创建于 3808 天前的主题,其中的信息可能已经有所发展或是发生改变。

    虽然我是新手, 需要熟悉android各种属性, 但是android也太繁杂了吧,比如xml:

    一大堆的android前缀, 要不是多亏了IDEA简直累到死。。。

    还有java里的, 比如List<Map<String, String>> child1 = new ArrayList<Map<String, String>>(); 哇卡卡, 前面写了一遍后面又要写一遍。

    算了, 吐槽完毕。

    所以:请问大, android编程有类似groovy语法之类的偷懒写法(或者说工具?)吗?或者一切可以提高编程效率的方法

    31 条回复    2016-12-25 12:24:09 +08:00
    WildCat
        1
    WildCat  
       2015-05-14 23:05:24 +08:00 via iPhone
    传统的静态语言不都这样子?
    Groovy 欢迎你
    herozem
        2
    herozem  
    OP
       2015-05-14 23:14:45 +08:00
    @WildCat 唉, 写的想哭
    Gonster
        3
    Gonster  
       2015-05-14 23:21:52 +08:00
    jdk的话 1.7 以后 new 后面模板可以不用再写一遍了。。。Android就不清楚了
    scarlex
        4
    scarlex  
       2015-05-14 23:39:50 +08:00
    不知道楼主有没写过 web 前端,写过的话再写 android 界面时感觉应该差不多吧。
    herozem
        5
    herozem  
    OP
       2015-05-15 00:02:58 +08:00 via Android
    @Gonster 搞不懂之前的为啥要这样。
    @scarlex 没玩过web。为何人机交互都这么麻烦T_T
    reeco
        6
    reeco  
       2015-05-15 00:06:02 +08:00 via iPhone
    用好idea
    scarlex
        7
    scarlex  
       2015-05-15 00:07:55 +08:00
    @herozem 做界面做交互的都这样拉,定义组件结构,定义样式,事件绑定。习惯下就好了。
    aaronmix
        8
    aaronmix  
       2015-05-15 00:43:01 +08:00
    kotlin
    GhostFlying
        9
    GhostFlying  
       2015-05-15 00:55:47 +08:00 via Android
    Idea 已经简单很多了。。想想以前 Eclipse 的日子,不堪回首
    zhouquanbest
        10
    zhouquanbest  
       2015-05-15 01:29:37 +08:00 via Android
    lambda+rxjava
    silvernoo
        11
    silvernoo  
       2015-05-15 04:41:36 +08:00
    scala
    mthli
        12
    mthli  
       2015-05-15 05:59:26 +08:00 via Android   3
    puncsky
        13
    puncsky  
       2015-05-15 08:19:36 +08:00
    Java 7 开始有 diamond operator

    List<Map<String, String>> child1 = new ArrayList<Map<String, String>>();

    就变成了

    List<Map<String, String>> child1 = new ArrayList<>();

    稍微好一点儿。。
    herozem
        14
    herozem  
    OP
       2015-05-15 09:34:49 +08:00
    @GhostFlying eclipse用的我想哭


    @puncsky 嗯, 只能说好了一点点


    @mthli 谢谢, 干货


    @silvernoo 表示没学过scala, 就算scala写起来应该也不轻松吧(猜
    @aaronmix 又是jetbrains ->_->
    learnshare
        15
    learnshare  
       2015-05-15 09:38:13 +08:00
    IDE 的代码片段不是用来摆设的
    finian
        16
    finian  
       2015-05-15 09:40:40 +08:00
    zhea55
        17
    zhea55  
       2015-05-15 09:52:10 +08:00
    verticalLayout {
    val name = editText()
    button("Say Hello") {
    onClick { toast("Hello, ${name.text}!") }
    }
    }

    看起来很舒服,不过这个东西效率怎样,还不清楚。。


    https://github.com/JetBrains/anko
    herozem
        18
    herozem  
    OP
       2015-05-15 11:14:32 +08:00
    @learnshare 只能说好一点点, 自动补全也不是很智能的


    @zhea55 很多人推荐jetbrains的anko :)

    @finian 这个还没看过呢, 好像很强大, 在实际工程上有应用吗?请问
    jaminzzhang
        19
    jaminzzhang  
       2015-05-15 14:52:06 +08:00
    呃,为何不用Android Studio?也是IntelliJ,现在已支持SDK7。写了iOS再写Android,觉得真不算什么。哦,除了NullPointerException
    iv2ex
        20
    iv2ex  
       2015-05-15 17:24:02 +08:00
    Android Studio的提示很好用 不需要你写完整的字段名 写一个字段名中间几个字母都可以
    allan1st
        21
    allan1st  
       2015-05-15 17:29:45 +08:00   1
    我的偷懒方法汇总:
    * ButterKnife 做 View Injection, OnClick 等
    * RxJava 做 Async,配合 leakcanary 检查内存泄露
    * Retro-lambda 用 JAVA 8 的 lambda
    * Stetho debug 网络请求
    * 这个比较 Dirty: Realm 在主线程上 query
    * 终极偷懒项:最低版本设置到 19 或者 21

    其实以上第2点第5点坑比较多。。
    herozem
        22
    herozem  
    OP
       2015-05-15 19:19:29 +08:00
    @jaminzzhang
    @atearsan 嗯, 刚开始看书的时候用eclipse, 后来觉得不行, 太累, 就换到了idea


    @allan1st 感谢分享, 表示上面的一个都没用过
    Gem
        23
    Gem  
       2015-05-15 19:26:12 +08:00
    写着虽然麻烦,但是好处是每一步都很清楚,也挺好的。
    StevenTong
        24
    StevenTong  
       2015-05-15 23:22:35 +08:00
    @allan1st 多谢分享 mark 下次一个一个看
    Jabin
        25
    Jabin  
       2015-05-16 21:41:56 +08:00
    强烈推荐AndroidAnnotations 这个框架
    Lonely
        26
    Lonely  
       2015-05-16 23:09:10 +08:00
    那你就不要学了,省的自找麻烦
    zhanglp888
        27
    zhanglp888  
       2015-05-20 10:32:36 +08:00
    @Jabin 是不是跟roboguice一样?能给大概介绍一下吗?
    zhanglp888
        28
    zhanglp888  
       2015-05-20 17:05:41 +08:00
    @Jabin 自己仔细看了AndroidAnnotations ,真心爱上了它,感谢~~~~
    qw7692336
        30
    qw7692336  
       2015-07-12 00:42:52 +08:00
    @puncsky
    不是可以直接
    List<Map<String, String>> child1 = new ArrayList();
    吗?后面的<>都不用了。


    @zhanglp888
    不要用roboguice,这个东西已经被Google点名批评了,详见
    http://developer.android.com/intl/zh-cn/training/articles/memory.html#DependencyInjection

    你可以用androidannotations
    https://github.com/excilys/androidannotations
    或者butterknife
    https://github.com/JakeWharton/butterknife
    实现一些方便操作。

    https://github.com/evant/gradle-retrolambda
    可以让你在Android当中使用lambda表达式。
    配合RxAndrod或者RxJava
    https://github.com/ReactiveX/RxAndroid
    https://github.com/ReactiveX/RxJava
    可以让你的代码变得优雅。


    @zhouquanbest
    @allan1st
    为什么不用专用的RxAndroid而用RxJava呢?
    lxyyzm
        31
    lxyyzm  
       2016-12-25 12:24:09 +08:00
    @scarlex js 比 java 简洁一万倍好吧
    关于     帮助文档     自助推广系统     博客         FAQ     Solana     2416 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 15:47 PVG 23:47 LAX 08:47 JFK 11:47
    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