书籍详情
《深入理解Android:Wi-Fi、NFC和GPS卷》[53M]百度网盘|亲测有效|pdf下载
  • 深入理解Android:Wi-Fi、NFC和GPS卷

  • 出版社:机械工业出版社京东自营官方旗舰店
  • 出版时间:2014-04
  • 热度:11629
  • 上架时间:2024-06-30 09:38:03
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

  

  经典热销书“深入理解Android系列”新作,资深Android系统专家邓凡平撰写,全志和高通等公司资深专家担任技术审校并强烈推荐

  从专业知识角度和Android系统代码实现角度对Netd、Wi-Fi、NFC和GPS模块代码进行深入剖析,深刻揭示其实现原理和工作流程

海报
  

height=842

内容简介

  


  


  

data-lazyload=//img30.360buyimg.com//vc/g15/M02/12/1A/rBEhWlM80m8IAAAAAAB-wOpkLRkAALIagCNguwAAH7Y613.jpg
  


  


  


  

  经典热销书“深入理解Android系列”新作,资深Android系统专家邓凡平撰写,全志和高通等公司资深专家担任技术审校并强烈推荐


  

  从专业知识角度和Android系统代码实现角度对Netd、Wi-Fi、NFC和GPS模块代码进行深入剖析,深刻揭示其实现原理和工作流程


  

海报
  


  

height=842

作者简介

  本书是经典畅销书“深入理解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平台中的位置管理服务架构。

目录

第1章 准备工作
1.1 Android系统架构
1.2 工具使用
1.2.1 Source Insight的使用
1.2.2 Eclipse的使用
1.2.3 BusyBox的使用
1.3 本书资源下载说明
第2章 深入理解Netd
2.1 概述
2.2 Netd工作流程
2.2.1 main函数分析
2.2.2 NetlinkManager分析
2.2.3 CommandListener分析
2.2.4 DnsProxyListener分析
2.2.5 MDnsSdListener分析
2.3 CommandListener中的命令
2.3.1 iptables、tc和ip命令
2.3.2 CommandListener构造函数和测试工具ndc
2.3.3 InterfaceCmd命令
2.3.4 IpFwd和FirewallCmd命令
2.3.5 ListTtysCmd和PppdCmd命令
2.3.6 BandwidthControlCmd和IdletimerControlCmd命令
2.3.7 NatCmd命令
2.3.8 TetherCmd和SoftapCmd命令
2.3.9 ResolverCmd命令
2.4 NetworkManagementService介绍
2.4.1 create函数详解
2.4.2 systemReady函数详解
2.5 本章总结和参考资料说明
2.5.1 本章总结
2.5.2 参考资料说明
第3章 Wi-Fi基础知识
3.1 概述
3.2 无线电频谱和802.11协议的发展历程
3.2.1 无线电频谱知识
3.2.2 IEEE 802.11发展历程
3.3 802.11无线网络技术
3.3.1 OSI基本参考模型及相关基本概念
3.3.2 802.11知识点导读
3.3.3 802.11组件
3.3.4 802.11 Service介绍
3.3.5 802.11 MAC服务和帧
3.3.6 802.11 MAC管理实体
3.3.7 无线网络安全技术知识点
3.4 Linux Wi-Fi编程API介绍
3.4.1 Linux Wireless Extensions介绍
3.4.2 nl80211介绍
3.5 本章总结和参考资料说明
3.5.1 本章总结
3.5.2 参考资料说明
第4章 深入理解wpa_supplicant
4.1 概述
4.2 初识wpa_supplicant
4.2.1 wpa_supplicant架构
4.2.2 wpa_supplicant编译配置
4.2.3 wpa_supplicant命令和控制API
4.2.4 git的使用
4.3 wpa_supplicant初始化流程
4.3.1 main函数分析
4.3.2 wpa_supplicant_init函数分析
4.3.3 wpa_supplicant_add_iface函数分析
4.3.4 wpa_supplicant_init_iface函数分析
4.4 EAP和EAPOL模块
4.4.1 EAP模块分析
4.4.2 EAPOL模块分析
4.5 wpa_supplicant连接无线网络分析
4.5.1 ADD_NETWORK命令处理
4.5.2 SET_NETWORK命令处理
4.5.3 ENABLE_NETWORK命令处理
4.6 本章总结和参考资料说明
4.6.1 本章总结
4.6.2 参考资料说明
第5章 深入理解WifiService
5.1 概述
5.2 WifiService的创建及初始化
5.2.1 HSM和AsyncChannel介绍
5.2.2 WifiService构造函数分析
5.2.3 WifiStateMachine介绍
5.3 加入无线网络分析
5.3.1 Settings操作Wi-Fi分析
5.3.2 WifiService操作Wi-Fi分析
5.4 WifiWatchdogStateMachine介绍
5.5 Captive Portal Check介绍
5.6 本章总结和参考资料说明
5.6.1 本章总结
5.6.2 参考资料说明
第6章 深入理解Wi-Fi Simple Configuration
6.1 概述
6.2 WSC基础知识
6.2.1 WSC应用场景
6.2.2 WSC核心组件及接口
6.3 Registration Protocol详解
6.3.1 WSC IE和Attribute介绍
6.3.2 802.11管理帧WSC IE设置
6.3.3 EAP-WSC介绍
6.4 WSC代码分析
6.4.1 Settings中的WSC处理
6.4.2  WifiStateMachine的处理
6.4.3 wpa_supplicant中的WSC处理
6.4.4 EAP-WSC处理流程分析
6.5 本章总结和参考资料说明
6.5.1 本章总结
6.5.2 参考资料说明
第7章 深入理解Wi-Fi P2P
7.1 概述
7.2 P2P基础知识
7.2.1 P2P架构
7.2.2 P2P Discovery技术
7.2.3 P2P工作流程
7.3 WifiP2pSettings和WifiP2pService介绍
7.3.1 WifiP2pSettings工作流程
7.3.2 WifiP2pService工作流程
7.4 wpa_supplicant中的P2P
7.4.1 P2P模块初始化
7.4.2 P2P Device Discovery流程分析
7.4.3 Provision Discovery流程分析
7.4.4 GO Negotiation流程分析
7.5 本章总结和参考资料说明
7.5.1 本章总结
7.5.2 参考资料说明
第8章 深入理解NFC
8.1 概述
8.2 NFC基础知识
8.2.1 NFC概述
8.2.2 NFC R/W运行模式
8.2.3 NFC P2P运行模式
8.2.4 NFC CE运行模式
8.2.5 NCI原理
8.2.6 NFC相关规范
8.3 Android中的NFC
8.3.1 NFC应用示例
8.3.2 NFC系统模块
8.4 NFC HAL层讨论
8.5 本章总结和参考资料说明
8.5.1 本章总结
8.5.2 参考资料说明
第9章 深入理解GPS
9.1 概述
9.2 GPS基础知识
9.2.1 卫星导航基本原理
9.2.2 GPS系统组成及原理
9.2.3 OMA-SUPL协议
9.3 Android中的位置管理
9.3.1 LocationManager架构
9.3.2 LocationManager应用示例
9.3.3 LocationManager系统模块
9.4 本章总结和参考资料说明
9.4.1 本章总结
9.4.2 参考资料说明
附录

精彩书摘

策略路由是指系统依据网络管理员定下的一些策略对IP包进行的路由选择。例如网管可设置这样的策略:“所有来自网A的包,选择X路径,其他选择Y路径”,或者“所有TOS (Type Of Service,IP协议头的一部分)为A的包选择路径F,其他选择路径K”。
从Kemel 2.1开始,Linux采用了策略性路由机制。相比传统路由算法,策略路由主要引入了多路由表及规则的概念。
传统路由算法仅使用一张路由表。但在某些情况下,系统需要使用多个路由表。例如,一个子网通过一个路由器与外界相连。而该路由器与外界有两条线路相连,其中一条的速度较快,另一条的速度较慢。对于子网内的大多数用户来说,由于对速度没有特殊要求,可以让他们用速度较慢的路由;但是子网内有一些特殊用户对速度的要求较苛刻,他们需要使用速度较快的路由。很明显,仅使用一张路由表是无法实现上述要求的。而如果根据源地址或其他参数,对不同的用户使用不同的路由表,就可以实现这项要求。
传统Linux下配置路由的工具是route,而实现策略性路由配置的工具是iproute2工具包,常用的命令就是ip命令。
Linux最多可以支持255张路由表,其中有4张表是内置的。
表255:本地路由表(local table)。本地接口地址,广播地址和NAT地址都放在这个表中。该路由表由系统自动维护,管理员不能直接修改。
表254:主路由表(main table)。如果没有指明路由所属的表,所有的路由都默认都放在这个表里,一般来说,传统路由工具命令(如route)所添加的路由都会加到这个表中。一般是普通的路由。
表253:默认路由表(default table)。一般来说默认的路由都放在这张表,但是如果特别指明,该表也可以存储所有的网关路由。
表0:默认保留。
2.3.1节简单介绍了ip命令,ip命令的一些具体用法如下。

前言/序言

  前  言
  本书主要内容及特色
  本书所讲解的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感兴趣的在校高年级本科生、研究生和其他读者
  在掌握理论的基础上,如何在实际代码中来实现或使用它们也许是众多学子最想知道的。希望这本理论与代码实现深度结合的书籍会助您一臂之力。
  如何阅读本书
  本书是一本专业知识和代码实现相结合的书籍,所以读者在阅读时应注意以下事项。
  首先阅读专业知识。如果对这些内容比较了解,可以直接跳转到代码实现。
  然后是Android平台中相关模块的代码实现。这些代码实现往往基于一定的专业知识,所以在阅读代码时务必和前述的专业知识相结合。
  每章最后都列出了笔者在撰写各章时所参考的资料。资料较多,读者可根据这些内容开展进一步的研究工作。
  每章开头都把本章涉及的源码路径全部列出,而在具体分析源码时,只列出该源码的文件名及所分析的函数或相关数据结构名。例如:
  [-->AndroidRuntime.cpp::函数或数据结构名]
  // 源码分析和一些注释
  最后,本书在描述类之间的关系及函数调用流程上,使用了UML的静态类图及序列图。UML是一个强大的工具,但它的建模规范过于烦琐,为更简单清晰地描述事情的本质,本书并未完全遵循UML的建模规范。如图1所示,外部类内部的方框用于表示内部类。另外,“外部类A.内部类B”也用于表示内部类。接口和普通类用同一种框图表示。


  图1类图
  图2所示为本书描述数据结构及成员时使用的UML图例。


  图2数据结构图
  特别注意 本书所使用的UML图都比较简单,读者不必花费大量时间专门学习UML。另外,出于方便考虑,本书所绘制的UML图没有严格遵守UML规范,这一点敬请读者谅解。
  本书涉及的Android源码及一些开发工具的下载地址为http://115.com/lb/5lbdugrdt4r。关于它们的使用详情,请读者阅读1.3节。
  勘误和支持
  由于作者的水平有限,加之编写时间仓促,书中难免会出现一些错误或不准确的地方,恳请读者不吝批评指正。若有问题,可通过邮箱或在博客上留言与笔者共同商讨。笔者的联系方式如下。
  致谢
  首先要感谢杨福川编辑的大力支持。另外,要感谢本书审稿编辑白宇严谨负责的工作。
  特别感谢Tieto公司。Tieto开放的企业文化、Android团队高效的工作效率、团队成员之间默契的工作配合程度,以及领导无私而有力的支持着实让我感到幸运和自豪。在Tieto就职的一年中,笔者所在的Android团队不仅成功赢得了客户的信任,更是得到了Tieto公司总部和其他国家分公司同事们的一致认可。同时,团队成员还积极分享,并在《程序员》杂志上发表了六篇高质量的文章。
  在此,笔者借助本书对Tieto的领导和同事表示衷心的感谢。他们是中国北京分公司的Leo、hongbin、James、yantao、meiyang、dujiang、changgeng、caimin、wenjing、huaizhi、huirong、xinzhi、huimin、yuzheng、Liuxuan、Emily、Diego、jinghua、Jenny等,中国成都分公司的tianxiang、chengguo等,波兰分公司的Marcin、Marciej、Filip Matusiak等、捷克分公司的Vaclav、Bronislav、Petrous Jan等、芬兰分公司的Mikel Echegoyen。
  当然,本书能得以快速出版,还需要感谢两位功力深厚并热心参与技术审稿的专家。他们是全志(Allwinner)公司Wireless Team负责人吴劲良,以及高通(Qualcomm)中国资深研发经理杨洋。二位专家在各自领域所表现出来的专业素养和技术水平,时刻提醒笔者应牢记“路漫漫其修远兮,吾将上下而求索”。另外,高通中国资深研发经理毛晓冬也对本书成功编写提供了帮助,在此一并表示感谢。
  最后,感谢我的家人,尤其是我的妻子。希望明年上天能恩赐一个健康可爱的宝宝,这样,我将拥有更加无穷的动力编写更多书籍来回馈花费宝贵时间和精力关注本书的读者,以及所有在人生和职业道路上曾给予我指导的诸位师长。