目录
前 言
第1章 准备工作 1
1.1?Android系统架构 2
1.2 工具使用 2
1.2.1 Source Insight的使用 3
1.2.2 Eclipse的使用 3
1.2.3 BusyBox的使用 7
1.3?本书资源下载说明 8
第2章 深入理解Netd 9
2.1?概述 10
2.2?Netd工作流程 10
2.2.1?main函数分析 11
2.2.2?NetlinkManager分析 12
2.2.3?CommandListener分析 16
2.2.4?DnsProxyListener分析 18
2.2.5?MDnsSdListener分析 21
2.3?CommandListener中的命令 26
2.3.1?iptables、tc和ip命令 27
2.3.2?CommandListener构造函数和测试工具ndc 31
2.3.3?InterfaceCmd命令 33
2.3.4?IpFwd和FirewallCmd命令 40
2.3.5?ListTtysCmd和PppdCmd命令 43
2.3.6?BandwidthControlCmd和IdletimerControlCmd命令 45
2.3.7?NatCmd命令 47
2.3.8?TetherCmd和SoftapCmd命令 49
2.3.9?ResolverCmd命令 54
2.4?NetworkManagementService介绍 55
2.4.1?create函数详解 55
2.4.2?systemReady函数详解 57
2.5?本章总结和参考资料说明 58
2.5.1?本章总结 58
2.5.2?参考资料说明 58
第3章 Wi-Fi基础知识 62
3.1?概述 63
3.2?无线电频谱和802.11协议的发展历程 63
3.2.1?无线电频谱知识 63
3.2.2?IEEE 802.11发展历程 64
3.3?802.11无线网络技术 66
3.3.1?OSI基本参考模型及相关基本概念 66
3.3.2?802.11知识点导读 73
3.3.3?802.11组件 74
3.3.4?802.11 Service介绍 77
3.3.5?802.11 MAC服务和帧 82
3.3.6?802.11 MAC管理实体 98
3.3.7?无线网络安全技术知识点 105
3.4 Linux Wi-Fi编程API介绍 121
3.4.1 Linux Wireless Extensions介绍 122
3.4.2 nl80211介绍 125
3.5 本章总结和参考资料说明 135
3.5.1 本章总结 135
3.5.2 参考资料说明 136
第4章 深入理解wpa_supplicant 140
4.1 概述 142
4.2 初识wpa_supplicant 144
4.2.1 wpa_supplicant架构 144
4.2.2 wpa_supplicant编译配置 145
4.2.3 wpa_supplicant命令和控制API 146
4.2.4 git的使用 149
4.3 wpa_supplicant初始化流程 149
4.3.1 main函数分析 150
4.3.2 wpa_supplicant_init函数分析 153
4.3.3 wpa_supplicant_add_iface函数分析 158
4.3.4 wpa_supplicant_init_iface函数分析 164
4.4 EAP和EAPOL模块 191
4.4.1 EAP模块分析 191
4.4.2 EAPOL模块分析 202
4.5 wpa_supplicant连接无线网络分析 212
4.5.1 ADD_NETWORK命令处理 214
4.5.2 SET_NETWORK命令处理 216
4.5.3 ENABLE_NETWORK命令处理 218
4.6 本章总结和参考资料说明 264
4.6.1 本章总结 264
4.6.2 参考资料说明 264
第5章 深入理解WifiService 267
5.1 概述 268
5.2 WifiService的创建及初始化 268
5.2.1 HSM和AsyncChannel介绍 269
5.2.2 WifiService构造函数分析 276
5.2.3 WifiStateMachine介绍 277
5.3 加入无线网络分析 287
5.3.1 Settings操作Wi-Fi分析 288
5.3.2 WifiService操作Wi-Fi分析 295
5.4 WifiWatchdogStateMachine介绍 312
5.5 Captive Portal Check介绍 316
5.6 本章总结和参考资料说明 320
5.6.1 本章总结 320
5.6.2 参考资料说明 320
第6章 深入理解Wi-Fi Simple Configuration 321
6.1 概述 322
6.2 WSC基础知识 322
6.2.1 WSC应用场景 323
6.2.2 WSC核心组件及接口 325
6.3 Registration Protocol详解 326
6.3.1 WSC IE和Attribute介绍 328
6.3.2 802.11管理帧WSC IE设置 331
6.3.3 EAP-WSC介绍 335
6.4 WSC代码分析 343
6.4.1 Settings中的WSC处理 343
6.4.2 WifiStateMachine的处理 345
6.4.3 wpa_supplicant中的WSC处理 347
6.4.4 EAP-WSC处理流程分析 356
6.5 本章总结和参考资料说明 370
6.5.1 本章总结 370
6.5.2 参考资料说明 370
第7章 深入理解Wi-Fi P2P 371
7.1 概述 372
7.2 P2P基础知识 372
7.2.1 P2P架构 372
7.2.2 P2P Discovery技术 374
7.2.3 P2P工作流程 389
7.3 WifiP2pSettings和WifiP2pService介绍 392
7.3.1 WifiP2pSettings工作流程 392
7.3.2 WifiP2pService工作流程 397
7.4 wpa_supplicant中的P2P 408
7.4.1 P2P模块初始化 409
7.4.2 P2P Device Discovery流程分析 416
7.4.3 Provision Discovery流程分析 426
7.4.4 GO Negotiation流程分析 433
7.5 本章总结和参考资料说明 441
7.5.1 本章总结 441
7.5.2 参考资料说明 441
第8章 深入理解NFC 443
8.1 概述 444
8.2 NFC基础知识 444
8.2.1 NFC概述 445
8.2.2 NFC R/W运行模式 448
8.2.3 NFC P2P运行模式 453
8.2.4 NFC CE运行模式 459
8.2.5 NCI原理 462
8.2.6 NFC相关规范 464
8.3 Android中的NFC 464
8.3.1 NFC应用示例 465
8.3.2 NFC系统模块 478
8.4 NFC HAL层讨论 498
8.5 本章总结和参考资料说明 500
8.5.1 本章总结 500
8.5.2 参考资料说明 500
第9章 深入理解GPS 503
9.1 概述 504
9.2 GPS基础知识 504
9.2.1 卫星导航基本原理 505
9.2.2 GPS系统组成及原理 513
9.2.3 OMA-SUPL协议 532
9.3 Android中的位置管理 536
9.3.1 LocationManager架构 536
9.3.2 LocationManager应用示例 538
9.3.3 LocationManager系统模块 541
9.4 本章总结和参考资料说明 570
9.4.1 本章总结 570
9.4.2 参考资料说明 570
附录 574
【展开】
【收起】
内容简介
本书是经典畅销书“深入理解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、追日是作者栎年创作的原创作品,下载链接均为网友上传的的网盘链接!
2、相识电子书提供优质免费的txt、pdf等下载链接,所有电子书均为完整版!
下载链接