
邓凡平 资深Android系统工程师,对Android系统的设计与实现有非常深入的研究,曾担任Tieto公司高级软件架构师。畅销书“深入理解Android”系列的总策划和主笔,出版有畅销书《深入理解Android:卷I》和《深入理解Android:卷II》。喜欢钻研,乐于分享,活跃于CSDN、51CTO和开源中国等专业技术社区,撰写的Android Framework源码分析的系列文章深受读者欢迎。2013年荣获51CTO读书频道评选的“最受读者喜爱的IT图书作者奖”。
本书是经典畅销书“深入理解Android”系列的新作,由资深Android系统专家邓凡平先生撰写,全志和高通等公司资深专家担任技术审校并强烈推荐。从通信专业知识和Android系统代码实现的角度,对Netd、Wi-Fi、NFC和GPS等模块的代码进行深入的剖析,旨在深刻揭示其实现原理和工作流程。其中涉及大量通信相关的专业知识,因此特意邀请全志和高通等著名芯片公司的资深专家担任技术审校。本书从实际应用的需求出发,适合所有Android系统工程师、Android应用开发工程师和BSP开发工程师阅读。全书共9章。第1章介绍本书的内容组成、工具使用以及参考源码的下载方法。第2章介绍Netd及相关的背景知识。第3~5章介绍Wi-Fi基础知识,重点分析了wpa_supplicant的实现,以及Android平台中特有的Wi-Fi服务模块WifiService。第6~7章讲解了Wi-Fi联盟推出的两项重要技术Wi-Fi Simple Configuration和Wi-Fi P2P,以及它们在Android平台中的代码实现。第8章详细介绍了NFC基础知识,以及NFC在Android平台中的代码实现。第9章讲解了GPS原理及Android平台中的位置管理服务架构。本书主要内容及特色:本书所讲解的Wi-Fi、NFC以及GPS模块的背后都涉及非常多的专业知识,例如与Wi-Fi相关的802.11协议、Wi-Fi Alliance(Wi-Fi联盟)定义的Wi-Fi Simple Configuration和Wi-Fi P2P协议、NFC Forum定义的一整套与NFC相关的协议、与GPS相关的卫星导航原理、AGPS和OMA-SUPL协议等。显然,如果不了解这些专业知识,就不可能真正掌握它们在Android平台中的代码实现。考虑到这些专业知识的重要性,本书在讲解Android平台中Wi-Fi、NFC和GPS模块的实现之前,先重点介绍与代码相关的专业知识。当然,这些专业知识内容如此丰富,在一本书中无法全部涵盖。为了方便读者进一步深入学习,本书每章的最后都会列举笔者在撰写各章时所阅读的参考资料。以下是本书的内容概述。第1章介绍本书的内容组成、使用的工具以及参考源码的下载方法。第2章介绍Netd以及相关的背景知识。第3章介绍Wi-Fi基础知识。Wi-Fi是本章的重点,而且也是当下最热门的技术。第4章介绍wpa_supplicant,它是Wi-Fi领域中最核心的软件实现。第5章介绍WifiService,它是Android平台中特有的Wi-Fi服务模块。第6章和第7章介绍Wi-Fi Alliance推出的两项重要技术——Wi-Fi Simple Configuration和Wi-Fi P2P,以及它们在Android平台中的代码实现。第8章介绍NFC背景知识以及NFC在Android平台中的代码实现。NFC也是历史比较悠久的技术,希望它能随着Android的普及而走向大众。第9章介绍GPS原理及Android平台中的位置管理服务架构。附录为笔者和审稿专家之一的吴劲良先生关于本书定位、学习方法等方面的讨论。相信这些讨论内容能引起读者的共鸣。本书通过理论和代码相结合的方式进行讲解,旨在引领读者一步步了解Wi-Fi、NFC和GPS模块的工作原理。总之,笔者希望读者在阅读完本书后能有以下收获。初步掌握Wi-Fi、NFC和GPS的专业知识。根据其实现代码,进一步加深对这些专业知识的理解。读者对象:适合阅读本书的读者包括:Android系统开发工程师系统开发工程师常常需要深入理解系统的运转过程,而本书所涉及的内容正是他们在工作和学习中最想了解的。对具体模块感兴趣的读者也可单刀直入,阅读相关章节。Wi-Fi、NFC或GPS的BSP开发工程师BSP开发工程师更需要对Android平台中这些模块的工作原理及背景知识有深入的理解。虽然本书没有介绍这些模块在Linux Kernel层的实现,但了解它们在用户空间的工作流程也将极大帮助BSP开发工程师拓展自己的知识面。对Wi-Fi、NFC和GPS感兴趣的在校高年级本科生、研究生和其他读者在掌握理论的基础上,如何在实际代码中来实现或使用它们也许是众多学子最想知道的。希望这本理论与代码实现深度结合的书籍会助您一臂之力。
前 言第1章 准备工作 11.1?Android系统架构 21.2 工具使用 21.2.1 Source Insight的使用 31.2.2 Eclipse的使用 31.2.3 BusyBox的使用 71.3?本书资源下载说明 8第2章 深入理解Netd 92.1?概述 102.2?Netd工作流程 102.2.1?main函数分析 112.2.2?NetlinkManager分析 122.2.3?CommandListener分析 162.2.4?DnsProxyListener分析 182.2.5?MDnsSdListener分析 212.3?CommandListener中的命令 262.3.1?iptables、tc和ip命令 272.3.2?CommandListener构造函数和测试工具ndc 312.3.3?InterfaceCmd命令 332.3.4?IpFwd和FirewallCmd命令 402.3.5?ListTtysCmd和PppdCmd命令 432.3.6?BandwidthControlCmd和IdletimerControlCmd命令 452.3.7?NatCmd命令 472.3.8?TetherCmd和SoftapCmd命令 492.3.9?ResolverCmd命令 542.4?NetworkManagementService介绍 552.4.1?create函数详解 552.4.2?systemReady函数详解 572.5?本章总结和参考资料说明 582.5.1?本章总结 582.5.2?参考资料说明 58第3章 Wi-Fi基础知识 623.1?概述 633.2?无线电频谱和802.11协议的发展历程 633.2.1?无线电频谱知识 633.2.2?IEEE 802.11发展历程 643.3?802.11无线网络技术 663.3.1?OSI基本参考模型及相关基本概念 663.3.2?802.11知识点导读 733.3.3?802.11组件 743.3.4?802.11 Service介绍 773.3.5?802.11 MAC服务和帧 823.3.6?802.11 MAC管理实体 983.3.7?无线网络安全技术知识点 1053.4 Linux Wi-Fi编程API介绍 1213.4.1 Linux Wireless Extensions介绍 1223.4.2 nl80211介绍 1253.5 本章总结和参考资料说明 1353.5.1 本章总结 1353.5.2 参考资料说明 136第4章 深入理解wpa_supplicant 1404.1 概述 1424.2 初识wpa_supplicant 1444.2.1 wpa_supplicant架构 1444.2.2 wpa_supplicant编译配置 1454.2.3 wpa_supplicant命令和控制API 1464.2.4 git的使用 1494.3 wpa_supplicant初始化流程 1494.3.1 main函数分析 1504.3.2 wpa_supplicant_init函数分析 1534.3.3 wpa_supplicant_add_iface函数分析 1584.3.4 wpa_supplicant_init_iface函数分析 1644.4 EAP和EAPOL模块 1914.4.1 EAP模块分析 1914.4.2 EAPOL模块分析 2024.5 wpa_supplicant连接无线网络分析 2124.5.1 ADD_NETWORK命令处理 2144.5.2 SET_NETWORK命令处理 2164.5.3 ENABLE_NETWORK命令处理 2184.6 本章总结和参考资料说明 2644.6.1 本章总结 2644.6.2 参考资料说明 264第5章 深入理解WifiService 2675.1 概述 2685.2 WifiService的创建及初始化 2685.2.1 HSM和AsyncChannel介绍 2695.2.2 WifiService构造函数分析 2765.2.3 WifiStateMachine介绍 2775.3 加入无线网络分析 2875.3.1 Settings操作Wi-Fi分析 2885.3.2 WifiService操作Wi-Fi分析 2955.4 WifiWatchdogStateMachine介绍 3125.5 Captive Portal Check介绍 3165.6 本章总结和参考资料说明 3205.6.1 本章总结 3205.6.2 参考资料说明 320第6章 深入理解Wi-Fi Simple Configuration 3216.1 概述 3226.2 WSC基础知识 3226.2.1 WSC应用场景 3236.2.2 WSC核心组件及接口 3256.3 Registration Protocol详解 3266.3.1 WSC IE和Attribute介绍 3286.3.2 802.11管理帧WSC IE设置 3316.3.3 EAP-WSC介绍 3356.4 WSC代码分析 3436.4.1 Settings中的WSC处理 3436.4.2 WifiStateMachine的处理 3456.4.3 wpa_supplicant中的WSC处理 3476.4.4 EAP-WSC处理流程分析 3566.5 本章总结和参考资料说明 3706.5.1 本章总结 3706.5.2 参考资料说明 370第7章 深入理解Wi-Fi P2P 3717.1 概述 3727.2 P2P基础知识 3727.2.1 P2P架构 3727.2.2 P2P Discovery技术 3747.2.3 P2P工作流程 3897.3 WifiP2pSettings和WifiP2pService介绍 3927.3.1 WifiP2pSettings工作流程 3927.3.2 WifiP2pService工作流程 3977.4 wpa_supplicant中的P2P 4087.4.1 P2P模块初始化 4097.4.2 P2P Device Discovery流程分析 4167.4.3 Provision Discovery流程分析 4267.4.4 GO Negotiation流程分析 4337.5 本章总结和参考资料说明 4417.5.1 本章总结 4417.5.2 参考资料说明 441第8章 深入理解NFC 4438.1 概述 4448.2 NFC基础知识 4448.2.1 NFC概述 4458.2.2 NFC R/W运行模式 4488.2.3 NFC P2P运行模式 4538.2.4 NFC CE运行模式 4598.2.5 NCI原理 4628.2.6 NFC相关规范 4648.3 Android中的NFC 4648.3.1 NFC应用示例 4658.3.2 NFC系统模块 4788.4 NFC HAL层讨论 4988.5 本章总结和参考资料说明 5008.5.1 本章总结 5008.5.2 参考资料说明 500第9章 深入理解GPS 5039.1 概述 5049.2 GPS基础知识 5049.2.1 卫星导航基本原理 5059.2.2 GPS系统组成及原理 5139.2.3 OMA-SUPL协议 5329.3 Android中的位置管理 5369.3.1 LocationManager架构 5369.3.2 LocationManager应用示例 5389.3.3 LocationManager系统模块 5419.4 本章总结和参考资料说明 5709.4.1 本章总结 5709.4.2 参考资料说明 570附录 574
评论关闭。