如何入门 Android 开发

2025 年 1 月 15 日
 rrubick

先不说是不是夕阳行业了,不会 Android 开发我肯定马上失业了。

入行 10 年,经历过 OC 、swift 、RN 、Vue 、flutter ,目前 kotlin&java ( Android )我感觉最难了。什么 binding 、adpapter 、onresult 、依赖注入啥的,往往崩溃于点了一个方法发现跳转到了库里面,流程直接中断了。

已经看了郭霖的《第一行代码》,有了一些了解但不多。网上搜视频都是几年前的。

求大佬推荐下视频和书籍

11186 次点击
所在节点    Android
68 条回复
hjw45611
2025 年 1 月 15 日
Android 原生开发已经入行 9 年了,要说最新的教学视频那估计没有,毕竟零零散散每年都出新特性新框架
建议看第一行代码,先用 java 写,了解四大组件生命周期之类的,再把基础的组件,数据库,网络请求都搞明白了,再代码转成 kotlin ,也就知道 kotlin 基本怎么写了,后期搜搜 kotlin 的语法糖,还有一些扩展库。最后那些 mvp 、mvvm 都算是优化开发的架构,找找官方 demo 看看就可以了
hohoho
2025 年 1 月 15 日
楼主应该是不习惯或不适应。多写写代码,熟悉了就好了,毕竟项目需求开发第一,刚开始耐心慢点。至于原理,放到后面再了解、深究呗
Esen
2025 年 1 月 15 日
用 compose 吧,简单多了,老项目也能 compose 混合开发
location123
2025 年 1 月 15 日
初学就看官方文档吧 https://developer.android.google.cn/guide/components/fundamentals?hl=zh-cn
推荐一个 B 站 up 主 张大锤_ bigchuii 有基本的 Android Jetpack 基础入门教程
location123
2025 年 1 月 15 日
时间足够的话学 compose 会好很多
superkeke
2025 年 1 月 15 日
相比 app ,我经常感慨,web 端真是又简单又爽
FireKey
2025 年 1 月 15 日
只是开发 app 不需要学,用 ai 就能搞定.已经尝试过用 windsurf 写一个完整的安卓应用,在我对安卓一窍不通的情况下.
xloger
2025 年 1 月 15 日
你主要的困难不在于“入门 Android”,看着你已经入门了。
你的困难点在于并不是从头写一个 Android 项目(这点我相信你问题不大了),而是接手一个成熟项目,它里面已经有很多进阶的用法了。而每个都是要单独学习的(虽然拆开来并不高)。
建议你先整理一下这个项目的技术栈,然后了解一下它们分别是为了解决什么样的问题。有了思路后才更有方向。

Binding:我默认你说的是 ViewBinding 了。因为 Android 没有采用 DSL 写 UI ,而是 XML 单独实现样式,这个在当年比较流行。那么 Fragment 需要操控 XML 里的东西,以前需要手动 findViewById ,现在用 ViewBinding 就可以简化这个流程。
如果是 DataBinding ,那我觉得那破玩意并不好用,少写一点点代码反而整体更绕了更难查了。

Adapter:写列表,传统方式自然是直接一个循环一把梭,你用 LinearVIew 手动加 ViewView
cenbiq
2025 年 1 月 15 日
compose ,老的那套别学了,我也是前端兼容会写 Android ,写 compose 贼 6 很像 react hooks ,老的那套 xml 、adapter 什么的写不了一点,而且也快淘汰了
HojiOShi
2025 年 1 月 15 日
@magic3584 #17 新学的话,如果是开发新项目那还好说,维护原有的项目实在是太复杂了,只能说祝你好运。我目前维护的项目十年前的老东西都还有,还不注重复用,写得这一坨那一坨的。只能先申请两个月的时间用于熟悉项目。
xloger
2025 年 1 月 15 日
@xloger

Adapter:写列表,传统方式自然是直接一个循环一把梭,你用 LinearView 手动加 ViewView 一样能实现相关效果。而 RecycleView 加 Adapter 实际上是为了性能更好,复用 View ,所以才整出这个弯弯绕绕。适应一下就好。

OnResult:不确定你说的是生命周期还是 RxJava 相关的。前者那还是能肉眼感受到是降低理解负担的,后者碰巧我一直没用过就不说了。

依赖注入:依赖注入用得不好确实会比较困扰,但是它有助于培养你写代码的习惯。它很重要的一点是“职责分离”,你需要先了解整个项目的结构,然后遇到 Bug 了能快速定位出属于某个模块,而不是从崩溃处一路看过来然后感觉怎么这么绕啊。
thingingWoods
2025 年 1 月 15 日
cursor
xz410236056
2025 年 1 月 15 日
iOS 转安卓??? iOS 完犊子了也绝不可能是安卓干掉的,你还不如转前端呢

当然转机器学习是最好的
Bootis
2025 年 1 月 15 日
拉一个开源项目用 cursor 看和改,不会就问 ai ,有 ai 这个无限耐心的老师没有学不会的语言的框架。
Kamiyu0087
2025 年 1 月 15 日
如果用 Compose 的话,binding 完全不用学,
如果用传统 xml, 那用 viewBinding 就行了,dataBinding 推荐不了一点
Adapter 要学一下
依赖注入不学也没啥问题
southpark
2025 年 1 月 15 日
@wnpllrzodiac #11 羡慕啊,说的都对
LLLeo
2025 年 1 月 15 日
你是有编程基础的了,建议是 github 上找个适合的项目学,跟着自己做一个类似的。
不过现在都用 Compose 了,又是另外一套东西了。
monkeylmj
2025 年 1 月 15 日
现在入门简单多了,可以利用 ChatGPT 结合实际项目,不会的技术点问下 AI ,大概的框架差异都能给你讲通,不像之前还得搜索引擎搜索过滤半天。
tool2dx
2025 年 1 月 15 日
有 GPT 后,学习门槛变非常低,只要你肯花时间学就行了,
iOCZS
2025 年 1 月 15 日
为什么不用跨平台的,flutter 或者 RN ?

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

https://v2ex.ih06.com/t/1105148

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

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

© 2021 V2EX