《深刻理解Android:Wi-Fi,NFC和GPS》章節連載[節選]--前言

首先感謝各位兄弟姐妹們的耐心等待。本書預計在3月中旬上市發售。從今天開始,我將在博客中連載此書的一些內容。注意,此處連載的是未經出版社編輯的原始稿件,因此樣子會有些非專業。程序員

  數據結構

本書主要內容及特點

本書是筆者「深刻理解Android」系列的第三本書,也是該系列專題卷的第二本書[①]。本書將關注Android平臺中很是重要而且專業背景知識很濃厚的Wi-FiNFCGPS等模塊。相比筆者早前所撰寫的卷I、卷II,本書和它們的區別在於:架構

  • I和卷II的內容幾乎沒有涉及到什麼專業知識。讀者只要認真研讀代碼,提升代碼閱讀能力以後就能夠輕鬆掌握它們。
  • 而本書所講解的Wi-FiNFC以及GPS模塊的背後都有着很是多的專業知識,例如與Wi-Fi相關的802.11協議、Wi-Fi Alliance定義的Wi-Fi Simple ConfigurationWi-Fi P2P協議、NFC Forum定義的一整套與NFC相關的協議、與GPS相關的衛星導航原理、AGPSOMA-SUPL協議等等等等。顯然,若是不瞭解這些專業知識,讀者將不可能真正掌握它們在Android平臺中的代碼實現。

考慮到這些專業知識的重要性,本書在講解Android平臺中Wi-FiNFCGPS模塊的實現以前,都將先行重點介紹與代碼相關的專業知識。固然,這些專業知識內容如此豐富,筆者在一本書中沒法所有涵蓋它們。爲了方便讀者進一步深刻學習,本書每章的最後都會列舉出筆者在撰寫它們時所閱讀的參考文獻less

如下是本書的內容概述:函數

  • 第一章介紹本書的內容組成、工具使用以及參考源碼的下載方法。
  • 第二章介紹Netd和與之相關的背景知識。
  • 第三章介紹Wi-Fi基礎知識。Wi-Fi是本章的重點,並且也是當下最熱門的技術,因此本書用一整章來介紹它的基礎知識。
  • 第四章介紹wpa_supplicant,它是Wi-Fi領域中最核心的軟件實現。
  • 第五章介紹WifiService,它是Android平臺中特有的Wi-Fi服務模塊。
  • 第六章和第七章介紹Wi-Fi AllianceWi-Fi聯盟)推出的兩項重要技術,Wi-Fi Simple ConfigurationWi-Fi P2P以及它們在Android平臺中的代碼實現。
  • 第八章介紹NFC背景知識以及NFCAndroid平臺中的代碼實現。NFC也是一門歷史比較悠久的技術了,但願它能隨着Android的普及而走向大衆。
  • 第九章介紹GPS原理及Android平臺中的位置管理服務架構。

本書經過理論和代碼相結合的方式進行講解,旨在引領讀者一步步瞭解Wi-FiNFCGPS模塊的工做原理。總之,筆者但願讀者在閱讀完本書後能有如下收穫:工具

  • 初步掌握Wi-FiNFCGPS的專業知識。
  • 根據其實現代碼,進一步加深對這些專業知識的理解。

讀者對象

適合閱讀本書的讀者包括:源碼分析

  • Android系統開發工程師:系統開發工程師經常須要深刻理解系統的運轉過程,而本書所涉及的內容正是他們在工做和學習中最想了解的。那些對具體模塊感興趣的讀者也可單刀直入,閱讀相關章節。
  • Wi-FiNFCGPSBSP開發工程師:BSP開發工程師更須要對Android平臺中這些模塊的工做原理及背景知識有着深刻的理解。雖然本書沒有介紹這些模塊在Linux Kernel層的實現,但瞭解它們在用戶空間的工做流程也將極大幫助BSP開發工程師拓展本身的知識面。
  • Wi-FiNFCGPS感興趣的在校高年級本科生、研究生和其餘讀者:掌握理論的基礎上,如何在實際代碼中來實現或使用它們也許是衆多學子不多接觸的領域。因此,這本理論與代碼實現深度結合的書籍必定可在這一塊助您一臂之力。

 

如何閱讀本書

本書是一本專業知識和代碼實現相結合的書籍,因此讀者在閱讀時:post

  • 首先閱讀專業知識。若是您對它們比較瞭解的話,能夠直接跳轉到代碼實現。
  • 而後是Android平臺中相關模塊的代碼實現。這些代碼實現每每基於必定的專業知識。因此讀者在閱讀代碼時務必和前述的專業知識相結合。
  • 每章最後都列出了筆者在撰寫它們時所參考的資料。這些資料較多,讀者可根據它們開展進一步的研究工做。

另外,和卷1以及卷II相似的是:每章開頭都把本章涉及的源碼路徑所有列出,而在具體分析源碼時,則只列出該源碼的文件名及所分析的函數或相關數據結構名。例如:學習

[-->AndroidRuntime.cpp::函數或數據結構名]開發工具

//這裏是源碼分析和一些註釋

最後,本書在描述類之間的關係及函數調用流程上,使用了UML的靜態類圖及序列圖。UML是一個強大的工具,但它的建模規範過於繁瑣,爲更簡單清晰地描述事情的本質,本書並未徹底遵循UML的建模規範。這裏舉二例,如圖1和圖2所示.

1  UML示例圖之一

在圖1中:

  • 外部類內部的方框用於表示內部類。另外,外部類A.內部類B也用於表示內部類。
  • 接口和普通類用同一種框圖表示。

2所示爲本書描述數據結構時使用的UML圖:

2  UML示例圖之二

2所示爲本書描述數據結構及成員時使用的UML圖例。

特別注意:本書所使用的UML圖都比較簡單,讀者沒必要花費大量時間專門學習UML。另外,出於方便考慮,本書所繪製的UML圖沒有嚴格遵照UML規範。這一點敬請讀者諒解。

本書涉及的Android源碼及一些開發工具的下載地址爲:http://115.com/lb/5lbdugrdt4r。關於它們的使用詳情,請讀者閱讀第11.3節。

 

勘誤和支持

因爲做者的水平有限,加之編寫時間倉促,書中不免會出現一些錯誤或不許確的地方,懇請讀者不吝批評指正。如有問題,可經過郵箱或在博客上留言與筆者共同商討。筆者的聯繫方式是:

 

致謝

本書即將付梓!首先要感謝楊福川編輯的大力支持。另外,要感謝本書審稿編輯白宇嚴謹負責的工做。

另外,筆者須要特別感謝所就任的Tieto公司。這是筆者第一次供職於一家外資企業。Tieto開放的企業文化、Android團隊高效的工做效率,團隊成員之間默契的工做配合程度以及領導無私和有力的支持着實讓我感到幸運和自豪。在Tieto就任的一年中,咱們Android團隊不只成功贏得了客戶的信任,更是獲得了Tieto公司總部和位於其餘國家分公司同事們的一致承認。同時,團隊成員還積極分享,並在《程序員》雜誌上發表了六篇高質量的文章。

在此,筆者藉助本書對如下Tieto的領導和同事表示衷心的感謝。他們是北京分公司的LeohongbinJamesyantaomeiyangdujiangchanggengcaiminwenjinghuaizhihuirongxinzhihuiminyuzhengLiuxuanEmilyDiegojinghuaJenny等,成都分公司的tianxiangchengguo等,波蘭分公司的MarcinMarciejFilip Matusiak等、捷克分公司的VaclavBronislavPetrous Jan等、芬蘭分公司的Mikel Echegoyen

固然,本書能得以快速出版,還須要感謝兩位功力深厚並熱心參與技術審稿的專家。他們是全志(Allwinner)公司Wireless Team負責人吳勁良以及高通(Qualcomm)中國資深研發經理楊洋。二位專家在各自領域所體現出來的專業素養和技術水平之高時刻提醒筆者應牢記「路漫漫其修遠兮,吾將上下而求索」。另外,高通中國資深研發經理毛曉冬也對本書成功編寫提供了不小的幫助。在此一併感謝他們。

最後,一如既往地感謝家人和妻子。而且,筆者尤爲但願明年上天能恩賜一個健康可愛的寶寶。這樣,我將擁有更加無窮的動力來回饋那些花費寶貴時間和精力關注本書的讀者以及全部在人生和職業道路上曾給予我指導的諸位師長。

                                                                     鄧凡平

                                                                                           201311月於Tieto北京分公司


[①]本系列專題卷第一本書是由楊青平撰寫的《深刻理解Android:Telephony原理剖析與最佳實踐》。

相關文章
相關標籤/搜索