先不说是不是夕阳行业了,不会 Android 开发我肯定马上失业了。
入行 10 年,经历过 OC 、swift 、RN 、Vue 、flutter ,目前 kotlin&java ( Android )我感觉最难了。什么 binding 、adpapter 、onresult 、依赖注入啥的,往往崩溃于点了一个方法发现跳转到了库里面,流程直接中断了。
已经看了郭霖的《第一行代码》,有了一些了解但不多。网上搜视频都是几年前的。
求大佬推荐下视频和书籍
2
liuzimin 3 天前
“往往崩溃于点了一个方法发现跳转到了库里面,流程直接中断了”
你别点库方法就不会呀,你这种是手撕源码的玩法了。 |
3
Lockroach 3 天前
学过前端确实感觉安卓明显更难,心智负担更重一些。我学习的时候也是看第一行代码入门,然后自己搞一些开发玩具项目巩固一下。
另外,感觉安卓的文档挺奇怪的,不是很好理解,而且会在讲解概念 A 的时候提到概念 B 和 C 。点进概念可能还会进入未翻译的 reference |
4
duhb 3 天前 1
挺逗的,入行 10 年,写过这么多语言。竟然不知道怎么学习一门新技术?
|
5
xubingok 3 天前 3
2012 年入门 android,2020 年转前端...没想到还有人跟我走反方向的路哈哈.
视频和书籍好像也没看什么,你说的问题其实就是几个概念而已. binding 是那个 databinding 吧,在 xml 里面直接塞数据.就是 mvvm 的一种实现形式而已.现在感觉挺像 vue 的模板语法. adapter 是适配器模式.在 android 里面大量应用.主要用于大量重复元素时的 UI 复用,流畅性吊打 web 的显著特征之一. onresult 是不是那个 activity 跳转后的数据接收.这只能说就是 android 的一种机制了.类似还有很多 onXXX 之类的.以前好像有句话很好的反应 android 里面的这种回调机制:'Don't Call Me I'll Call You'.activity 都是反射创建的,到了某个生命周期,自然会触发对应的方法通知你. 依赖注入是面向对象的概念.项目解耦的大杀器.这个就不多解释了. 关于调试,你可以找个原生系统的手机,当时我用的是 pixel 系列.把编译 sdk 调整为跟开发机相同的版本,这样 debug 时可以直接跳转到源码里面去,不会出现那种国产机魔改系统导致跳转源码后行数对不上的场面. |
6
qwwuyu 3 天前
初学难点估计还是熟悉 API,刚开始可以避开依赖注入路由这些不必要的.
找简单的开源项目跑起来,读下流程,照着写,拷贝一些工具和组件到自己项目. 快速入手就找一个基础框架,直接删删改改去写代码. 很多问题 AI 大部分都可以解决,难点还是经验 UI 业务那些... |
7
DIO 3 天前
一定要用新特性吗,阅读源码也太高端了。安卓这坨东西谷歌自己都整不明白吧,三年一小更五年一大更,没有深度学习的必要和价值,能把功能实现项目跑起来就算成功。
https://www.douban.com/doulist/153038054/ |
8
godloveplay 3 天前
我写 java 的,前天有需求要搞 android pda 扫码,上传到服务端然后校验数据。 用 deepseek v3 ,上传了第三方扫码的 demo 作为附件,然后开始让它给我来点 activity 代码和布局文件。
一天就弄完了,感觉再和他一起练习练习,就能入门了。 |
9
jrtzxh020 3 天前
前段时间找过一段时间,基本没有新的书籍,也是只能看第一行代码。。视频的话 B 站也只有零零碎碎的。现在没啥人搞安卓课程
|
10
wnpllrzodiac 3 天前 via Android
鸿蒙啊,安卓都要没了
|
11
wnpllrzodiac 3 天前 via Android
现在都是 flutter uniapp ,原生没人搞了
|
12
godloveplay 3 天前
|
13
meteor957 3 天前 via Android
有些技术都要被淘汰了,学了也浪费时间。compose 能代替不少老的技术
|
16
zzjun 3 天前
用 Compose 呗
|
18
syubo2810 3 天前
既然都是新学,建议鸿蒙一起学了
|
19
ice000 3 天前
你这有现成的项目哇,先从捋代码流程,改 Bug 入手,Android studio debug 功能我觉得很友好,除了 native 部分
|
20
werls 3 天前
现在基本都是 Jetpack compose 和 Android framework 、新学的起码也是 Flutter 吧。
|
21
hjw45611 3 天前
Android 原生开发已经入行 9 年了,要说最新的教学视频那估计没有,毕竟零零散散每年都出新特性新框架
建议看第一行代码,先用 java 写,了解四大组件生命周期之类的,再把基础的组件,数据库,网络请求都搞明白了,再代码转成 kotlin ,也就知道 kotlin 基本怎么写了,后期搜搜 kotlin 的语法糖,还有一些扩展库。最后那些 mvp 、mvvm 都算是优化开发的架构,找找官方 demo 看看就可以了 |
22
hohoho 3 天前
楼主应该是不习惯或不适应。多写写代码,熟悉了就好了,毕竟项目需求开发第一,刚开始耐心慢点。至于原理,放到后面再了解、深究呗
|
23
Esen 3 天前
用 compose 吧,简单多了,老项目也能 compose 混合开发
|
24
location123 3 天前
初学就看官方文档吧 https://developer.android.google.cn/guide/components/fundamentals?hl=zh-cn
推荐一个 B 站 up 主 张大锤_ bigchuii 有基本的 Android Jetpack 基础入门教程 |
25
location123 3 天前
时间足够的话学 compose 会好很多
|
26
superkeke 3 天前
相比 app ,我经常感慨,web 端真是又简单又爽
|
27
FireKey 3 天前
只是开发 app 不需要学,用 ai 就能搞定.已经尝试过用 windsurf 写一个完整的安卓应用,在我对安卓一窍不通的情况下.
|
28
xloger 3 天前 3
你主要的困难不在于“入门 Android”,看着你已经入门了。
你的困难点在于并不是从头写一个 Android 项目(这点我相信你问题不大了),而是接手一个成熟项目,它里面已经有很多进阶的用法了。而每个都是要单独学习的(虽然拆开来并不高)。 建议你先整理一下这个项目的技术栈,然后了解一下它们分别是为了解决什么样的问题。有了思路后才更有方向。 Binding:我默认你说的是 ViewBinding 了。因为 Android 没有采用 DSL 写 UI ,而是 XML 单独实现样式,这个在当年比较流行。那么 Fragment 需要操控 XML 里的东西,以前需要手动 findViewById ,现在用 ViewBinding 就可以简化这个流程。 如果是 DataBinding ,那我觉得那破玩意并不好用,少写一点点代码反而整体更绕了更难查了。 Adapter:写列表,传统方式自然是直接一个循环一把梭,你用 LinearVIew 手动加 ViewView |
29
cenbiq 3 天前
compose ,老的那套别学了,我也是前端兼容会写 Android ,写 compose 贼 6 很像 react hooks ,老的那套 xml 、adapter 什么的写不了一点,而且也快淘汰了
|
30
HojiOShi 3 天前
@magic3584 #17 新学的话,如果是开发新项目那还好说,维护原有的项目实在是太复杂了,只能说祝你好运。我目前维护的项目十年前的老东西都还有,还不注重复用,写得这一坨那一坨的。只能先申请两个月的时间用于熟悉项目。
|
31
xloger 3 天前
@xloger
Adapter:写列表,传统方式自然是直接一个循环一把梭,你用 LinearView 手动加 ViewView 一样能实现相关效果。而 RecycleView 加 Adapter 实际上是为了性能更好,复用 View ,所以才整出这个弯弯绕绕。适应一下就好。 OnResult:不确定你说的是生命周期还是 RxJava 相关的。前者那还是能肉眼感受到是降低理解负担的,后者碰巧我一直没用过就不说了。 依赖注入:依赖注入用得不好确实会比较困扰,但是它有助于培养你写代码的习惯。它很重要的一点是“职责分离”,你需要先了解整个项目的结构,然后遇到 Bug 了能快速定位出属于某个模块,而不是从崩溃处一路看过来然后感觉怎么这么绕啊。 |
32
thingingWoods 3 天前
cursor
|
33
xz410236056 3 天前
iOS 转安卓??? iOS 完犊子了也绝不可能是安卓干掉的,你还不如转前端呢
当然转机器学习是最好的 |
34
Bootis 3 天前
拉一个开源项目用 cursor 看和改,不会就问 ai ,有 ai 这个无限耐心的老师没有学不会的语言的框架。
|
35
Kamiyu0087 3 天前 1
如果用 Compose 的话,binding 完全不用学,
如果用传统 xml, 那用 viewBinding 就行了,dataBinding 推荐不了一点 Adapter 要学一下 依赖注入不学也没啥问题 |
36
southpark 3 天前
@wnpllrzodiac #11 羡慕啊,说的都对
|
37
LLLeo 3 天前
你是有编程基础的了,建议是 github 上找个适合的项目学,跟着自己做一个类似的。
不过现在都用 Compose 了,又是另外一套东西了。 |
38
monkeylmj 3 天前
现在入门简单多了,可以利用 ChatGPT 结合实际项目,不会的技术点问下 AI ,大概的框架差异都能给你讲通,不像之前还得搜索引擎搜索过滤半天。
|
39
tool2dx 3 天前
有 GPT 后,学习门槛变非常低,只要你肯花时间学就行了,
|
40
iOCZS 3 天前
为什么不用跨平台的,flutter 或者 RN ?
|
41
CharmingCheung 3 天前
我入行的时候 Retrofit 都还没面世,最流行的图片库还是 UIL ,都是这样一步一步过来的。
先学好基础,从基本的 MVC 开始写,搞明白四大组件、权限与运行时权限、手撸 xml 、手写 findViewById 、随心所欲写自定义 View 做起。 你说的好多都是后面才有的高级封装或者是新玩法。这些玩意不会,基础学好了也不影响你做出一个合格的 App ,你回过头来回发现写 RN 、Flutter 或者 Compose 遇到没有的第三方库或者 View 组件都可以自己撸一个。 |
42
ChangQin 3 天前
新手直接学 Compose 开发吧,跟 react 的语法很像,看这个 https://developer.android.google.cn/courses/pathways/compose?hl=zh-cn
|
43
rxswift 2 天前
跟 ChatGPT 学的
|
44
cokepro 2 天前
曾经也是为了维护一个历史项目,自学的 android ,然后用 jetpack 重写了整个项目。学习路径:《第一行代码》第三版( Kotlin )+bilibili 的 Jetpack 视频。https://space.bilibili.com/137860026/lists 这 2 个教程看完入门应该是没问题了。
|
45
mythace 2 天前
直接外包给我吧 我给你维护
|
46
kenshinhu 2 天前
如果你熟悉 swift 的话,那写 kotlin 应该不也难。
现在把 kotlin 的代码迁移到 swift ,发现使用 swift 的心智负担也蛮大的 |
47
cpalead 2 天前
别学了,找不到工作的
|
48
Jinnrry 2 天前 via iPhone
第一行代码写得很好啊,我大学的时候,只有 java 基础就能看懂,而且看完就能写出东西。
你有这么多基础不应该学不明白啊。安卓这些基础概念很好懂,难的是各种 api 的傻逼兼容性,这个版本好好的,下个版本就不让用了,又得换新的 |
49
mioktiar56 2 天前
找个开源项目,依葫芦画瓢就会了
|
50
Folayi 2 天前
第一行代码随便一看,三四天看完之后直接啃项目就行,哪块代码有疑惑直接 GPT 问,GPT 比现在的“技术书”语言直白多了,效率还高。
|
51
yatoooon 2 天前 via Android
Android 生态已经碎完了,茴字有十八种写法
|
52
liaosong 2 天前
。。十年前问这个问题差不多
|
53
ThomasKim 2 天前
《第一行代码》不仅仅要看完,里面的代码自己可以不看示例代码,完全可以借助文档可以敲出来。
到这个程度后,去 GitHub 上找一个使用现代流行框架并且 star 人数比较高的项目模仿,一般这类项目都会把当前主流的技术加进去,可以像素级模仿,也可以根据自己需要的部分去模仿,这么做的目的是为了熟悉市面上的主流技术栈。 完成上一步后,安卓开发基础有了,主流技术栈也知道了,接着就是写一个 APP ,而且是写一个自己比较常用的 APP ,当年我学习跨平台的时候,当时我自己使用率最高的 APP 是《滴答清单》,然后就自己写个脑图,把功能模块拆分一下,然后一个一个完成(实际上也就完成个六七成,杂七杂八功能太多了),当然媲美原版 APP 是不可能的,又没有专门的设计师,而且哪怕是我每天都在使用,在写代码的时候发现,还有不少功能我都没用过,就这样一步一步写下去,中途会无数次要去找搜索引擎,你可能运气好,因为现在 AI 满大街走了,我那会儿只能去谷歌找答案。 |
54
timelessg 2 天前 via Android
别看 Android view 了,直接上 compose
|
55
a1210968738 2 天前 via Android 2
楼主说了维护现有项目,这么多人说别用 view 用 compose 的…
接触一个新项目,app 某个界面没法找到具体代码位置的,可以尝试接入 CodeLocator ( https://github.com/bytedance/CodeLocator ),方便快速找到你看到的每一处 UI 的相关代码,这样可以在没有文档没人指导的情况下,快速按需熟悉项目。 |
56
LanhuaMa 2 天前
@wnpllrzodiac #10 就是。学什么英文,再过二十年要用红旗插满全世界
|
57
cnliangwei 2 天前 1
你可以写一个最简单的 TODO 小项目出来,然后过程中把用到的技术一个个摸透。我当初就是这么学的。当然这种方式学可能不够系统,但是你入门了,再去系统学会熟路很多。我当初的目的是为了实现我想要的产品功能,不是为了找工作,所以不在乎是否系统,能达到目的就行。如果为了找工作,还是要系统点,毕竟要回答面试中各种可能的刁钻问题
|
58
daisyliudi 2 天前
@ThomasKim 你说的最靠谱。点赞收藏
|
59
OneLiteCore 2 天前 1
8 年 Android 开发表示路过。现在的话建议起步就学 Compose 了,最近也有 Compose 兼容鸿蒙的新闻所以这是一个能够包揽移动端的技术。但并不是说原生的开发就没用了,对于权限、通知栏或者桌面小部件这种和系统强相关的功能的话还是需要有相应的原生开发的知识的。如果如果想要入门原生开发的话我不建议看书而建议直接实战,去开发一个 TODO 或者记事本,这样列表、数据库或者文件 IO 、异步加载和 View 基本都接触了,遇到问题了再去找书或者找博客来解决,解决问题的过程就是学习的过程。
|
60
magic3584 OP |
61
ninjamk200 1 天前
看了下发帖时间
|
62
a1210968738 1 天前 via Android
@magic3584 找不到库应该和 gradle 版本无关,是不是没有配置相关的 repository ?
|
63
behindeye 1 天前
讲真,光 android studio 那套 gradle 就能把入门的很多人搞垮,再加上 java 环境、kotlin 版本、甚至一些 compact 库,就问你晕不晕
|
64
magic3584 OP @a1210968738 #62
不清楚,那个库好几年没更新了,gradle 差了好多版本,不知道还能不能用 |
65
a1210968738 1 天前 via Android
@behindeye 你现在用起来有什么报错信息吗?
|
66
behindeye 1 天前
@a1210968738 我可以解决,我指的是刚入门新手的,不知道怎么处理
|
67
a1210968738 1 天前 via Android
@behindeye 回复错人了,我本来要回复 op 的😂
|