2020 年 入门安卓学习什么语言? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ll5270
0.01D
V2EX    Android

2020 年 入门安卓学习什么语言?

  •  
  •   ll5270 2020-11-26 12:05:36 +08:00 26988 次点击
    这是一个创建于 1783 天前的主题,其中的信息可能已经有所发展或是发生改变。

    业余时间想开发自己的 app 请大佬指教 没有 java 基础

    106 条回复    2021-02-26 14:19:44 +08:00
    1  2  
    RickyC
        1
    RickyC  
       2020-11-26 12:09:01 +08:00
    kotlin
    zerofancy
        2
    zerofancy  
       2020-11-26 12:27:17 +08:00
    Kotlin 。不过 Kotlin 入门教程一般要求你有 Java 基础……
    debuggerx
        3
    debuggerx  
       2020-11-26 12:56:20 +08:00
    能不学就不学 有空学点其他更有前景的技术不香么
    ll5270
        4
    ll5270  
    OP
       2020-11-26 12:57:47 +08:00 via Android
    @debuggerx 不学怎么做 app
    Jirajine
        5
    Jirajine  
       2020-11-26 13:07:08 +08:00 via Android
    react native
    IGJacklove
        6
    IGJacklove  
       2020-11-26 13:10:47 +08:00 via Android
    如果想做 Android 和 iOS 建议选 flutter,如果只有 Android 直接学 Java 吧。
    ll5270
        7
    ll5270  
    OP
       2020-11-26 13:21:06 +08:00 via Android
    @IGJacklove 考虑过,flutter 会不会不兼容之类的毕竟是比较新的
    IGJacklove
        8
    IGJacklove  
       2020-11-26 13:25:59 +08:00 via Android
    @ll5270 flutter 现在已经很成熟,很多大厂都在用,坑当然也有,但基本不会有那种没有解决方案的问题。
    Porster
        9
    Porster  
       2020-11-26 13:30:53 +08:00   2
    java 。
    熟练了之后再考虑 kotlin 、flutter,不然会困难重重
    sw926
        10
    sw926  
       2020-11-26 13:35:37 +08:00
    Java 和 Kotlin 基本是一门语言,开发自己的 App 可以直接 Flutter,转行必须从 Java 学起,
    skye
        11
    skye  
       2020-11-26 13:36:3 +08:00
    c++
    YIFZ
        12
    YIFZ  
       2020-11-26 13:47:59 +08:00
    还学啥安卓,现在 IT 饱和都成什么样了,35 岁危机警告,不如找个稳定职业做做
    YIFZ
        13
    YIFZ  
       2020-11-26 13:49:14 +08:00
    kotlin
    debuggerx
        14
    debuggerx  
       2020-11-26 13:50:09 +08:00   3
    因为很有可能其实并不需要“开发自己的 app ”……
    1.有可能你想要的东西实际上是有的,只是你没找到善用搜索引擎,逛逛 github 和 play 市场
    2.有可能你的需求并不需要用 app 实现,可能只需要写个网页然后加个桌面书签,可能只是一段脚本放在 Termux 中执行,甚至可能只要下个 Tasker 就能解决
    3.可能你是想业余时间学 app 开发拓宽财路,但是后面会发现市场上需要原生 app 开发的项目越来越少,小程序、跨平台等等越来越多地侵占了原生市场……
    所以我说,能不学就不学,过来人表示学 java\kotlin 的投入回报比是越来越低了
    matatabi
        15
    matatabi  
       2020-11-26 13:53:45 +08:00 via iPhone
    kotlin 或者 flutter
    aneostart173
        16
    aneostart173  
       2020-11-26 13:58:54 +08:00   1
    别学 android,如果你是学生,好好刷 leetcode 。
    不然就学前端技术。
    meteor957
        17
    meteor957  
       2020-11-26 13:59:44 +08:00
    Kotlin
    ll5270
        18
    ll5270  
    OP
       2020-11-26 14:11:32 +08:00
    @debuggerx 嗯 你说的这几点我认可 我学习主要是为了实现自己的需求+开拓财路吧
    lwlizhe
        19
    lwlizhe  
       2020-11-26 14:11:41 +08:00
    如果业余时间开发自己的 app 的话,还不如考虑下 web 端……没必要非要原生,web 端也可以生成 APP
    iFlicker
        20
    iFlicker  
       2020-11-26 14:29:32 +08:00
    想深入就 Java -> Kotlin
    想做点东西玩玩建议 Flutter
    cxknmsl
        21
    cxknmsl  
       2020-11-26 14:56:59 +08:00
    学 js,客户端三年内就要消失了。有后选后,无后选前。
    loading
        22
    loading  
       2020-11-26 15:07:47 +08:00 via Android
    搭车问:
    Flutter 似乎用 Dart 语言,好学吗?
    目前我前端比较懂,后端用 python 和 go 能写挺多东西,数据库什么的都会,是不是可以用几天时间整一下小程序?
    murmur
        23
    murmur  
       2020-11-26 15:09:14 +08:00
    @loading 你自己都回答你自己了,整一下 [微信] 小程序
    loading
        24
    loading  
       2020-11-26 15:15:59 +08:00 via Android
    @murmur 第一个问题呢
    loshine1992
        25
    loshine1992  
       2020-11-26 15:18:26 +08:00
    先学 Kotlin 做 App
    后面再补 Java 和 JVM 知识

    直接学 Java 来写 Android 是浪费生命
    但学 Kotlin 不学 Java 和 JVM 也是知其然不知其所以然
    yorkw
        26
    yorkw  
       2020-11-26 15:25:21 +08:00
    建议直接押宝 Google Fuchsia,Flutter 一步到位
    ericgui
        27
    ericgui  
       2020-11-26 15:25:39 +08:00
    如果纯粹想学着玩,不考虑就业,你想学什么就学什么。
    icyalala
        28
    icyalala  
       2020-11-26 15:29:36 +08:00
    flutter 的 Issues 都奔着 8K 去了,还只增不减。
    活跃当然是活跃,说成熟那是从何而来啊。。
    flyuq
        29
    flyuq  
       2020-11-26 15:29:55 +08:00
    别搞客户端了,没一点搞头。
    cxknmsl
        30
    cxknmsl  
       2020-11-26 15:36:19 +08:00   62
    有后选后,无后选前,无后无前,算法也甜,条件允许,无脑后端,前途无量,预定高管,其次前端,需求频繁,温饱有余,人上人难,算法数据,收入可观,最好硕博,高端饭碗,测试开发,也可一战,随手一点,月入过万,走投无路,回家种田,日出日落,生活美满,鬼迷心窍,来客户端,表面繁荣,实则内卷,工作清闲,面试火箭,不到三年,全部玩完,65 在后,绿帽在前,苦口婆心,金玉良言,奉劝诸位,擦亮双眼,有则改之,无则加勉。
    karott7
        31
    karott7  
       2020-11-26 15:54:12 +08:00
    借楼问下 安卓 kotlin 做分辨率适配麻烦吗?
    murmur
        32
    murmur  
       2020-11-26 15:58:52 +08:00
    @yorkw Fuchsia 这个东西看不到未来,主要是 android 太成功、开放了,没有换 Fuchsia 的理由
    admpubcom
        33
    admpubcom  
       2020-11-26 16:09:04 +08:00 via iPhone
    做客户端的话可以选择 uni-app, 各种小程序、app 一把梭,用来做基于 web 的项目还是比较不错的。
    lagoon
        34
    lagoon  
       2020-11-26 16:43:50 +08:00
    推荐 Flutter 。这么说应该会被人骂。

    如果确定 Android 的话,推荐 kotlin
    atx
        35
    atx  
       2020-11-26 16:59:32 +08:00
    html(webview)
    kiracyan
        36
    kiracyan  
       2020-11-26 17:01:07 +08:00
    推荐 kotlin 但是 java 你不可能不学
    Kamiyu0087
        37
    Kamiyu0087  
       2020-11-26 17:04:56 +08:00   1
    没有 java 基础建议还是 java
    有 java 基础的话建议 kotlin
    iFlicker
        38
    iFlicker  
       2020-11-26 17:14:55 +08:00
    @karott7 语言跟适配关系不大
    tiedan
        39
    tiedan  
       2020-11-26 17:18:32 +08:00
    @cxknmsl 大湿人!
    cashew
        40
    cashew  
       2020-11-26 17:22:56 +08:00
    只是自己玩的话,直接 Kotlin 。要是用来求职的话,Java 是必不可少的,甚至 Flutter 也要有所了解。
    Leonard
        41
    Leonard  
       2020-11-26 17:28:07 +08:00
    找工作的话建议学点别的,现在 iOS 和 Android 都不好找工作。
    自己玩的话无所谓,Java 和 Kotlin 都要学吧,不过两者差不多的。其实自己玩的话也还不如前端,一定要原生的场景其实比较少。
    chenyu8674
        42
    chenyu8674  
       2020-11-26 17:28:49 +08:00
    《第一行代码》
    新出的一版带 kotlin 教程
    m30102
        43
    m30102  
       2020-11-26 18:36:29 +08:00 via Android
    @cxknmsl 65 在后啥意思啊?
    Cbdy
        44
    Cbdy  
       2020-11-26 18:47:55 +08:00 via Android
    u1s1,Kotlin 一般要有 Java 基础
    acidsweet
        45
    acidsweet  
       2020-11-26 18:49:52 +08:00
    Java & Kotlin
    1. java 是首选的;
    2. kotlin 最好不要作为首选语言,繁杂的语法糖和过于自由的写法会提高入门难度
    3. flutter 等到入门再说,目前 flutter 在大厂的生产环境还是难堪大用,据我所之只有闲鱼是 allinflutter 的
    evitceted
        46
    evitceted  
       2020-11-26 19:31:32 +08:00
    flutter
    cxknmsl
        47
    cxknmsl  
       2020-11-26 20:09:40 +08:00
    @acidsweet,闲鱼已经回归原生了
    woctordho
        48
    woctordho  
       2020-11-26 20:23:07 +08:00 via Android
    Python
    reeco
        49
    reeco  
       2020-11-26 20:34:54 +08:00 via Android
    Java,想深入 Kotlin,还是绕不过 Java
    WngShhng
        50
    WngShhng  
       2020-11-26 20:41:49 +08:00
    学 java 吧,到时候后端也能用
    mlsnatalie
        51
    mlsnatalie  
       2020-11-26 20:56:03 +08:00 via Android
    @cxknmsl 三年后大家用什么呢?
    cvbnt
        52
    cvbnt  
       2020-11-26 21:00:15 +08:00 via Android
    @m30102 可能是“65 岁的老同志”
    fromzero
        53
    fromzero  
       2020-11-26 21:25:19 +08:00
    @acidsweet 闲鱼 all in 也谈不上,部分模块是的,商品详情和商品发布
    acidsweet
        54
    acidsweet  
       2020-11-26 21:41:41 +08:00
    @cxknmsl 我之前还记得闲鱼是唯一一个在主业务场景坚定的推 flutter 的团队,为啥又倒车回去了?
    acidsweet
        55
    acidsweet  
       2020-11-26 21:42:12 +08:00
    @fromzero 首页不是么,记得之前看过分享说首页也 flutter 化了才对啊
    cxknmsl
        56
    cxknmsl  
       2020-11-26 22:09:07 +08:00
    @acidsweet,你用下最新的闲鱼,明显跟以前不一样了,顺滑了很多,看知乎有人用开发者工具调试过,大部分页面都改回原生了
    lihongming
        57
    lihongming  
       2020-11-26 23:35:50 +08:00 via iPhone   1
    所有推非原生的都是数码爱好者,手机更新频繁。但别忘了普通人有很多还在用三五年前的手机,非原生对他们来说就是一种折磨。

    所以我一直有一只老手机,我做的东西(包括网页)都要在上面运行试试,觉得体验还可以才能发布。

    很多时候还要测试低速网络下的表现,把连接速度降至 2G,很多流行的 APP 会就此卡死,因为它们在启动时要上传 /下载一些数据,完不成就无法继续。更有甚者,卡在那儿是为了加载广告,简直是对用户的侮辱。

    早年 Facebook 的 app 也是 hybrid,后来小扎去了趟非洲,回来就改成了原生。这个故事很多人都听过吧?
    azh7138m
        58
    azh7138m  
       2020-11-26 23:40:43 +08:00 via iPhone
    @acidsweet 为啥倒车
    脉脉传闻是高 P 要他们改回 native
    我猜主要原因是现在内部轮子的 flutter 实现性能不是很理想
    james2013
        59
    james2013  
       2020-11-27 00:28:24 +08:00 via Android
    当然是 java,不管你是用 kotlin,flutter,react native,总会碰到 java.使用安卓的控件和代码时,也是 java 写的
    axxahut233
        60
    axxahut233  
       2020-11-27 01:03:42 +08:00
    好湿好湿
    axxahut233
        61
    axxahut233  
       2020-11-27 01:04:16 +08:00
    @cxknmsl 好湿好湿
    hyyou2010
        62
    hyyou2010  
       2020-11-27 06:24:35 +08:00
    如果真要学安卓,必然是 java 写原生,这是基础

    如果是临时对付一下,不涉及底层或硬件,可以考虑 React-->React Native,这个性价比最高
    laike9m
        63
    laike9m  
       2020-11-27 06:33:11 +08:00
    @murmur #32 Fuchsia 的未来主要取决于 Google 的决心。。
    constructor
        64
    constructor  
       2020-11-27 08:53:08 +08:00
    @cxknmsl 当头一棒 醍醐灌顶
    wozhizui
        65
    wozhizui  
       2020-11-27 09:12:27 +08:00   1
    @loading 语言层面,你要是有好多年 python 和 go 的经验,dart 不会有什么难度的。
    weixiangzhe
        66
    weixiangzhe  
       2020-11-27 09:20:28 +08:00
    业余时间学点脚本不好吗,开发个 app 就是个玩具
    viney
        67
    viney  
       2020-11-27 09:23:40 +08:00
    uni-app 不香吗
    zeropercenthappy
        68
    zeropercenthappy  
       2020-11-27 09:24:07 +08:00
    zeropercenthappy
        69
    zeropercenthappy  
       2020-11-27 09:24:54 +08:00
    不要听风就是雨。
    至少我看到咸鱼的 详情页、消息页、发布页 都还是 Flutter 。
    cky
        70
    cky  
       2020-11-27 09:42:00 +08:00
    PHP 是世界上最好的语言
    raptor
        71
    raptor  
       2020-11-27 09:42:32 +08:00
    现在还是 flutter 吧
    cky
        72
    cky  
       2020-11-27 09:43:35 +08:00
    认真回答,js 吧
    nutting
        73
    nutting  
       2020-11-27 09:45:25 +08:00
    纯安卓市场小了
    azhangbing
        74
    azhangbing  
       2020-11-27 09:55:17 +08:00
    @cxknmsl #30 老哥真是个人才
    cxknmsl
        75
    cxknmsl  
       2020-11-27 10:26:19 +08:00
    @azhangbing,哎,复制粘贴的,但是做 iOS 两年了,确实深有体会,只能说早转早脱坑
    ClaudeCode
        76
    ClaudeCode  
       2020-11-27 10:44:12 +08:00
    建议学 flutter 的 请问你们生产环境用上 flutter 了吗
    开口闭口就是大厂用了

    个人觉得学前端后端都比移动端有前途.
    nexo
        77
    nexo  
       2020-11-27 11:34:44 +08:00 via iPhone
    @yaocai321 小黄鱼就是 flutter 败笔的活生生例子
    mlsnatalie
        78
    mlsnatalie  
       2020-11-27 11:56:21 +08:00 via Android
    @cxknmsl 老哥转什么了?
    durban126
        79
    durban126  
       2020-11-27 12:14:56 +08:00
    推荐 kotlin
    djoiwhud
        80
    djoiwhud  
       2020-11-27 12:39:28 +08:00 via Android   1
    内地就别碰移动端开发了。2012-2017 这五年培训出来的那庞大的人群还没有消化完呢。
    MikeFeng
        81
    MikeFeng  
       2020-11-27 16:52:08 +08:00
    @yorkw 苹果 M1 出来之后,感觉谷歌这东西不会有多大市场
    0x8192dd
        82
    0x8192dd  
       2020-11-27 17:35:41 +08:00   2
    如果单纯说走上 Android 开发这条路,那必然是 Java 。如果你没有踏上这条路的计划而只是单纯的想做个什么东西在移动端上用,我推荐还是用前端技术栈解决。

    首先 kotlin 的定位,就是“better java”,你一定要熟 Java,才能用好 kotlin,否则 kotlin 的糖,对于你来说就是坑,Java 的坑,你要用 kotlin 来踩一遍,而且是 hard way 。
    其次是市场生态上,绝大部分 Android 岗位 Java 属于必须项,kotlin 属于加分项。国内的客户端生态还没有到纯 kotlin 能搞定的地步。当年谷歌说 kotlin 支持与 Java 一样是 first priority,国内一帮培训机构当场高潮:kotlin 是官方语言了,Java 马上就要被淘汰了!这几年过去了,然后呢?

    至于推荐你上 flutter 、RN 的,说的难听点,叶公好龙不过分,除非你做的 app 根本不涉及任何硬件,否则不了解 native 就去做 hybrid 绝对是撞的一头包,对于熟悉 native 的客户端老鸟来说就是个小槛的东西,在萌新面前就是一座大山。
    fansangg
        83
    fansangg  
       2020-11-27 20:02:08 +08:00
    kotlin 肯定是首选,没 java 基础的话建议先花上个几天时间补一补 java 基础,再上 kotlin 。
    不推荐 flutter
    Rehtt
        84
    Rehtt  
       2020-11-27 20:42:22 +08:00   1
    @loading dart 挺好学的,挺简单的
    2908701881
        85
    2908701881  
       2020-11-27 20:43:16 +08:00 via Android
    各位大佬我想问一下如果想做脚本,应该学哪方面的语言,没有从业经验。就想自己学个语言,
    Rehtt
        86
    Rehtt  
       2020-11-27 20:55:01 +08:00
    @cxknmsl 实践是检验真理的唯一标准。刚刚自己调试过,详情页、消息聊天页、发布页等这几个核心业务页面都是用的 flutter
    systemcall
        87
    systemcall  
       2020-11-27 21:38:35 +08:00
    @lihongming #57
    微信 OS 的团队可不会这么想
    2 年前的旗舰都卡,当年的千元机也卡。如果是很多人在用的、2-3 年的千元机,卡到爆炸
    功耗也大,不知道到底是怎么想的
    那些独占的、用着私有 API 的 PWA,也比 twitter, youtube 之类的网页版卡得多:前者在当年的旗舰上跑和后者在几年前的千元机上跑,差不多流畅。而都换成稍微老点的千元机甚至百元机的话,前者几乎无法使用,后者基本上算得上流畅
    大概那些公司的管理层每年都会换最新的 iPhone,所以觉得给用户加上一大堆的遥测、广告没什么事吧
    lingyi95
        88
    lingyi95  
       2020-11-27 22:12:08 +08:00 via iPhone
    Flutter
    NSChris
        89
    NSChris  
       2020-11-27 22:35:30 +08:00
    现在我公司的项目只要是简单的页面还是能考虑 flutter 但是稍微要与底层交互的还是只有原生了
    flutter 的坑是真的多
    pC0oc4EbCSsJUy4W
        90
    pC0oc4EbCSsJUy4W  
       2020-11-27 23:21:11 +08:00
    推荐 flutter 的,贵司什么产品在用啊
    stardust21
        91
    stardust21  
       2020-11-28 00:19:07 +08:00
    Java + Koltin,基础的语法熟悉下就可以跑官方 Demo 玩了,主要还是看官方文档熟悉 Android 的概念和 API
    只是做小工具玩的话就够了,别整其他的,先学会走再跑吧
    Lemeng
        92
    Lemeng  
       2020-11-28 00:55:12 +08:00
    有 java 基础。学 koltin 是最好的选择
    laminux29
        93
    laminux29  
       2020-11-28 01:05:51 +08:00
    只是业余学习的话,建议找一本安卓开发快速入门,那种从一个小 Demo 入门的例子。

    找书有个技巧,去当当网,以这类关键字搜书,看销量与评论。

    你可能需要学习:
    Java 、安卓系统、数据库。
    dnL
        94
    dnL  
       2020-11-28 09:05:45 +08:00   1
    v2 太多自以为是的人在这制造恐慌了
    abear
        95
    abear  
       2020-11-28 09:47:37 +08:00
    @cxknmsl 哪里知道的
    xxoolltt
        96
    xxoolltt  
       2020-11-28 10:32:46 +08:00 via iPhone
    @karott7 适配跟语言无关
    ijrou
        97
    ijrou  
       2020-11-28 11:16:56 +08:00
    其实 app 客户端前景感觉不太明朗。。。
    karott7
        98
    karott7  
       2020-11-28 12:00:36 +08:00
    @xxoolltt 主要是我公司安卓做页面贼慢,所以问问
    karott7
        99
    karott7  
       2020-11-28 12:01:21 +08:00
    @abear 最初是在脉脉职言里看到的,然后有人在微博分享
    Jaeden
        100
    Jaeden  
       2020-11-28 13:19:56 +08:00 via iPhone
    Java 吧,kotlin 还是 Java 的东西
    1  2  
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2977 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 13:35 PVG 21:35 LAX 06:35 JFK 09:35
    Do have faith in what you're doing.
    ubao 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