Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说Android开发的经典入门教材和学习路线「建议收藏」,希望能够帮助你!!!。
----------------------------------------------------------------------------------------------------------------------
Android开发书籍推荐:从入门到精通系列学习路线书籍介绍
(https://www.diycode.cc/wiki/androidbook)
很多时候我们都会不断收到新手的提问“Android开发的经典入门教材和学习路线?”、“Android 开发入门教程有哪些推荐?”等类似的问题,我们不断重复回答这些问题,这让我们萌生了做《 Android开发书籍推荐:从入门到精通系列学习路线书籍介绍》的想法,整理收集开发大牛的学习经验,以便让我们少走弯路,更快速成长。希望这个系列可以成为大家手头应对新手的好答案。
JAVA入门书籍:
《Introduction to java programming》
《Core java》中文译名《Java核心技术》 分为基础知识和高级特性
《Java核心技术(卷1):基础知识(原书第9版) [Core Java Volume I—Fundamentals (Ninth Edition)]》
《Java核心技术(卷2):高级特性(原书第9版) [Core Java, Volume II--Advanced Features]》
JAVA进阶书籍:
《Thinking in java》
《Effective Java》
汤涛推荐理由:第二本要反复多看几遍,另外Java学习还有个技巧,把各种代码检查工具报告的警告都正确处理掉,一个不漏,保证你成长飞快。
stormzhang推荐理由:公认的Java进阶必备,《Effective Java》是一本实用至上的书,78条建议,满满的干货。
袁辉辉推荐理由:《Thinking in java》:非常经典的Java书籍,有些人觉得这个书不适合初学者,可就是我看的第一个本Java书,或许是当初自学Java没有高人指点,便挑选了经典书来入手。看一本经典书,第一遍能理解个大概,能对整体有一个概念,这就可以了,反复多读几遍,细细咀嚼,每一遍都会有不同的领悟。
一、Android入门:
Android Training (http://hukai.me/android-training-course-in-chinese/index.html)
Android API Guides (https://developer.android.com/guide/index.html)
胡凯推荐理由:入门使用官方的这两份文档是最好不过的了,没有比这个更权威,更准确的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框架揭秘》,底层架构的一本好书
徐宜生推荐理由:底层书籍对于应用开发者来说,不用过于深入,主要用于学习设计思路和了解底层设计机制
《Linux内核设计与实现》
《深入理解Linux内核》
袁辉辉推荐理由:Android底层是基于Linux Kernel,所以想成为Android全栈工程师,了解Linux Kernel是非常有必要的。这方面书籍较多,我就列举两本《Linux内核设计与实现》,《深入理解Linux内核》。第一阶段只需加深对Android系统整体性的理解,不必拘泥于每个细节都理解,看完能大抵理解kernel进程的管理和调度机制,内存管理和内存寻址,I/O驱动设备(字符设备、块设备、网络设备)和调度机制等有所了解就够了;如果都理解了也就够了,如果想再深入,可以结合Kernel代码多看两遍。
小结:
不管看多少书,更重要的是自己思考,动手重复的实践!也许这个过程很耗时间,但是,这个不断以代码去验证自己的某些猜想的过程,便是技术成长的历程!
本系列书籍推荐方法:
1、按照自身的学习路程,亲自看过的书籍;
2、写一个小小邀请,邀请一些开发牛人给列一个书单,然后综合筛选;
3、整理完毕了,网络上让大家继续推荐,随时更新;
4、你的一些整理方法,总之做出一份优质的推荐书籍就好哈;
5、因为Android发展太快了,所以一些时间特别久远的书籍可能不合适了,比如2012年前出版的一些Android开发书籍已经不适用了;
6、需要有一些适当的JAVA基础书籍推荐。
另一份书籍推荐
一个老鸟发的公司内部整理的 Android 学习路线图(https://www.diycode.cc/topics/122)
----------------------------------------------------------------------------------------------------------------------
一个老鸟发的公司内部整理的 Android 学习路线图 Markdown 版本
(https://www.diycode.cc/topics/122)
jixiaohua发了一篇一个老鸟也发了一份他给公司内部小伙伴整理的路线图。另一份 Android 开发学习路线图。可惜不是MarkDown格式的,所以jixiaohua直接上传的截图,在jixiaohua的呼吁下,我花了些时间,把这篇大牛的推荐清单编辑成了Markdown格式,方便大家浏览,学习。
有一些链接可能还不是特别准确,因为我只能根据图片上的书或者资源的名字去Google可能的书籍,所以链接上有什么不对的,欢迎大家评论指出,我会及时更正。请参考原文:另一份 Android 开发学习路线图。帮助修改。谢谢。
1.基础工具部分: 中文手册,我猜测是Maven中文手册,可是我并没有找到这样的资 源,欢迎知道的朋友告诉我;
2.Android部分有 『第三方库集合』,我没能找到资源地址;
3.书籍我大多是给的豆瓣链接,如果觉得不合适可以替换一下;
程序设计
一、java
(a)基本语法(如继承、异常、引用、泛型等)
*Java核心技术 卷I(适合入门)
(https://book.douban.com/subject/25762168/)
*进阶
*Effective Java中文版(如何写好的Java代码)
(https://book.douban.com/subject/3360807/)
*Java解惑(介绍烂Java代码是什么样的)
(https://book.douban.com/subject/5362860/)
(b)多线程、并发
*Java并发编程实战 (系统全面的介绍了Java的并发,如何设计支持并发的数据结构)
(https://book.douban.com/subject/10484692/)
(c)Java 7
*Java程序员修炼之道 (详细的介绍Java 7 的新特性)
(https://book.douban.com/subject/24841235/)
(d)Java 8
*写给大忙人看的Java SE 8
(https://book.douban.com/subject/26274206/)
*函数式编程思维
(https://book.douban.com/subject/26587213/)
(e)Java虚拟机
*深入理解Java虚拟机 (并不是那么难,Java程序员都该看看)
(https://book.douban.com/subject/24722612/)
(f)性能优化
*Java性能优化权威指南 (后面的章节好像用处不大,前面有些部分还是值得看)
(https://book.douban.com/subject/25828043/)
二、算法与数据结构
*算法时间复杂度、空间复杂度的基本认知
*熟悉常用数据结构:链表、队列、散列表、树等;
*递归、分支等基本思想;
*常用算法应用:排序、查找、比较等
*数据结构与算法分析 (涵盖面比较全、示例是Java语言)
(https://book.douban.com/subject/1139426/)
*算法设计与分析基础 (实用主义的典型、偏算法设计)
(https://book.douban.com/subject/26337727/)
*编程珠玑 (实践型算法数据)
(https://book.douban.com/subject/3227098/)
三、操作系统
*对Linux/OS的基本认知
*Linux的常用命令
*鸟哥的Linux私房菜
(https://book.douban.com/subject/4889838/)
*Linux内核设计与实现(原书第3版) (很精炼的语言描述清楚了内核算法)
(https://book.douban.com/subject/6097773/)
四、网络
*Http/Https
*TCP/IP
*图解HTTP
(https://book.douban.com/subject/25863515/)
*图解TCP/IP
(https://book.douban.com/subject/24737674/)
*进阶
*TCP/IP详解
(https://book.douban.com/subject/1088054/)
五、Android
*四大组件(服务、广播、ContentProvider、页面容器)
*基础UI组件(ListView、ViewPager)
*异步任务机制(AsyncTask、Handler、线程池)
*布局优化(层级、绘制、碎片化处理)
*图片加载(Bitmap、缓冲区)
*UniversalMusicePlayer (通过学习一个音乐播放器的代码能很快了解四大组件)
(https://github.com/googlesamples/android-UniversalMusicPlayer)
*Android Training官方课程
(http://hukai.me/android-training-course-in-chinese/index.html)
*Android一些重要知识点解析整理
(https://github.com/FX-Max/Point-of-Android)
*Android UI/UX库(各类常用组件及扩展组件的集合)
(https://github.com/wasabeef/awesome-android-ui)
*Picasso 、 Glide (两个图片加载库)
(http://square.github.io/picasso/)
(https://github.com/bumptech/glide)
*The Google I/O 2015 Android App (Google大会官方的App,适合学习各类实现)
(https://github.com/google/iosched)
*Android开发技术前线 (定期翻译、发布国内外Android优质的技术、开源库、软件架构设计、测试等文章)
(http://www.devtf.cn/)
*进阶
*第三方库集合 (列举了常见的各方向第三方库)
软件工程
一、基础工具
*IDE、Git、Maven
*Android Studio
(https://developer.android.com/studio/index.html)
*Git权威指南中文手册
(http://iissnan.com/progit/html/zh/ch1_0.html)
二、软件质量
*代码整洁
*码质量
*码重构
*编写可读代码的艺术 (来自Google工程师,专注于代码可读性)
(http://iissnan.com/progit/html/zh/ch1_0.html)
*代码整洁之道(使用面向对象+敏捷开发原则编写清晰可维护的代码)
(https://book.douban.com/subject/4199741/)
*重构-改善既有代码的设计 (学习改善已有代码)
(https://book.douban.com/subject/4262627/)
*重构手册 (改善代码的实际操作)
(https://book.douban.com/subject/1173730/)
三、设计模式
*23种常见设计模式
*大话设计模式
(https://book.douban.com/subject/2334288/)
*Head First设计模式(两本入门级的设计模式书籍)
(https://book.douban.com/subject/2243615/)
*进阶
*设计模式-可复用面向对象软件的基础(设计模式在实际中的应用)
(https://book.douban.com/subject/1052241/)
四、敏捷开发
*解析极限编程
(https://book.douban.com/subject/1790225/)
*敏捷开发的艺术
(https://book.douban.com/subject/4037534/)
*进阶
*敏捷软件开发-原则、模式与实践
(https://book.douban.com/subject/5348122/)
五、专业开发
*序员职业素养
*更高效、更实效
*程序员的是职业素养
(https://book.douban.com/subject/11614538/)
*程序员修炼之道-从小工到专家
(https://book.douban.com/subject/5387402/)
六、思考人生
*黑客与画家 (硅谷创业之父Paul Craham 的文集,主要介绍黑客及优秀程序员的爱好和动机)
(https://book.douban.com/subject/6021440/)
----------------------------------------------------------------------------------------------------------------------
Android校招面试指南
https://lrh1993.gitbooks.io/android_interview_guide/content/
另一份Android开发学习路线
(https://www.diycode.cc/topics/117)
之前和@d_clock 一起组织做了一个wiki《Android开发书籍推荐:从入门到精通系列学习路线书籍介绍》收到挺多好评,后来一个有一个老鸟也给我发了一份他给公司内部小伙伴整理的路线图,分享出来给大家。
因为表格不是按照MD编辑器做的,目前这份是截图啦。如果有热心的同学,可以在回帖帮忙把这份整理成文字那真是感激不尽啊!图片保存下来可以看到高清大图