目前出于兴趣学习 Android 开发是否还需要学习 Java ?还是直接学习 Dart 及 Flutter? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fourstring
V2EX    Android

目前出于兴趣学习 Android 开发是否还需要学习 Java ?还是直接学习 Dart 及 Flutter?

  •  
  •   fourstring 2019-05-06 20:04:49 +08:00 15012 次点击
    这是一个创建于 2428 天前的主题,其中的信息可能已经有所发展或是发生改变。

    楼主是大一学生,本身在编程以及计算机科学方面有一定的基础,比较熟悉 Python 和 Web 开;编译型语言方面对 C++尚有一定了解不过不如 Python 熟练。目前出于兴趣原因,想学习开发 Android 应用,有几个问题想请教一下各位大佬们:

    1. 目前学习 Android 开发还需要学习 Java (以及传统的 Android 应用开发方式)吗?
    2. Dart/Flutter 是否足以开发系统级的 Android 应用(如冰箱 存储重定向等),还是说必须涉及 Java ?
    3. 如果不研究 Android 开发,是否有额外学习 Java 的必要?

    (问题 2 算是对问题 1 的补充。我有了解过 Flutter,如果我的理解没错的话它在布局方面确实能带来很大的提升,但在与 Android 系统交互方面似乎并没有提供什么帮助。鉴于 Android 之前的主要开发语言还是 Java,如果我希望能开发系统级的 Android 应用,是不是一定要学习 Java ?)

    感谢指点!

    19 条回复    2019-05-08 14:31:05 +08:00
    wly19960911
        1
    wly19960911  
       2019-05-06 20:13:53 +08:00   1
    跨平台避不开原生开发,跨平台很多时候系统差异,调用的 api 和操作都不一样,在跨平台的语言里面是没法直接处理的。文件处理,各种系统数据获取、通知,原生的 api 这怎么都得知道,但是至少你在画 UI 上功夫可以减不少,但是仍旧有坑。

    这个就直接回答了 1,2 两个问题了。而且基于 dart 的单线程有坑,执行耗时操作的时候卡 UI (比如压缩图片),实际上很多时候还是调用了原生的,只是做了通信而已。

    第三个问题,可以学习,至少目前企业开发后端和各种面向对象知识可以学习下,多看多接触,对自己以后发展很有帮助。
    liuhuansir
        2
    liuhuansir  
       2019-05-06 20:14:26 +08:00   1
    完全没必要学 Android 开发,你才大一,基础更重要,可以继续深耕 Python 和 Web 开发,有时间可以学学 Java,说不定你等毕业 Dart/Flutter 已经黄了
    BlockHeader
        3
    BlockHeader  
       2019-05-06 20:17:19 +08:00   1
    我从 Android 2.0 Eclair 开始看 Android 的源代码,我写过 Android 原生 App,也用过 React Native 写过 App。以下是我的答案:
    1. 目前学习 Android 开发还需要学习 Java (以及传统的 Android 应用开发方式)吗?
    最好是学习一下传统的 Android 应用开发(最起码要了解)。因为你毕竟是在 Android 系统上,需要理解 Android App 的生命周期,各种术语:Activity,Service,Provider,Intent 等等。
    2. Dart/Flutter 是否足以开发系统级的 Android 应用(如冰箱 存储重定向等),还是说必须涉及 Java ?
    Flutter/Dart 我没有用过。我用过 React Native。React Native 是用 jsx,实现一套代码,通过 React Native 编译成两个平台的原生 App。在实现一些和系统强相关的功能的时候,可能需要自己实现 jsx 到 Android 的组件模块。实现 Android 模块,积极需要使用 Java 或者 Kotlin。
    3. 如果不研究 Android 开发,是否有额外学习 Java 的必要?
    除了开发 Android 应用程序,还有其他开发是可能用到 java 的。有时间,还是学学为好。当然,最好和你正在做的事情或者想要做的事情结合起来,带着问题学习,效率可能高些。
    zagfai
        4
    zagfai  
       2019-05-06 20:44:29 +08:00
    @liuhuansir Dart 不是一两年的事情了,在还没有 flutter 的时候我就看好 dart。还是看有没有资源投入吧。
    murmur
        5
    murmur  
       2019-05-06 20:45:42 +08:00
    @zagfai 当年看 chromebook 和 chromeos 的人也是这么说的
    BCy66drFCvk1Ou87
        6
    BCy66drFCvk1Ou87  
       2019-05-06 20:47:25 +08:00 via Android
    java 能造航母
    superjojo
        7
    superjojo  
       2019-05-06 20:54:11 +08:00
    1. 假设你想找安卓开发工作,学 Java 开发安卓吧。

    2. 假设你想快速开发一个安卓 APP,学 Java 开发安卓吧。

    3. 假设你想跨平台,学 react native 吧

    4. 其他,学 Java 开发安卓吧。
    laogui
        8
    laogui  
       2019-05-06 20:54:39 +08:00 via Android   1
    目前 Flutter 只适合画界面,想深入学习系统级别的东西还得学原生。
    nicevar
        9
    nicevar  
       2019-05-06 21:00:52 +08:00
    学好 Java 就够了,什么跨平台新语言都是一些胡里花哨的东西,学好了一门语言其他语言基本上不在话下。
    如果你只会 Flutter/Dart 是做不了 Android 开发的,当然写个按钮弹个 hello world 没啥问题
    Raisu
        10
    Raisu  
       2019-05-06 21:42:55 +08:00
    不要学后面那两个,要用看看文档就好了,大一应该打好基础啊,国外的教材公开课看一看
    jerrry
        11
    jerrry  
       2019-05-06 21:46:13 +08:00 via Android
    @murmur chromeos 不是很火吗
    glumess
        12
    glumess  
       2019-05-07 08:52:19 +08:00   1
    可以学学多媒体相关的,音视频的内容会比较持久一点,可以看看我的博客 glumes.com 也是在做这方面的内容
    liang7878
        13
    liang7878  
       2019-05-07 10:23:19 +08:00
    出于兴趣学习的话只要学学 flutter 就行了,学习门槛低,能够快速出成果,有助于保持你的学习热情,后续如果做的东西涉及到底层或者原生系统的内容再系统性的学习,大一能够做出成果对保持学习热情非常重要。另外做这些的时候一定不要放下对基础课程(组成原理,网络,编译原理,数据库,etc.)的学习,不要因为做了一两个 app 就沾沾自喜,这样就差不多了,原生这块儿晚点再学没事。
    Lin0936
        14
    Lin0936  
       2019-05-07 11:17:21 +08:00
    既然是兴趣当然是都学学看了。
    motecshine
        15
    motecshine  
       2019-05-07 12:59:02 +08:00
    基础不扎实走不远, 语言只是工具. 深耕一个领域才是最好的.
    scar263
        16
    scar263  
       2019-05-07 15:35:37 +08:00
    Flutter 值得学习和使用。
    zagfai
        17
    zagfai  
       2019-05-07 23:21:31 +08:00
    @murmur 还是得看资源投入吧,chromebook 其实已经满足我需求了,外形好看点,足够轻 67 百 gram 的样子,我会买。
    lizhuoli
        18
    lizhuoli  
       2019-05-08 02:01:29 +08:00 via iPhone
    兴趣用 Flutter,找工作看 Java
    不过鉴于你说是大一,而且大概率不会本科工作,建议学好数学转 ML 岗位
    whp1473
        19
    whp1473  
       2019-05-08 14:31:05 +08:00
    建议学好一门语言,Java 或 C++,其他选学工具型语言 shel、python,前端 js、echart、vue、flutter。
    非常建议学好数据结构和算法、计算机组成原理、通信协议 TCP/IP、编译原理(选学)、离散数学、概率论、高等数学。
    其他花里胡哨的都是壳子。
    关于   &nbs; 帮助文档     自助推广系统     博客     API     FAQ     Solana     5252 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 49ms UTC 01:35 PVG 09:35 LAX 17:35 JFK 20:35
    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