zoukankan      html  css  js  c++  java
  • 安卓开发一定要用 Java 吗,其他语言开发方便吗?

    https://baijiahao.baidu.com/s?id=1618437759007795311&wfr=spider&for=pc

    作者:Acoe
    链接:https://www.zhihu.com/question/20370504/answer/499403681
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    Android APP开发除了使用Java,比较流行的还有Kotlin和Hybrid开发中普遍采用的JS+HTML。

    在这几门语言都掌握的情况下来说,方便程度可能就是JS+HTML > Kotlin > Java。当然除此以外还有其他的语言,比如Google的Flutter框架所采用的语言就是Dart,随着Google的力推Flutter的社区和资源也在快速丰富起来,可能不久也会十分流行和便利。此外我见过的还有使用Python来开发APP的,没见过但有所耳闻的语言就更多了。

    但是从我已经从事Android开发多年的经验来看,没有丰富的资料和活跃且庞大的社区,一门语言用来做实际的项目级应用的开发,肯定远远称不上方便。

     

    所以方便与否我觉得应该从以下几个角度考量——

    1.上手难易:

    比如最开始我是从Android原生开发上手的,也就是用Java开发Android APP,网上资料虽然参差不齐,但是各种版本的SDK接入、配置方式,以及各个IDE的使用方法是非常容易找到的。另外Java的生态非常成熟且社区异常庞大,也就是说不管是入门级的问题,还是开发过程中语言上遇到的困难,或者IDE使用过程中出现的不懂处,几乎都可以在网上找到答案。而且现在Android开发者网站已经有官方的中文网址,已不再像当年光FQ的问题就足以劝退一大批小白。这里最方便的当推Java,其次就是JS+HTML模式的Hybrid框架,资源和社区也非常丰富,主要就是种类较多,需要做选择题,我所用过的混合框架上手从简单到复杂应该是H5+ -> Weex -> React Native。

    2.语言的学习:

    从编程小白的角度来看,Android APP的开发光方便还不够,语言上手的难易程度也很重要。如果已经精通一门编程语言的话,去学习新的一门语言来做开发,更多的取舍可能像是在Java和Kotlin或者混合框架中做选择。考虑的是编程效率和最终体验的取舍。我只评价下我在项目级应用中实际用过的几种开发语言,Java、Kotlin和Hybird (我用过的混合框架主要是JS+HTML模式,有H5+和Weex),Java和Kotlin最终实现的都是原生APP(Weex其实也是),可以说是最终用户体验Top 1级别的,混合开发的框架种类非常多,光这个就可以单独开一篇文章来讲,但总体最终开发出来的APP用户体验要弱一些,在越复杂的APP中体现得越明显。但是编程效率上Hybird > Kotlin > Java,难易程度可能Kotlin 难于 Java(Kotlin中包含了大量的语法糖,加大了对语言机制理解的难度,但提高了代码编写的效率),JS+HTML最简单。至于其他语言,我的理解是,更多的意义在于对已经掌握这门语言的开发者提供了一个不需要学习新语言就能开发中一个Android APP的途径,稍小些的意义可能是新奇和探索,但是难易程度就无权评价了。

    ps. 流行的Hybrid框架主要用的是JS+HTML语言做开发,但是React Native、Weex所用的语言是变种,ReactNative的学习门槛稍高,Weex基本上懂JS和HTML就完全没问题,另外DCloud和ACloud两家的混合框架都是纯粹使用JS+HTML来做开发的,风格比较类似。Google的Flutter就完全是不一样的一门语言Dart,看起来学习门槛不高,但是没做深入了解就不置喙了。

    3.工具的选择:

    现在Android Studio基本奠定了Android IDE一哥的地位,Eclipse风光一去不复返,所以用Java或者Kotlin开发,AS是首选Hybrid开发的选择非常多,有前端十分钟爱的WebStorm,我用过的DCloud家的Hbuilder很不错(可以三端调试——浏览器、Android机、iOS机)。IntelliJ IDEA和Android Studio是同宗同源,也可以做Android APP的开发。其他小众语言的开发工具可能还包括VS Code等等。所以从工具的便利上来说,Java、Kotlin和Hybrid开发的便利性都差不多,工具都很成熟且受众很广。

    4.代码的可维护性:

    如果APP只是自己一个人开发,也不会交给其他人来维护的话,可以不看这里。否则就需要考虑APP开发完成后的维护问题,如果是企业级的APP就极大地需要考虑能接替你做版本更新、内容迭代、BUG修改的人选问题。比如我上家公司后面全面使用混合框架来开发APP,在开发流失后招了几个月的人,也没有找到对这个框架比较熟悉的人选,但是如果招原生Java开发的就会相对容易很多。

    所以我的最终答案是其他语言做Android APP开发也有很方便的,但是对不同的人来说哪个最方便答案是不一样的。

     

    -------我是分割线-----------

    另我厂VPGAME在招JAVA、测试、前端、运营。大牛巨多,老板超级nice。欢迎童鞋简历来扰(传送门hr@vpgame.cn)

  • 相关阅读:
    HTTP/1.1 Status Code Definitions
    宽带到底“宽不宽”
    tmux的简介及使用
    Simple Gesture – Fling
    使用postfix搭建匿名smtp服务器
    dos2unix和unix2dos命令使用 [〓 脚本功略 〓]
    Android Coding: Gestures Builder: create your gestures library
    Android Gesture 手势识别使用实例 Android mobile ITeye论坛
    使用socat进行端口转发
    notepad++在编辑python文件时以4个空格代替TAB
  • 原文地址:https://www.cnblogs.com/carl2380/p/14587510.html
Copyright © 2011-2022 走看看