小编注:最近,小编们一直在收集,整理一些针对包括程序员、运营、设计师等在内的系统学习资料,希望给初学者一些参考,也给已经入门的人一些进阶建议,让知识体系更加系统化。当然,这个工作不可能一蹴而就,也相当不能完善,每天都有新技能、新技术产生,并发生变化,但也希望小编的努力能对大家有些微帮助。
今天是Android开发书籍推荐 & 学习路线图,虽然同类内容已经不少,但也希望能给你的知识体系一下借鉴。最后小编会附上最近整理、用户撰发的部分安卓开发学习的资料,更多的内容大家直接在网站搜索关键词即可。书籍部分,在DevStore官网有不少电子书,大家可以搜索下。
Android开发书籍推荐:从入门到精通系列学习路线书籍介绍
Diycode整理推荐:本系列由@jixiaohua 发起,@d_clock同学负责。
JAVA入门书籍:
《 Introduction to java programming 》
《 Core java 》
JAVA进阶书籍:
《Thinking in java》
《Effective Java》
汤涛推荐理由:第二本要反复多看几遍,另外Java学习还有个技巧,把各种代码检查工具报告的警告都正确处理掉,一个不漏,保证你成长飞快。
stormzhang推荐理由:公认的Java进阶必备,《Effective Java》是一本实用至上的书,78条建议,满满的干货。
袁辉辉推荐理由:《Thinking in java》:非常经典的Java书籍,有些人觉得这个书不适合初学者,可就是我看的第一个本Java书,或许是当初自学Java没有高人指点,便挑选了经典书来入手。看一本经典书,第一遍能理解个大概,能对整体有一个概念,这就可以了,反复多读几遍,细细咀嚼,每一遍都会有不同的领悟。
1、Android入门:
Android Training
Android API Guides
胡凯推荐理由:入门使用官方的这两份文档是最好不过的了,没有比这个更权威,更准确的Android学习资料了。中文书可以随便买两本入门,配合一起看看就好了。在实践的过程中多参考官方的Sample Code,多按照官方的推荐进行代码实践!
汤涛推荐理由:官方文档,权威专业,入门不二之选,正确的入门姿势,对后续的成长帮助非常之大。
《第一行代码》
《疯狂Android讲义》
《Android4高级编程》
《Android编程权威指南》
徐宜生推荐理由:全面、基础,内容丰富!基础类型的书只要看一本就够了,用来全面了解知识体系和结构,不用全部精读,只需要有概念即可。
CJJ推荐理由:《第一行代码》作者郭霖,看了郭霖很多博客文章,每一篇都写的很详细,也很用心。这本书大概浏览了一遍,内容浅显易懂,非常适合初学者!
任玉刚推荐理由:《第一行代码》作者郭霖,手把手教你入门,清晰易懂。
袁辉辉推荐理由:《疯狂Android讲义》正是这样一本书,也是我看过的第一本Android书籍,书中并没有深奥的理论,有大量的实例,边看的过程中,边在电脑面前跟着敲了一遍实例代码,最好能做到理解性地敲,而非看一个单词再电脑面前敲一个。我大概花了一周时间把这本书看完并把大部分的实例代码都亲手敲了一遍。《第一行代码》作者郭霖,网上有不少人都推荐这本书作为Android入门书,我大概扫了一遍,知识点较基础,作者文笔不错,书中还穿插了不少打怪涨经验升级的片段,比较风趣。
二、Android进阶
《App研发录》
《Android群英传》
《深入理解Android》
《Android开发艺术探索》
《Android系统源代码情景分析》
袁辉辉推荐理由:《深入理解Android》邓凡平,作者功力深厚,以情景为分支,从framework源代码层面来,深入分析Android系统,非常适合高级应用开发工程师和系统工程师阅读。《Android系统源代码情景分析 》罗升阳,对Android系统的理解非常深,老罗知识体系很全,文章从app/framework/native/kernel等全方面剖析,这是Android界的尽人皆知的大牛,“老罗栽树,大家乘凉”,非常值得一看,前提要是有扎实基础。
stormzhang推荐理由:《Android开发艺术探索》这是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点,Android开发进阶值得拥有!
任玉刚推荐理由:《Android开发艺术探索》,作者任玉刚。分析android核心知识点,直指高级工程师进阶要点!(作为艺术探索一书的读者,我也是激励推荐的!!非常赞的一本书!)
《Clean Code》
《Clean Coder》
汤涛推荐理由:进阶是个大话题,只看一两本是不够的,甚至只看书也是不够的,能进阶到什么程度只能靠自己积极主动的积累。 硬要推荐的话,就不说 Android 的书了,市面上几本热门书都可以看看。这里推荐的两本,同一人所写,都有中文译本。教你代码怎么写得更好,以及怎么做一个更职业的程序员。
《HeadFirst设计模式》
《重构:改善既有代码的设计》
胡凯推荐理由:在大量实践Android程序之后,我们需要会分辨哪种写法是更优秀的,通过重构来改善既有的代码,通过设计模式的不断理解实践对既有的框架进行优化,追求更加设计良好的程序。
三、Android底层
《深入理解Android ***》系列书籍,邓凡平老师写的系列。
《Android源码设计模式》,结合设计模式分析源码
《Android框架揭秘》,底层架构的一本好书
徐宜生推荐理由:底层书籍对于应用开发者来说,不用过于深入,主要用于学习设计思路和了解底层设计机制
袁辉辉推荐理由:Android底层是基于Linux Kernel,所以想成为Android全栈工程师,了解Linux Kernel是非常有必要的。这方面书籍较多,我就列举两本《Linux内核设计与实现》,《深入理解Linux内核》。第一阶段只需加深对Android系统整体性的理解,不必拘泥于每个细节都理解,看完能大抵理解kernel进程的管理和调度机制,内存管理和内存寻址,I/O驱动设备(字符设备、块设备、网络设备)和调度机制等有所了解就够了;如果都理解了也就够了,如果想再深入,可以结合Kernel代码多看两遍。
小结
不管看多少书,更重要的是自己思考,动手重复的实践!也许这个过程很耗时间,但是,这个不断以代码去验证自己的某些猜想的过程,便是技术成长的历程!
END
END
END
我们邀请了以下的社区牛人参与编写(或者提意见)此系列书籍推荐(排名不分先后):
汤涛:微信公众号【Android程序员:微信号androidtrending】
stormzhang:微博@googdev
任玉刚:微博@任玉刚Coder
Stay:微博@stay4it
郭霖:
冯建:微博@冯建V
CJJ:微博@AndroidCJJ
hi大头鬼hi:微博@hi大头鬼hi
等Android中文开源社区热心牛人。(Trinea、drakeet好像都和对象玩儿去了,暂时木有邀请,稍后一定让他们给意见)。
胡凯:腾讯公司天天P图资深Android开发工程师,Android官方培训课程中文版发起人。
1、入门:
Android API Guides
Android Training
推荐原因:入门使用官方的这两份文档是最好不过的了,没有比这个更权威,更准确的Android学习资料了。中文书可以随便买两本入门,配合一起看看就好了。在实践的过程中多参考官方的Sample Code,多按照官方的推荐进行代码实践!
2、进阶:
《重构:改善既有代码的设计》
《HeadFirst设计模式》
推荐原因:在大量实践Android程序之后,我们需要会分辨哪种写法是更优秀的,通过重构来改善既有的代码,通过设计模式的不断理解实践对既有的框架进行优化,追求更加设计良好的程序。
3、JAVA基础的书籍:
《Thinking in java》
《Effective Java》
推荐原因:不解释
写在最后:请做一个对代码美感有追求的程序员。
汤涛:海豚浏览器资深Android工程师,“Android程序员”微信号博主;
1、入门:
Android Training
推荐原因:官方文档,权威专业,入门不二之选,正确的入门姿势,对后续的成长帮助非常之大。
2、进阶:
推荐原因:进阶是个大话题,只看一两本是不够的,甚至只看书也是不够的,能进阶到什么程度只能靠自己积极主动的积累。 硬要推荐的话,就不说 Android 的书了,市面上几本热门书都可以看看。这里推荐的两本,同一人所写,都有中文译本。教你代码怎么写得更好,以及怎么做一个更职业的程序员。
3、Java
《Thinking in java》
《Effective Java》
推荐原因:不解释。尤其第二本要反复多看几遍,另外Java学习还有个技巧,把各种代码检查工具报告的警告都正确处理掉,一个不漏,保证你成长飞快。
最后:入门有方法,进阶靠自己。
stormzhang:薄荷网Android技术负责人,AndroidDeveloper公众号博主。
书不在多,每个阶段一本书就够了,所以我只推荐一本:《Java初级:Java语言程序设计》
理由:很基础,适合初学者,建议看到前十四章就可以了,第十二章也可以略过。
Java中级:
《Thinking in java》
Java经典书籍,很多人说他是初级书籍,但是我的看法是他非常不适合初学者,如果没有任何经验的初学者直接看这本书会一头雾水,但是有了一定Java基础那么这本书必看。
Java进阶:
《Effective Java》
公认的Java进阶必备,这是一本实用至上的书,78条建议,满满的干货。
Android初级 :
《第一行代码》
郭神的书,全书由浅入深,很系统全面,讲解的也很详细,非常适合Android入门。
Android进阶:
《Android开发艺术探索》
这是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点,Android开发进阶值得拥有!
袁辉辉:小米系统攻城狮,Gityuan博主。
一、Android入门:对于入门书,最重要的是能够让初学者快速上手,而不在于能将所有知识点讲述深入透彻。
《疯狂Android讲义》正是这样一本书,也是我看过的第一本Android书籍,书中并没有深奥的理论,有大量的实例,边看的过程中,边在电脑面前跟着敲了一遍实例代码,最好能做到理解性地敲,而非看一个单词再电脑面前敲一个。我大概花了一周时间把这本书看完并把大部分的实例代码都亲手敲了一遍。
《第一行代码》:作者郭霖,网上有不少人都推荐这本书作为Android入门书,我大概扫了一遍,知识点较基础,作者文笔不错,书中还穿插了不少打怪涨经验升级的片段,比较风趣。
对于入门书最多看一到两本,当看到第三本能吸取的营养已经很少,这样应该进入下一个进阶阶段。
二、Android进阶:进阶书籍适合反复阅读,深入理解。
《深入理解Android》:邓凡平,作者功力深厚,以情景为分支,从framework源代码层面来,深入分析Android系统,非常适合高级应用开发工程师和系统工程师阅读。
《Android系统源代码情景分析 》:罗升阳,对Android系统的理解非常深,老罗知识体系很全,文章从app/framework/native/kernel等全方面剖析,这是Android界的尽人皆知的大牛,“老罗栽树,大家乘凉”,非常值得一看,前提要是有扎实基础。
《深入解析Android 5.0系统》:邓超,前两本都是基于Android 4.x系统,而这是基于Android 5.0系统讲述得比较不错的书籍。
Android底层是基于Linux Kernel,所以想成为Android全栈工程师,了解Linux Kernel是非常有必要的。这方面书籍较多,我就列举两本《Linux内核设计与实现》,《深入理解Linux内核》。第一阶段只需加深对Android系统整体性的理解,不必拘泥于每个细节都理解,看完能大抵理解kernel进程的管理和调度机制,内存管理和内存寻址,I/O驱动设备(字符设备、块设备、网络设备)和调度机制等有所了解就够了;如果都理解了也就够了,如果想再深入,可以结合Kernel代码多看两遍。
三、Java基础:学习Android必须要有一定的Java基础
《Java编程思想》:非常经典的Java书籍,有些人觉得这个书不适合初学者,可就是我看的第一个本Java书,或许是当初自学Java没有高人指点,便挑选了经典书来入手。看一本经典书,第一遍能理解个大概,能对整体有一个概念,这就可以了,反复多读几遍,细细咀嚼,每一遍都会有不同的领悟。
任玉刚:百度Android高级工程师,《Android开发艺术探索》作者,CSDN博客专家。
Android入门书 :
《第一行代码》:作者郭霖。手把手教你入门,清晰易懂。
Android进阶书 :
《Android开发艺术探索》,作者任玉刚。分析android核心知识点,直指高级工程师进阶要点!(作为艺术探索一书的读者,我也是激励推荐的!!非常赞的一本书!)
CJJ:写小说的Android工程师,Android自定义控件达人,活跃在Github上,AndroidSDK源码解析发起者!他的Github。
Android入门书 :
《第一行代码》:作者郭霖。推荐理由:看了郭霖很多博客文章,每一篇都写的很详细,也很用心。这本书大概浏览了一遍,内容浅显易懂,非常适合初学者!
Android进阶书 :
《Android开发艺术探索》,作者任玉刚。我最近也在看这本书,收获很大,巩固了以前比较薄弱的地方,也知道还有那些知识需要学好,是进阶的好书!
《Android系统源代码情景分析》,作者罗升阳。推荐理由:国内学安卓的第一批先驱者,至今他的很多文章都看不懂,惭愧啊,这本书是他的心血,只是,读懂这本书需要很好的基础,大概吧!
徐宜生:上海沪江英语高级Android工程师,《Android群英传》作者。
Android入门书 :
《Android4高级编程》
《第一行代码》
《Android编程权威指南》
推荐理由:全面、基础,内容丰富!基础类型的书只要看一本就够了,用来全面了解知识体系和结构,不用全部精读,只需要有概念即可
Android进阶书 :
《Android群英传》,总结从入门到提高的学习方法
《Android开发艺术探索》,进阶必备知识点的深入讲解
《App研发录》,研发体系的深入研究与总结
推荐理由:进阶类书籍需要好好精读,针对自己薄弱的知识点不断进行总结
Android底层书 :
《深入理解Android ***》系列书籍,邓凡平老师写的系列。
《Android源码设计模式》,结合设计模式分析源码
《Android框架揭秘》,底层架构的一本好书
推荐理由:底层书籍对于应用开发者来说,不用过于深入,主要用于学习设计思路和了解底层设计机制
Stay:有心课堂(stay4it.com)前台
选择当下最适合自己的最重要。
初学Android
对于一个初学者,最大的障碍在于如何用好ide以及项目结构。每一本入门书都绕不开这一个环节。这样的书需要越新越好。因为ide版本也在不断升级,一些changelog会让初学者卡住。这里不做推荐,只要找最新出版的书就可以了。
有了Android工作的1年里
一个良好的积累来源于平日的知识吸收。量变会引起质变。这个时间段,多吸收点知识是必要的。从量上首当其冲的就是API文档了,其次就是《第一行代码》 了。再来就是郭霖和鸿洋的博客了。能把一个知识点从浅入深的讲解成API文档,也只有他们俩了。
未来的1到2年
积累到一定程度,就需要不断的通过实战来补充经验。Android以坑多,黑科技著称。没在坑里滚过的都不叫真的android程序员。如果有本书能帮你快速理出这些坑。那就是《App研发录》了。虽然里面也有些写的不那么准确的问题,但这不碍事。
2-3年
坑也淌的不少了。也许你曾为了解决某个bug,花了好几天google遍了,源码翻烂了都没能解决。这时候就得考虑考虑,是否应该从原理入手去分析问题。一个component或者一个API是通过怎样的需求来定制实现的。如果你能从原理上去理解意图,那在解决问题时会更有方向,而不会想无头苍蝇。《Android开发艺术探索》应该就是你需要的书。它虽然没有帮你具体的解决某个bug,但是它给了你一个宏观的构图。以后你会事半功倍。
3年以后
你已经是个合格的开发者了。一些问题都不会再难倒你。但是你在一个team里与大家协作。如何编写高质量,可复用的代码是一生的追求。这类书籍有很多,从具体的《Effective Java》到抽象的《HeadFirst设计模式》再到心中无码的《敏捷软件开发:原则、模式与实践》《重构》再回归到本质《编程珠玑》。这都是不错的选择。
并行
1. 多尝试其他语言,了解其他语言的优点与特性,与android相互印证。是非常有必要的。
2. 可以尝试从非技术角度来看技术。《暗时间》 《精进,如何成为一个厉害的人》 都推荐大家看看。高效来自于自我认知
看书的目的,是系统的理解某一相对独立的点与面。尽量抽整块的时间来消化,别像看博客,公众号那样,手指一划一页就翻没了。没有真正的思考与实践,就不叫真的理解。平时那些碎片知识如果能通过系统的书籍来整理,是对我们的知识体系的梳理与巩固。
至于那些还不能消化高阶体系的朋友也不用强求,这是一个过程。先知其然,再去知其所以然。选当下最适合自己的,一步步进阶,不是更好吗:)
李侦跃:花名大头鬼,阿里巴巴高级Android工程师,擅长Android,ReactNative,RxJava, RxAndroid, Vue.js WeChat:hibrucehi, 他的Github
《Android开发艺术探索》,开发艺术,写的深入浅出,把ANDROID底层的一些机制,讲的通俗易懂。同时又避免了过多的设计到cpp代码,尺度把握的非常好。对于不熟悉rom和native开发,只是熟悉应用层开发的同学来说,这本书绝对是深入了解系统机制的一本好书。
《Android源码设计模式》,设计模式那本书,从设计模式的角度去分析android源码,角度很独特,同时授人以渔,让大家知道为什么源码里要这样写。设计模式也是程序员进阶必备的技能。结合设计模式,大家对源码的理解也会更加深入。
《Android群英传》,群英传更多的偏重于app层面的开发,作者介绍了大量自己一线实战出来的技巧。如果没有作者无私的总结,初中学者很难免会走很多弯路,可以说这本书是这个灯塔,非常适合初中级的同学参考
本系列书籍推荐方法:
1、按照自身的学习路程,亲自看过的书籍;
2、写一个小小邀请,邀请一些开发牛人给列一个书单,然后综合筛选;
3、整理完毕了,网络上让大家继续推荐,随时更新;
4、你的一些整理方法,总之做出一份优质的推荐书籍就好哈;
5、因为Android发展太快了,所以一些时间特别久远的书籍可能不合适了,比如2012年前出版的一些Android开发书籍已经不适用了;
6、需要有一些适当的JAVA基础书籍推荐。
一个老鸟发的公司内部整理的 Android 学习路线
有一些链接可能还不是特别准确,欢迎大家评论指出,会及时更正。图片参考:另一份 Android 开发学习路线图
-
基础工具部分: 中文手册,我猜测是Maven中文手册,可是我并没有找到这样的资源,欢迎知道的朋友告诉我;
-
Android部分有 『第三方库集合』,我没能找到资源地址;
-
书籍我大多是给的豆瓣链接,如果觉得不合适可以替换一下;
程序设计
一、java
(a)基本语法(如继承、异常、引用、泛型等)
-
Java核心技术 卷I(适合入门)
-
进阶
-
Effective Java中文版(如何写好的Java代码)
-
Java解惑 (介绍烂Java代码是什么样的)
-
(b)多线程、并发
-
Java并发编程实战 (系统全面的介绍了Java的并发,如何设计支持并发的数据结构)
(c)Java 7
-
Java程序员修炼之道 (详细的介绍Java 7 的新特性)
(d)Java 8
(e)Java虚拟机
-
深入理解Java虚拟机 (并不是那么难,Java程序员都该看看)
(f)性能优化
-
Java性能优化权威指南 (后面的章节好像用处不大,前面有些部分还是值得看)
二、算法与数据结构
算法时间复杂度、空间复杂度的基本认知
熟悉常用数据结构:链表、队列、散列表、树等;
递归、分支等基本思想;
常用算法应用:排序、查找、比较等
三、操作系统
对Linux/OS的基本认知
Linux的常用命令
-
Linux内核设计与实现(原书第3版) (很精炼的语言描述清楚了内核算法)
四、网络
Http/Https
TCP/IP
五、Android
四大组件(服务、广播、ContentProvider、页面容器)
基础UI组件(ListView、ViewPager)
异步任务机制(AsyncTask、Handler、线程池)
布局优化(层级、绘制、碎片化处理)
图片加载(Bitmap、缓冲区)
-
UniversalMusicePlayer (通过学习一个音乐播放器的代码能很快了解四大组件)
-
Android UI/UX库(各类常用组件及扩展组件的集合)
-
The Google I/O 2015 Android App (Google大会官方的App,适合学习各类实现)
-
Android开发技术前线 (定期翻译、发布国内外Android优质的技术、开源库、软件架构设计、测试等文章)
-
进阶
-
第三方库集合 (列举了常见的各方向第三方库)
-
软件工程
一、基础工具
IDE、Git、Maven
二、软件质量
代码整洁
码质量
码重构
-
编写可读代码的艺术 (来自Google工程师,专注于代码可读性)
-
代码整洁之道(使用面向对象+敏捷开发原则编写清晰可维护的代码)
-
重构-改善既有代码的设计 (学习改善已有代码)
-
重构手册 (改善代码的实际操作)
三、设计模式
23种常见设计模式
-
Head First设计模式(两本入门级的设计模式书籍)
-
进阶
-
设计模式-可复用面向对象软件的基础(设计模式在实际中的应用)
-
四、敏捷开发
五、专业开发
序员职业素养
更高效、更实效
六、思考人生
-
黑客与画家 (硅谷创业之父Paul Craham 的文集,主要介绍黑客及优秀程序员的爱好和动机)
附安卓学习资料:
【推荐几本好书】Dev程序员书籍下载排行榜(内附技术大牛强烈推荐书籍)
GitHub 上排名前 100 的 Android 开源库介绍(上)