全书从操作系统的基础知识入手, 全面剖析进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统、虚拟机等核心技术在Android中的实现原理。书中讲述的知识点大部分来源于工程项目研发, 因而具有较强的实用性, 希望可以让读者“知其然, 更知其所以然”。本书分为编译篇、系统原理篇、应用原理篇、系统工具篇, 共4篇25章, 基本涵盖了参与Android开发所需具备的知识, 并通过大量图片与实例来引导读者学习, 以求尽量在源码分析外为读者提供更易于理解的思维方式。本书既适合Android系统工程师, 也适合于应用开发工程师来阅读, 从而提升Android开发能力。读者可以在本书潜移默化的学习过程中更深刻地理解Android系统, 并将所学知识自然地应用到实际开发难题的解决中。
Android系统的诞生地——美国硅谷。
Google大楼前摆放着Android的zui新版本雕塑,历史版本则被放置在Android Statues Park中
写第2版前言时,笔者刚好在美国加州硅谷等地公事出差访问。其间我一直在思考的问题是,美国硅谷(Silicon Valley)在近几十年时间里长盛不衰的原因是什么?技术的浪潮总是一波接着一波的,谁又会在不远的将来接替Google的Android系统,在操作系统领域成为下一轮的弄潮儿?我们又应该如何应对这种“长江后浪推前浪”的必然更迭呢?
从历史的长河来看,新技术、新事物的诞生往往和当时的大背景有着不可分割的关系。如果我们追溯硅谷的发展史,会发现其实它相对于美国很多传统地区来说还是非常年轻的。“硅谷”这个词是在1971年的“Silicon Valley in the USA”系列报导文章中才首次出现的。20世纪四五十年代开始,硅谷就像一匹脱了缰的野马一般,“一发不可收拾”。从早期的Hewlett-Packard公司,到仙童、AMD、Intel以及后来的Apple、Yahoo!等众多世界一流企业,硅谷牢牢把握住了科技界的几次大变革,成功汇集了美国90%以上的半导体产业,逐步呈现出“生生不息”的景象。
但为什么是硅谷,而不是美国其他地区成为高科技行业的“发动机”呢?
古语有云,“天时、地利、人和,三者不得,虽胜有殃”。
现在我们回过头来看这段历史,应该说硅谷早期的发展和当时的世界大环境有很大关系——更确切地说,正是美国国防工业的发展诉求,才给了硅谷创业初期的“第一桶金”。只有“先活下来,才有可能走得更远”。而接下来社会对半导体工业需求的爆炸式增长,同样让硅谷占据了“天时”的优势,再接再厉最终走上良性循环。
密密麻麻的硅谷大企业
(引用自cdn.com)
硅谷的“地利”和“人和”,可能主要体现在:
(1)Stanford University
斯坦福大学校园
Stanford University在硅谷的发展过程中起到了非常关键的作用。20世纪50年代的时候,这所大学还并不是很起眼,各方面条件都比较糟糕,她的毕业生也多数会去东海岸寻求就业机会。后来她的一位教授Frederick Terman看到了产业和学术的接合点,从学校里划分出一大块空地来鼓励学生创业,并且指导其中两位学生创立了Hewlett-Packard公司。随后的几年他又成立了Stanford Research Park,这也同时是后来全球各高科技园区的起点,并吸引了越来越多的公司加入。在那段时间里,相信起到核心催化作用的是“产”+“学”的高度结合——将科技产品不断推陈出新产生经济效益,然后再回馈到研究领域。在几十年的跨度里,很多顶尖公司(Google、Yahoo!、HP等)的创始人都出自该校。有统计显示Standford师生及校友创造了硅谷一半以上的总产值,其影响力可见一斑。
(2)便利的地理环境
整个硅谷地区面积并不是很大,属于温带海洋性气候,全年平均温度在13℃~24℃,污染很小。同时,它依林傍海,陆、海、空都可以很好地与外界相连,这样一来自然有利于人才的引入。
(3)鼓励创新,完善的专利保护机制
从法律上讲,硅谷每年有超过4000项的专利申请,工程师和律师的比例达到了10∶1。在创新点得到保护的同时,也使得初创公司能够得到进一步的发展,从而避免它们被扼杀在摇篮中。从观念上来说,硅谷人对知识产权还是非常尊重的,他们大多认为剽窃是没有技术含量的,相当于“涸泽而渔”。
(4)完善的风投体系,并容忍失败
事实上在硅谷创业,其成本和失败率都很高——其中能存活3~5年的公司只有10%~20%。一方面,风险投资方需要高度容忍这样的失败率;另一方面,在允许快速试错的同时,风险投资方又可以从某些成功中获得巨大收益——硅谷就是一个可以达到这种矛盾平衡的神奇所在地。
“三十年河东,三十年河西”,技术的浪潮总是在不断演进的。从Symbian、Black Berry,到Android、iOS,历史经验告诉我们没有一项技术是会永远一成不变的。所以我们在技术领域的探索过程中,既要拿“鱼”,更要学会“渔”——前者是为当前的工作而努力,后者则是为我们的未来做投资。以Android操作系统为例,事实上我们除了“知其然”外,还更应该学习它的内部设计思想——即“知其所以然”。当我们真正地理解了那些“精华”所在以后,那么相信以后再遇到任何其他的操作系统,就都可以做到“触类旁通”了。也只有这样,或许才能在快速变革的科技领域中把握住脉搏,立于不败之地。
林学森
于美国硅谷
关于本书第2版
在第1版上市的这两年时间里,不断有读者来信分享他们阅读本书时的感想和心得,笔者首先要在这里衷心地向大家说声感谢!正是你们的支持和肯定,才有了《深入理解Android内核设计思想》(第2版)的诞生。
其中有不少读者提到了他们希望在本书后续更新中看到的内容,包括Android虚拟机的内部实现原理、Android的安全机制、Gradle自动化构建工具等——这些要求都在本次版本更新中得到了体现。
需要特别说明的是,第2版中的所有新增和有更新的部分都是基于Android最新的N版本展开的。由于Android版本的更新换代很快,且版本间的差异巨大,导致书中很多内容几乎需要全部重写。另外笔者写书都是在下班后的业余时间进行的,所以即便是每晚奋笔疾书到深夜,再加上周末和节假日时间(如果没有加班工作的话),最后发现更新全书所需时间依然要大于Android系统的发布间隔。为了让读者可以早日阅读到大家感兴趣的内容,本次版本的部分章节保留了第1版的原有内容——本书下一次再版时会争取将它们更新到Android的最新版本。这一点希望得到大家的谅解,谢谢!
致谢
感谢我目前任职公司的领导和同事们,是你们的帮助和支持,才让我更快地融入到了这个大家庭中。在一个到处都是“聪明人”和具有“狼性奋斗者”精神的公司里,每天的进步和知识积累都是让人愉悦的。
感谢人民邮电出版社的编辑,你们的专业态度和处理问题的人性化,是所有作者的“福音”。
感谢我的家人林进跃、张建山、林美玉、杨惠萍、林惠忠、林月明,没有你们的鼓励与理解,就没有本书的顺利出版。
感谢我的妻子张白杨的默默付出,是你工作之外还无怨无悔地在照顾着我们可爱的宝宝,才让我有充足的时间和精力来写作。
感谢所有读者的支持,是你们赋予了我写作的动力。另外,因为个人能力和水平有限,书中难免会有不足之处,希望读者不吝指教,一起探讨学习。
作者
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。
林学森,曾于多家跨国企业担任研发和管理工作,并已在国内外会议、杂志上发表多篇文章,获得多个发明专利。现为某世界500强科技公司高级专家、资深架构师。