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

2019-05-06 20:04:49 +08:00
 fourstring

楼主是大一学生,本身在编程以及计算机科学方面有一定的基础,比较熟悉 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 ?)

感谢指点!

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

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

第三个问题,可以学习,至少目前企业开发后端和各种面向对象知识可以学习下,多看多接触,对自己以后发展很有帮助。
liuhuansir
2019-05-06 20:14:26 +08:00
完全没必要学 Android 开发,你才大一,基础更重要,可以继续深耕 Python 和 Web 开发,有时间可以学学 Java,说不定你等毕业 Dart/Flutter 已经黄了
BlockHeader
2019-05-06 20:17:19 +08:00
我从 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
2019-05-06 20:44:29 +08:00
@liuhuansir Dart 不是一两年的事情了,在还没有 flutter 的时候我就看好 dart。还是看有没有资源投入吧。
murmur
2019-05-06 20:45:42 +08:00
@zagfai 当年看 chromebook 和 chromeos 的人也是这么说的
BCy66drFCvk1Ou87
2019-05-06 20:47:25 +08:00
java 能造航母
hhecoder
2019-05-06 20:54:11 +08:00
1. 假设你想找安卓开发工作,学 Java 开发安卓吧。

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

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

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

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/561580

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX