如何入门 Android 开发
先不说是不是夕阳行业了,不会 Android 开发我肯定马上失业了。
入行 10 年,经历过 OC 、swift 、RN 、Vue 、flutter ,目前 kotlin&java ( Android )我感觉最难了。什么 binding 、adpapter 、onresult 、依赖注入啥的,往往崩溃于点了一个方法发现跳转到了库里面,流程直接中断了。
已经看了郭霖的《第一行代码》,有了一些了解但不多。网上搜视频都是几年前的。
求大佬推荐下视频和书籍
目前是维护现有项目,所以文中的 binding 、adpapter 、onresult 、依赖注入 都是现实中遇到的。
developer.android.com/?hl=zh-cn
“往往崩溃于点了一个方法发现跳转到了库里面,流程直接中断了”
你别点库方法就不会呀,你这种是手撕源码的玩法了。
学过前端确实感觉安卓明显更难,心智负担更重一些。我学习的时候也是看第一行代码入门,然后自己搞一些开发玩具项目巩固一下。
另外,感觉安卓的文档挺奇怪的,不是很好理解,而且会在讲解概念 A 的时候提到概念 B 和 C 。点进概念可能还会进入未翻译的 reference
挺逗的,入行 10 年,写过这么多语言。竟然不知道怎么学习一门新技术?
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 时可以直接跳转到源码里面去,不会出现那种国产机魔改系统导致跳转源码后行数对不上的场面.
初学难点估计还是熟悉 API,刚开始可以避开依赖注入路由这些不必要的.
找简单的开源项目跑起来,读下流程,照着写,拷贝一些工具和组件到自己项目.
快速入手就找一个基础框架,直接删删改改去写代码.
很多问题 AI 大部分都可以解决,难点还是经验 UI 业务那些...
一定要用新特性吗,阅读源码也太高端了。安卓这坨东西谷歌自己都整不明白吧,三年一小更五年一大更,没有深度学习的必要和价值,能把功能实现项目跑起来就算成功。
www.douban.com/doulist/153038054/
我写 java 的,前天有需求要搞 android pda 扫码,上传到服务端然后校验数据。 用 deepseek v3 ,上传了第三方扫码的 demo 作为附件,然后开始让它给我来点 activity 代码和布局文件。
一天就弄完了,感觉再和他一起练习练习,就能入门了。
前段时间找过一段时间,基本没有新的书籍,也是只能看第一行代码。。视频的话 B 站也只有零零碎碎的。现在没啥人搞安卓课程
鸿蒙啊,安卓都要没了
现在都是 flutter uniapp ,原生没人搞了
前置 翻了一下 了解了一下基础内容
《第一行代码》第二版
b 站 up: space.bilibili.com/204248002?spm_id_from=333.337.0.0
有些技术都要被淘汰了,学了也浪费时间。compose 能代替不少老的技术
#4
请尽量让您的回复有帮助。
如果没有的话,可以省点铜币。
#2
主要是一些代理和回调方法,不像 iOS 那样明确的指定 delegate,所以不知道回调的落点在哪里
用 Compose 呗
#5
#6
目前是接着之前项目改,主题里说的问题项目里都有,所以新手看着脑袋大
既然都是新学,建议鸿蒙一起学了
你这有现成的项目哇,先从捋代码流程,改 Bug 入手,Android studio debug 功能我觉得很友好,除了 native 部分
现在基本都是 Jetpack compose 和 Android framework 、新学的起码也是 Flutter 吧。
Android 原生开发已经入行 9 年了,要说最新的教学视频那估计没有,毕竟零零散散每年都出新特性新框架
建议看第一行代码,先用 java 写,了解四大组件生命周期之类的,再把基础的组件,数据库,网络请求都搞明白了,再代码转成 kotlin ,也就知道 kotlin 基本怎么写了,后期搜搜 kotlin 的语法糖,还有一些扩展库。最后那些 mvp 、mvvm 都算是优化开发的架构,找找官方 demo 看看就可以了
楼主应该是不习惯或不适应。多写写代码,熟悉了就好了,毕竟项目需求开发第一,刚开始耐心慢点。至于原理,放到后面再了解、深究呗
用 compose 吧,简单多了,老项目也能 compose 混合开发
初学就看官方文档吧 developer.android.google.cn/guide/components/fundamentals?hl=zh-cn
推荐一个 B 站 up 主 张大锤_ bigchuii 有基本的 Android Jetpack 基础入门教程
时间足够的话学 compose 会好很多
相比 app ,我经常感慨,web 端真是又简单又爽
只是开发 app 不需要学,用 ai 就能搞定.已经尝试过用 windsurf 写一个完整的安卓应用,在我对安卓一窍不通的情况下.
你主要的困难不在于“入门 Android”,看着你已经入门了。
你的困难点在于并不是从头写一个 Android 项目(这点我相信你问题不大了),而是接手一个成熟项目,它里面已经有很多进阶的用法了。而每个都是要单独学习的(虽然拆开来并不高)。
建议你先整理一下这个项目的技术栈,然后了解一下它们分别是为了解决什么样的问题。有了思路后才更有方向。
Binding:我默认你说的是 ViewBinding 了。因为 Android 没有采用 DSL 写 UI ,而是 XML 单独实现样式,这个在当年比较流行。那么 Fragment 需要操控 XML 里的东西,以前需要手动 findViewById ,现在用 ViewBinding 就可以简化这个流程。
如果是 DataBinding ,那我觉得那破玩意并不好用,少写一点点代码反而整体更绕了更难查了。
Adapter:写列表,传统方式自然是直接一个循环一把梭,你用 LinearVIew 手动加 ViewView
compose ,老的那套别学了,我也是前端兼容会写 Android ,写 compose 贼 6 很像 react hooks ,老的那套 xml 、adapter 什么的写不了一点,而且也快淘汰了
#17 新学的话,如果是开发新项目那还好说,维护原有的项目实在是太复杂了,只能说祝你好运。我目前维护的项目十年前的老东西都还有,还不注重复用,写得这一坨那一坨的。只能先申请两个月的时间用于熟悉项目。
Adapter:写列表,传统方式自然是直接一个循环一把梭,你用 LinearView 手动加 ViewView 一样能实现相关效果。而 RecycleView 加 Adapter 实际上是为了性能更好,复用 View ,所以才整出这个弯弯绕绕。适应一下就好。
OnResult:不确定你说的是生命周期还是 RxJava 相关的。前者那还是能肉眼感受到是降低理解负担的,后者碰巧我一直没用过就不说了。
依赖注入:依赖注入用得不好确实会比较困扰,但是它有助于培养你写代码的习惯。它很重要的一点是“职责分离”,你需要先了解整个项目的结构,然后遇到 Bug 了能快速定位出属于某个模块,而不是从崩溃处一路看过来然后感觉怎么这么绕啊。
cursor
iOS 转安卓??? iOS 完犊子了也绝不可能是安卓干掉的,你还不如转前端呢
当然转机器学习是最好的
拉一个开源项目用 cursor 看和改,不会就问 ai ,有 ai 这个无限耐心的老师没有学不会的语言的框架。
如果用 Compose 的话,binding 完全不用学,
如果用传统 xml, 那用 viewBinding 就行了,dataBinding 推荐不了一点
Adapter 要学一下
依赖注入不学也没啥问题
#11 羡慕啊,说的都对
你是有编程基础的了,建议是 github 上找个适合的项目学,跟着自己做一个类似的。
不过现在都用 Compose 了,又是另外一套东西了。
现在入门简单多了,可以利用 ChatGPT 结合实际项目,不会的技术点问下 AI ,大概的框架差异都能给你讲通,不像之前还得搜索引擎搜索过滤半天。
有 GPT 后,学习门槛变非常低,只要你肯花时间学就行了,
为什么不用跨平台的,flutter 或者 RN ?
我入行的时候 Retrofit 都还没面世,最流行的图片库还是 UIL ,都是这样一步一步过来的。
先学好基础,从基本的 MVC 开始写,搞明白四大组件、权限与运行时权限、手撸 xml 、手写 findViewById 、随心所欲写自定义 View 做起。
你说的好多都是后面才有的高级封装或者是新玩法。这些玩意不会,基础学好了也不影响你做出一个合格的 App ,你回过头来回发现写 RN 、Flutter 或者 Compose 遇到没有的第三方库或者 View 组件都可以自己撸一个。
新手直接学 Compose 开发吧,跟 react 的语法很像,看这个 developer.android.google.cn/courses/pathways/compose?hl=zh-cn
在去年 Ai 爆火过后, 在 Ai 的推动下应该加强 Ar 增强现实的发展 一直持有 2 个域名,等待他们的升值。 av.ar im.ar 等 AI 接上机械臂开始送外卖的时…
实验室一台服务器大概有 10 多个人用,以前都是使用一个账号,大家合理分配时间。 现在老师要求各自建立自己的账号,但是有一个问题,因为大家的运行环境不一样,包括 cuda/py…
今年最抽象的事情没有之一,申请苹果开发者账号,在同意协议那里提示 Unable to process your request ,打客服电话只会说 [系统因为 1 个或多个原因…