从2010年开始接触Android开发,转眼走过了8个年头,作为几乎是首批尝鲜Android平台的老码农,水平却没有曾长到与经历相匹配的程度,甚是遗憾,不过这期间接触过不少的牛人,他们给与了我不少启发和指导,在此鸣谢。 之前csdn上读过一个帖子,是一个更资深的老牛给出的他读过的书单,我没有那么博学,涉及的面也没有那么广,仅仅作为一个目录,给没读过的朋友填填坑。 我大部分时间做的Android原生开发,期间有过8个月的H5经验,同时做过大约三年的团队管理,其他的端都是自学,比较皮毛,可以忽略了。 我会把读过的书都列出来,大致分为可读性高和不高两类,供朋友鉴选,同时把作者标注出来,个人建议,仅供参考。
《深入理解Java虚拟机》(周志明)
随着对Android理解的逐渐深入,对这个平台的原生开发语言Java的欲求越发的不满,这本书是12年买的,那阵对书中的概念含糊不清,所以相当于白看,近两年重新翻开觉得颇有收获,JVM机制所涉及的东西需要系统化,大致可以分为加载编译过程,内存分配和回收,内存模型等几个模块,比较碎片化,不系统的归纳很容易遗忘。
《大话数据结构》(程杰)
比较经典的书了,因为写的通俗易懂,涉及的知识点不深,可以作为入门书籍,看了三四遍,还因为书中没有关于红黑树的介绍特意给作者发邮件询问是否还有后续版本,得到回复:工作太忙,而且工作与这个没什么关联,所以没有计划出新版。:-D 好吧。 数据结构和算法如果不从事专业工作中的话,确实不会用太多,只是互联网大厂对于这种东西一般必考,而且逐渐了解后是非常有意思的东西,有利于开拓思维嘛。
《数据结构与算法分析-java语言描述》(Mark Allen Weiss)
也是算法和数据结构,内容比上一本全一点(例如我关注的红黑树),同时也枯燥了一点,规规矩矩讲课。
《移动App性能评测与优化》(腾讯TMQ团队)
我关注了不少大厂的公众号,例如QQ音乐、bugly、美团等,这本书是公众号里推荐的,顺手买的。 说实话,书中讲的东西专业性比较强,但过于理论,可以实践的东西不多,同时里边涉及原理的东西例如dalvik内存机制可以去看更专业全面的书,所以这本里边的东西可以简单看看当做聊天吹牛的谈资即可。
《Android Dalvik虚拟机结构及机制剖析I和II卷》(张国印)
这书很薄,版本比较老,但原理机制的分析永远不会过时,全书分为两卷,第一本基础铺垫,第二本比较核心,十分详细的介绍了类加载机制,内存管理,反射原理及其实现,解释器模块,用行话说就是比较干货。同时还是那个问题,因为就是原理,碎片化的东西,虽然内容不多,如果不系统化很容易忘。
《深入理解Android内核设计思想》(林学森)
比较厚,比较全,从如何下载源码并编译开始,到操作系统基础,然后到Android进程/线程管理,同时讲解AMS和WMS机制,再到View体系,inputmanagerService事件的流动,甚至还讲了点git的东西。 书是之前公司CTO送我的,这位大佬现在在TX任职,级别很高...所以他推荐的东西不会差。 这本书不是入门书籍,描述了Android的启动加载过程,讲得比较透,但是仍然不会那么深,比较适合应用层开发的朋友增加深度。
《HTTP权威指南》(David Gourley / Brian Totty)
经典书籍,书很厚,但是很浅,带你入门绰绰有余,作为离用户最近的应用层协议,http的发展值得关注,起码应该抓包看看你发送和接收的所谓的请求都包含了些什么。
《Effective Java中文版》(Joshua Bloch)
现在对这本书咬牙切齿,我是先看了两遍中文版的pdf,然后犹豫着买了,我也在京东的订单里评价了:翻译的跟屎一样。可是没办法,英文水平只能读读文档,读整本书还是费劲,也看不下去。 很多人对这本书见仁见智,尤其是java版本的不断更新,也颠覆了以往的认知,有些东西更是无法辩出个结果。 单从设计角度来说不失为一本好书,如书开篇介绍可以用工厂模式代替传统的实例化。 书的内容不多,并且如果你是个老油条的话,书中的很多技巧你已经烂熟于胸了。
《webkit技术内幕》(朱永盛)
2015年创业的时候的产品是轻应用,由此展开了一番学习,了解浏览器内核相关,并听闻一个传说:360浏览器的开发者是一个人生啃了webkit内核后做出来的,并因此晋升到了VP,就当故事听吧。 底层原理的书不好懂,有兴趣的朋友可以一试,不然就别轻易涉水了。
《重构-改善既有代码的设计》(Martin Fowler)
经典书,三年作为一个分水岭,应该对代码设计有一个初探了,Android开发的架构一步步演变从MVC到MVVM,无非都是嚼别人吃过的东西,但是把简单的事做好的人不多,响应式,生命周期,模板加泛型,是我对此的理解,你的层次决定着你对架构的驾驭能力。
《软件架构》(Mourad C哈巴呢Oussalah)
粗粗翻了一遍,我没有什么后端开发基础,不太好领略其中的精神,买了看下就扔那了。
《图解HTTP》和《图解TCP/IP》(一个小日本)
插画式的小人书,感觉没什么营养。
《Head First 设计模式》(Freeman,E)
设计模式,老生常谈,每次面试都会被问到设计模式么,并且级别越高就问的越详细,当别人问你用过什么设计模式的时候还会这么回答吗?单例,数据库都这么设计;监听者,button设置事件 ; 建造者,构造多属性复杂实体 ; 适配器,adapter.... 对方可能直接把你定性为一年工作经验。 binder通信的方式使用了很多设计模式,代理,原型,工厂 balabala....
《Android 安全架构深究》(Nikolay)
2015版本的,翻译的还算ok,翻了前几页其中一个知识点就吸引了我,binder作为android IPC的主要方式,为什么效率高一些(只拷贝一次数据),用简短的话语就说明白了。 此书作为android架构的书描述的没有特别详细,适合有一定虚拟机知识的朋友来看。
《鸟哥的Linux私房菜》(鸟哥)
我只买了服务器架构篇,之前在centOS上干了点活儿,比如搭建android的编译环境,布个Jenkins,搭个nexus maven,配置个防火墙啥的,虽然都比较简单,但对于没有什么基础的人来说,譬如我着实比较费劲,特此买本来看看增强自己的信心,我没有买基础篇,一些命令和常识只从平时的点点滴滴积累下吧 。
。。。。 未完待续,我会经常补充,我看书比较勤