Android学习从入门到放弃(文末有福利)

移动开发早就不是最热门的程序员职业了,而且移动开发也并不是一个能够在短时间内轻松掌握的领域,需要我们有足够的耐心和毅力

作为一个在Android开发领域积累了不少经验的开发者,自己也看了不少书,也和不少前辈交流过,在这里分享一些对于学习Android开发的书籍、知识和方法,希望能对那些希望进入这个行业的人有所帮助。

首先,我要强调的是,移动开发早就不是最热门的程序员职业了,而且移动开发并不是一个能够在短时间内轻松掌握的领域。如果你只准备投入两三个月的时间,可能很难在这个行业中获得一席之地。因此,我建议那些真正想要成为优秀Android开发者的人需要有足够的耐心和毅力

下面提到的一些书籍可以通过 juejin.cn/post/724192... 下载

基础知识

这里主要是指开发语言、Android以及计算机基础 开发语言

  • Java:基础语法、面向对象思想、然后就是相关编程技巧如 泛型、并发等
  1. 《Java核心编程》、《Think in Java》、《编写高质量代码:改善Java程序的151个建议》、《重构_改善既有代码的设计》
  • kotlin:对应上面java,并且有着自己的新特性,包括 函数式编程、协程等
  1. 《Kotlin核心编程》
  2. 官网 www.kotlincn.net
  3. 《函数式编程思维》
  • Android系统基础:基础主要是四大组件、画UI、View等
  1. 官网是最好的资料developer.android.com/?hl=zh-cn
  2. 入门资料《第一行代码》、《Android艺术探索》
  • 计算基础

网络和操作系统

  1. 《图解 TCP_IP》
  2. 《现代操作系统》

工程能力

这部分需要多年的实践积累

  • 设计模式

首先需要有些设计模式的基础,这会让我们更加容易的理清项目代码的脉络,写出更加容易维护的代码

  1. 《Head First 设计模式》
  2. 《图解设计模式》
  3. 《代码整洁之道》
  • 组件化

这个前几年比较多,配合路由框架,以及SPI来解耦模块

  • 工程构建

主要是Android gradle的高级玩法,这块非常值得深挖,这块资料不是很多,都是网上一些碎片

  1. 《Android-Gradle权威指南》
  2. 《实战Gradle》
  3. 《Gradle for Android》
  • 「工程安全」

逆向与安全,这个是个全新的领域了,搞应用的稍微了解一下就可以,因为这块深不见底的,可以了解下xposed、脱壳、反编译

  1. 《Android安全攻防权威指南》
  2. 《Android安全技术揭秘与防范》
  • 大前端技术

早些年的jsBridge/Hybrid,现在的Flutter等,然后各家都在搞自己的跨端方案比如字节的Lynex等

  • 稳定性

这个几乎都要遇到,主要是卡顿、包大小、crash(java层以及native层)、电量、流量这些优化

  • 「音视频、多媒体技术」

这个也是个单独的深耕领域,需要配合了解c/c++、OpenGL等

  • 编程技巧
  1. 反射与注解 + APT(AMS/JavaAssit/Javapoet)
  2. AOP切面
  3. 动态代理
  4. 并发编程

Android系统

  • 「Framework」

这个是个专业的领域,但是应用层又经常需要了解,主要在渲染系统,Binder、一些常见的核心服务端,比如AMS、WMS等。不过应用层的插件化这块还是需要了解一些framework知识,这样会帮助我们更加深刻的理解

  1. 《深入理解Android内核设计思想上册》、《深入理解Android内核设计思想下册》
  2. 《Android的设计与实现 卷1》
  3. 《Android内核剖析(带完整书签)》
  4. 《Android Framework 开发揭秘》
  5. 《深入探索android热修复原理》
  • Runtime
  1. 《Java虚拟机》

最后附上一张大图

欢迎关注 「Android茶话会」更多精彩等你来探索

  1. 「学习之路」 取Android技术路线经典电子书
  2. 「童年游戏」 取60+童年游戏合集一份
  3. 「技术简历」 取精选简历模板一份

欢迎 点赞、评论、转发

相关推荐
jyan_敬言5 分钟前
【C++】string类(二)相关接口介绍及其使用
android·开发语言·c++·青少年编程·visual studio
程序员老刘25 分钟前
Android 16开发者全解读
android·flutter·客户端
Java技术小馆1 小时前
GitDiagram如何让你的GitHub项目可视化
java·后端·面试
UGOTNOSHOT1 小时前
7.4项目一问题准备
面试
福柯柯1 小时前
Android ContentProvider的使用
android·contenprovider
不想迷路的小男孩1 小时前
Android Studio 中Palette跟Component Tree面板消失怎么恢复正常
android·ide·android studio
餐桌上的王子1 小时前
Android 构建可管理生命周期的应用(一)
android
菠萝加点糖1 小时前
Android Camera2 + OpenGL离屏渲染示例
android·opengl·camera
用户2018792831672 小时前
🌟 童话:四大Context徽章诞生记
android
yzpyzp2 小时前
Android studio在点击运行按钮时执行过程中输出的compileDebugKotlin 这个任务是由gradle执行的吗
android·gradle·android studio