近一段时间经常被朋友问到如何从零开始学习安卓,成为一名安卓开发工程师。不得不感叹,现在各行各业都有不少人在涌向IT/互联网行业,希望从事程序开发工作,竞争越来越激烈了。借此机会,我梳理了一下自己所学所知的安卓知识,制定了这份安卓开发学习路线规划,希望能帮助到有志于安卓开发的伙伴能尽快找到学习的方向,进入安卓开发的大门!
安卓开发可以从深度和广度两个维度进行学习。大方向上看,Android在向诸如Flutter这样的跨平台技术演进,混合式开发、大前端等正成为移动端的发展方向和热门技术,而开发语言正从Java切换到简洁优雅的Kotlin。
安卓开发的学习路线如下图所示,其中版本管理工具Git、网络技术、设计模式这些内容是很多方向都必学的内容。可以先从Android和Java这两块入门,当深度达到进阶后逐步开始Kotlin的学习,如果公司有需要可以继续横向发展去学习Flutter等跨平台技术,并学习一些前端知识(诸如HTML5、CSS、JavaScript等)可进行混合式开发,成为应用开发层的大牛。或者可以继续深入Android、Java的学习,进入安卓FrameWork层的学习和开发,成为框架开发层的大牛。
对于安卓知识的学习,我梳理了入门、进阶、高级三个层次的思维导图,可以沿着这个大纲从易到难进行学习。
梳理市面上的安卓书籍可以分类整理为如下列表,我对其中自己看过或大致浏览过的书籍中感觉值得推荐的书籍做了加粗标识,以供参考。
《Android 9编程通俗演义》
推荐理由:全书一气呵成,以做一个仿QQ的项目为例,一步一步从易到难的引入相关的知识点进行讲解,并将其应用在案例中,有很强的实操性,符合初学者的认知路线。
《第一行代码 Android》
推荐理由:最广受好评的Android开发入门书籍,讲解透彻,但对初学者而言有一定的难度。目前已更新到第三版,用Kotlin语言讲解Android基础知识,并介绍了新技术JetPack库的几个常用组件。
《疯狂Android讲义》
推荐理由:用大而全来形容这本书最合适不过,虽然知识有点过时,没有及时跟进现代Android的发展,但是囊括的Android知识是相对比较系统和全面的。讲解有点偏指南类文档。
《Android精彩编程200例》
推荐理由:在具备Android基础知识后,如果练习一遍这本书的200个精彩的小案例,可以对Android基础知识得到很好的巩固并提高实操能力,对于实现各类常见效果和场景可以很快形成思路去开发。
《Android开发详解》
《Android开发精要》
《突破关键:Android核心技术102问 》
《Android APP开发实战》
《Android项目开发:实战入门》
《Android企业级项目实战教程》
《Android面试宝典》
推荐理由:市面上少见的专为面试而生的书籍,对于备战找工作的同学再适合不过了。全书总结了不少高频面试考点, 背诵全书可以命中不少企业的面试考题。
《Android应用开发实战》
《Android 6开发秘籍》
《Android开发艺术探索》
广受好评的Android进阶书籍,采用理论、源码和实践相结合的方式来阐述高水准安卓应用开发要点,侧重于Android知识的体系化和系统工作机制的分析,学完可以极大提升开发者的Android水平。
《Android群英传》
推荐理由:实战性强,既有基础的案例,又有提高的技巧。从UI、性能、安全、内存、工具多角度学习,对Android知识开发做了很好的总结和归纳,读起来大有裨益。
《Android进阶之光》
推荐理由:是刘望舒的安卓进阶三部曲第一部,讲解了View体系、Material Design库、常见开源框架、架构模式、新特性等,使用方法结合源码分析,是进阶安卓技术的一本好书,但是源码部分讲解得不尽人意,有点简略不够透彻,让人容易迷茫。
《Android进阶解密》
推荐理由:是刘望舒的安卓进阶三部曲第二部,介绍了JNI、ClassLoader、Java虚拟机、DVM&ART虚拟机和Hook等技术,以及热修复原理、插件化原理、绘制优化和内存优化等与应用开发相关的知识点。本书很好地诠释了一些我们需要熟知的技术原理,读完令人豁然开朗,无论是在面试中还是在工作中,都能从中受益匪浅。
《Android进阶指北》
推荐理由:是刘望舒的安卓进阶三部曲第三部,最新出的一本进阶好书,既接续上一本讲解了FrameWork层的PMS、IMS、Binder原理等,又讲解了Goovy、Gradle、JetPack、跨平台开发、Flutter等现代热门技术。
《Android高级进阶》
推荐理由:安卓进阶必看的一本好书,全书囊括了非常多的高级安卓技术,如同一本地图式进阶书籍,可以让你知道安卓技术中自己还欠缺哪些方面知识。缺点是讲的很笼统,有点的地方只是蜻蜓点水了一下,要想了解详情仍需自己查资料深入学习。
《高级Android开发强化实战》
推荐理由:收集了约20个关于高级Android开发的进阶实例,这些实例都是对在日常开发中遇到的问题的抽象,涉及整个Android开发的各个技术栈。特色是介绍了响应式编程三剑客RxJava+Dagger+Retrofit的不同特性组合使用方法、SVG图像技术、Flux架构、自动化测试框架等。
《Android 6 应用开发案例精解》
《Android开发进阶:从小工到专家》
《Android插件化开发指南》
《Android自定义控件开发入门与实战》
《Android和PHP开发最佳实践》
《打造高质量Android应用:Android开发必知的50个诀窍》
《深入剖析Android新特性》
《Android C++高级编程——使用NDK》
《Android音视频开发》
《Android并发开发》
《Android工程化最佳实践》
推荐理由:全书从工程实践角度详细阐述了Android的知识内容,分为基础知识和工程优化两部分。在工程优化部分专门增加了常用的App编译提速和瘦身的内容,对于大型分层项目的测试技巧也有所涉及,是一本不可多得的有很强的工程实践性的好书。
《Android全埋点解决方案》
《Android框架揭秘》
《深入浅出Android源代码:基于Android 6.0和实际开发案例剖析》
《深入理解Android内核设计思想》
《Android深度探索:系统应用源代码分析与ROM定制》
《Android源码设计模式解析与实战》
推荐理由:本书对各个设计模式做了深入分析,并会对模式相关的技术点进行深入拓展,让你在掌握模式的同时学习到Android中的一些重要知识,通过实战帮助达到学以致用的目的,是一本Android与设计模式融会贯通的好书。
《Android内核剖析》
《深入理解Android》三件套
《深入理解Android:Java虚拟机ART》
《Android实战指南-柯博文》
《Android开发模式和最佳实践》
《Android传感器开发与智能设备案例实战》
《Android物联网开发从入门到实战》
《Android物联网开发细致入门与最佳实践》
《精通Android Wear应用开发》
《Android智能穿戴设备开发指南》
《Android可穿戴设备高级编程》
《Android物联网开发:基于Android Studio环境》
《Android系统安全和反编译实战》
《Android 安全架构深究》
《Android安全技术揭秘与防范》
《Android软件安全权威指南》
《Android应用安全防护和逆向分析》
《Android恶意代码分析与渗透测试》
《Android系统优化从入门到精通》
《高性能Android应用开发》
《Android移动性能实战》
推荐理由:本书从内存、CPU、磁盘、网络、电量和交互类性能中的流畅度、响应时延,多个性能测评和优化的方向出发。每个方向,都会帮助你深入浅出地学习 。同时提炼总结不同类型的性能缺陷和对应的排查手段、定位方法和解决方案,透过真实的案例快速学习,让读者能快速落地项目并产生成效。
《精通Android网络开发》
《Android网络开发从入门到精通》
《深入理解Android网络编程:技术详解与佳实践》
《深入理解android:wi-fi、nfc和gps卷》
《Android Telephony原理解析与开发指南》
《深入理解Android:Telephony原理剖析与最佳实践》
《Android底层开发实战》
《Android驱动开发与移植实战详解》
《Android驱动开发权威指南》
《Android深度探索:HAL与驱动开发》
《精通移动App测试实战:技术、工具和案例》
《Android应用测试与调试实战》
《深入理解Android自动化测试》
《App架构师实践指南》
《Android组件化架构》
《Android App开发入门与实战》
《最强Android书:架构大剖析》
《移动开发架构设计实战》
《精通Android Studio》
《Android群英传:神兵利器》
《Android Gradle权威指南》
《RxJava2.x实战》
《React Native移动开发实战》