全書從操作系統的基礎知識入手, 全面剖析進程/線程、內存管理、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強科技公司高級專家、資深架構師。