Android驱动开发权威指南
售  价:
0.01 (会员价:免费)
定 价:
¥60.0
  • 作  者: 杨柳
  • 出 版 社: 机械工业出版社
  • 出版时间: 2014-03-01
  • 分  类: 滑雪  数字媒体技术
  • 购买数量: 库存数量: 109

图书简介

图书目录

内容简介
《Android驱动开发权威指南》根据作者(杨柳)多年的从业经验,从开发实战出发,全面深入地讲解了Android驱动开发。全书以Android驱动本质为源,深入浅出地剖析了Android驱动程序开发要用到的DMA、中断、同步、等待队列与signal等多项技术。还从系统的角度描述了Android驱动与Android其他部分的有机结合,为Android用户提供各类智能输入/输出服务。
《Android驱动开发权威指南》适合从事Linux开发、Android底层驱动开发、系统框架开发,以及Android底层模块验证测试等的相关软件工程人员阅读;也适合从事Android智能手机其他领域的研发人员参考;还适合作为大、中专院校与培训机构的相关实践性指导教材。


作者简介
杨柳,国内某著名大型通信公司资深嵌入式系统工程师,CSDN正式会员、GooglePlay签约注册开发者;国家863计划某项目主要成员,该项目开发了国内第一款Linux智能手机。作者拥有丰富的Linux、WindowsPhone以及Android手机研发经验。

图书目录
编辑
前言
  第一篇 Android的前世今生——Android概述篇
  第1章 Android的前世今生2
  1.1 Android的起源2
  1.2 开放手机联盟2
  1.3 开源与相关协议3
  1.4 系统的升级与发展3
  第2章 Android体系结构4
  2.1 四层空间基本结构4
  2.1.1 Android系统底层开发6
  2.1.2 应用程序开发7
  2.2 Android代码目录结构7
  2.3 Android开发环境搭建8
  第二篇 勿于浮砂筑高台——Linux驱动基础篇
  第3章 Linux内核综述14
  3.1 OS基本概念14
  3.1.1 多用户系统15
  3.1.2 用户和组15
  3.1.3 进程16
  3.1.4 Linux单核架构16
  3.2 Linux内核综述18
  3.2.1 进程/内核模型综述18
  3.2.2 内存管理综述26
  3.2.3 文件系统综述29
  3.2.4 设备驱动简述34
  第4章 Linux内核编程与内核模块35
  4.1 Linux内核源代码目录结构35
  4.2 Linux内核的编译与启动36
  4.3 Linux内核的C编程37
  4.4 Linux内核模块基础与骨架43
  4.5 Linux模块的加载与卸载46
  4.6 Linux模块的参数与导出符号46
  4.7 Linux模块的使用计数48
  第5章 Linux文件系统50
  5.1 Linux文件系统概述50
  5.1.1 Linux文件系统的目录结构50
  5.1.2 设备驱动与Linux文件系统的关联51
  5.2 Linux设备文件系统55
  5.2.1 devfs设备文件系统55
  5.2.2 udev设备文件系统56
  5.2.3 sysfs文件系统与Linux设备57
  5.2.4 udev的组成67
  5.2.5 udev规则文件68
  第6章 Linux字符设备驱动70
  6.1 Linux字符设备驱动结构70
  6.1.1 cdev结构体70
  6.1.2 分配和释放设备号71
  6.1.3 file_operations结构体72
  6.1.4 Linux字符设备驱动的组成74
  6.2 一个字符设备驱动例子——virtualchar77
  6.2.1 头文件、宏及设备结构体77
  6.2.2 加载与卸载设备驱动78
  6.2.3 驱动函数实现79
  6.2.4 驱动设备私有数据83
  6.3 对virtualchar设备的访问90
  第7章 Linux设备驱动中的内存与I/O访问92
  7.1 CPU与内存和I/O之间的故事92
  7.1.1内存空间与I/O空间92
  7.1.2 内存管理单元MMU93
  7.2 Linux内存管理97
  7.3 Linux内存访问99
  7.4 LinuxI/O访问102
  7.4.1 访问I/O102
  7.4.2 申请与释放I/O资源105
  7.4.3 I/O访问流程107
  7.4.4 设备地址与用户空间的映射107
  7.5 DMA114
  7.5.1 DMA与Cache的一致性114
  7.5.2 Linux下的DMA编程114
  第8章 Linux设备驱动中的中断125
  8.1 Linux中断及中断处理架构125
  8.2 Linux中断编程126
  8.2.1 申请和释放中断126
  8.2.2 使能与屏蔽中断127
  8.2.3 底半部机制127
  8.2.4 中断共享130
  8.3 Linux定时器132
  8.4 Linux延时处理134
  8.4.1 短延时135
  8.4.2 长延时135
  8.4.3 睡眠延时136
  第9章 Linux设备驱动中的并发138
  9.1 Linux中的并发与竞争138
  9.2 Linux中常用的同步访问技术139
  9.2.1 中断屏蔽139
  9.2.2 原子操作140
  9.2.3 自旋锁142
  9.2.4 信号量147
  9.2.5 互斥灯152
  9.3 增加并发控制的virtualchar驱动153
  第10章 Linux设备的阻塞式与非阻塞式访问157
  10.1 阻塞式与非阻塞式访问157
  10.1.1 等待队列158
  10.1.2 支持阻塞操作的virtualfifo设备驱动162
  10.2 Linux的轮询访问167
  10.2.1 应用程序中的轮询编程167
  10.2.2 设备驱动中的轮询编程168
  10.2.3 支持轮询操作的virtualfifo驱动169
  第11章 Linux设备驱动中的异步访问171
  11.1 Linux2.6中的异步访问171
  11.1.1 异步访问概念与GNUC库函数171
  11.1.2 使用信号作为异步访问的通知175
  11.1.3 使用回调函数作为异步访问的通知177
  11.1.4 异步访问与设备驱动178
  11.2 异步Fifo驱动例子180
  11.2.1 在virtualfifo驱动中增加异步通知180
  11.2.2 在用户空间验证virtualfifo的异步通知182
  第12章 Linux块设备驱动184
  12.1 块设备的I/O操作特点184
  12.2 Linux块设备驱动结构184
  12.2.1 block_device_operations结构体184
  12.2.2 gendisk结构体186
  12.2.3 request与bio结构体188
  12.2.4 块设备驱动注册与注销197
  12.3 Linux块设备驱动的模块加载与卸载198
  12.4 块设备的打开/释放/IOCTL200
  第13章 Linux网络设备驱动202
  13.1 Linux网络设备驱动体系结构202
  13.2 Linux网络设备驱动结构203
  13.3 Linux网络设备驱动I/O实现204
  13.3.1 网络设备初始化204
  13.3.2 网络数据包的收发205
  第三篇 实践出真知——Android驱动实践篇
  第14章 AndroidHAL层的设计208
  14.1 AndroidHAL概述208
  14.2 为Android开发虚拟驱动virtualio209
  14.3 Android集成C程序访问virtualio220
  14.4 Android通过HAL访问virtualio222
  14.4.1 virtualioHAL模块实现222
  14.4.2 实现访问virtualioHAL模块JNI226
  14.4.3 在Framework层增加virtualio服务229
  第15章 Framebuffer子系统231
  15.1 LinuxFramebuffer一般子系统231
  15.1.1 Framebuffer数据结构231
  15.1.2 Framebuffer驱动237
  15.2 AndroidFramebuffer子系统实践238
  15.2.1 硬件基础238
  15.2.2 CPU侧显示驱动模块240
  15.2.3 LCM驱动模块242
  15.3 Android系统对Framebuffer的使用247
  第16章 Input子系统249
  16.1 LinuxInput一般子系统249
  16.1.1 Input数据结构250
  16.1.2 Input内核模块252
  16.2 AndroidInput子系统实践257
  16.2.1 硬件基础258
  16.2.2 Input驱动模块258
  16.3 Android系统对Input的使用263
  第17章 V4L2子系统266
  17.1 LinuxV4L2一般子系统266
  17.1.1 V4L2数据结构266
  17.1.2 V4L2接口268
  17.1.3 V4L2虚拟驱动vivi273
  17.2 AndroidV4L2实践279
  17.2.1 硬件基础280
  17.2.2 CPU侧CCIC驱动模块281
  17.2.3 OV5642模组驱动模块283
  17.3 Android系统对V4L2的使用286
  第18章 BinderIPC通信子系统288
  18.1 Binder驱动概述288
  18.2 Binder通信模型288
  18.3 Binder驱动291
  18.3.1 Binder相关的结构体292
  18.3.2 AndroidBinder子系统的架构设计292
  18.4 Binder的工作流程293
  第19章 USB子系统295
  19.1 USB协议基础知识295
  19.1.1 USB物理连接295
  19.1.2 USB通信协议297
  19.2 USB子系统底层299
  19.2.1 USBCore299
  19.2.2 LinuxUSBgadget三层架构303
  19.3 AndroidUSB子系统实践305
  19.3.1 AndroidIPC通信补充305
  19.3.2 AndroidUSBMassStorage流程分析309
  第20章 Bootloader引导子系统312
  20.1 Bootloader流程分析312
  20.1.1 Bootloader概述312
  20.1.2 U—Boot启动流程分析314
  20.2 Bootloader修改指南317
  20.2.1 开机第一帧图的修改317
  20.2.2 开机模式的定制318
  参考文献321