android底层开发技术实战详解pdf扫描版
分享到:
android底层开发技术实战详解是一本Android底层开发技术引路人,由一线的android工程师王振丽编写。android底层开发技术实战详解内容非常丰富,并且所有的内容都是从读者的实际需求出发,科学的安排了所有的知识结构,所以的内容由浅入深,叙述的非常明明白白,具有非常强的知识性和实用性,反映了当下Android技术的发展和人们的应用水平。同时android底层开发技术实战详解精心筛选的非常有代表性、读者非常关注的典型知识点,比如:何为HAL层深入分析,Goldfish、MSM、MAP内核和驱动解析,显示系统、输入系统、振动器系统、音频系统、视频输出系统的驱动,OpenMax多媒体、多媒体插件框架,传感器、照相机、Wi-Fi、蓝牙、GPS和电话系统等。几乎包括Android底层和驱动技术的各个方面,包含剖析三大主流平台驱动的结构和实现,根据开源工程实现具体的产品,详细的分析驱动开发过程中的移植技巧等等,重点介绍了与Android驱动开发相关的底层知识,并对Android源代码进行了解析。小编给大家带来的这本书非常适合android开发人员阅读。有需要的朋友欢迎来3322软件站免费下载。
ISBN:9787121254413
版次:2
商品编码:11652641
品牌:Broadview
包装:平装
丛书名: Android移动开发技术丛书
开本:16开
出版时间:2015-03-01
用纸:胶版纸
页数:592
正文语种:中文
1.1 什么是驱动 1
1.1.1 驱动程序的魅力 1
1.1.2 手机中的驱动程序 2
1.2 开源还是不开源的问题 2
1.2.1 雾里看花的开源 2
1.2.2 从为什么选择Java谈为什么不
开源驱动程序 3
1.2.3 对驱动开发者来说是一把双刃剑 4
1.3 Android和Linux 4
1.3.1 Linux简介 4
1.3.2 Android和Linux的关系 5
1.4 简析Linux内核 7
1.4.1 内核的体系结构 7
1.4.2 和Android密切相关的Linux
内核知识 9
1.5 分析Linux内核源代码很有必要 13
1.5.1 源代码目录结构 14
1.5.2 Linux 3.10的特性 16
1.5.3 浏览源代码的工具 17
1.5.4 为什么用汇编语言编写内核代码 17
1.5.5 Linux内核的显著特性 18
1.5.6 学习Linux内核的方法 26
第2章 分析Android源代码 31
2.1 搭建Linux开发环境和工具 31
2.1.1 搭建Linux开发环境 31
2.1.2 设置环境变量 32
2.1.3 安装编译工具 32
2.2 获取Android源代码 33
2.3 分析并编译Android源代码 35
2.3.1 Android源代码的结构 35
2.3.2 编译Android源代码 40
2.3.3 运行Android源代码 42
2.3.4 实践演练――演示编译Android程序的两种方法 43
2.4 编译Android Kernel 46
2.4.1 获取Goldfish内核代码 47
2.4.2 获取MSM内核代码 49
2.4.3 获取OMAP内核代码 49
2.4.4 编译Android的Linux内核 50
2.5 运行模拟器 51
2.5.1 Linux环境下运行模拟器的方法 52
2.5.2 模拟器辅助工具――adb 53
第3章 驱动需要移植 56
3.1 驱动开发需要做的工作 56
3.2 Android移植 58
3.2.1 移植的任务 59
3.2.2 移植的内容 59
3.2.3 驱动开发的任务 60
3.3 Android对Linux的改造 60
3.3.1 Android对Linux内核文件的改动 61
3.3.2 为Android构建Linux的操作系统 62
3.4 内核空间和用户空间接口是一个媒介 63
3.4.1 内核空间和用户空间的相互作用 63
3.4.2 系统和硬件之间的交互 63
3.4.3 使用Relay实现内核到用户空间的数据传输 65
3.5 三类驱动程序 68
3.5.1 字符设备驱动程序 68
3.5.2 块设备驱动程序 76
3.5.3 网络设备驱动程序 80
第4章 HAL层深入分析 81
4.1 认识HAL层 81
4.1.1 HAL层的发展 81
4.1.2 过去和现在的区别 83
4.2 分析HAL层源代码 83
4.2.1 分析HAL moudle 83
4.2.2 分析mokoid工程 87
4.3 总结HAL层的使用方法 95
4.4 传感器在HAL层的表现 97
4.4.1 HAL层的Sensor代码 98
4.4.2 总结Sensor编程的流程 99
4.4.3 分析Sensor源代码看Android API
与硬件平台的衔接 100
4.5 移植总结 110
4.5.1 移植各个Android部件的方式 110
4.5.2 移植技巧之一――不得不说的辅助工作 111
4.6 开发一个硬件驱动程序 117
4.6.1 源代码文件wuming.h和wuming.c 117
4.6.2 编译配置处理 123
4.6.3 修改配置文件 124
4.6.4 验证驱动程序 125
第5章 分析Goldfish内核系统 127
5.1 Android专有驱动介绍 127
5.2 Goldfish基础 128
5.3 Android专用驱动简介 130
5.3.1 Logger驱动介绍 130
5.3.2 Low Memory Killer组件介绍 130
5.3.3 Timed Output驱动介绍 131
5.3.4 Timed Gpio驱动介绍 131
5.3.5 Ram Console驱动介绍 132
5.4 Ashmem驱动介绍 133
5.5 Pmem驱动介绍 133
5.6 Alarm驱动程序 134
5.7 USB Gadget驱动程序 134
5.8 Paranoid驱动介绍 135
5.9 Goldfish的设备驱动 136
第6章 MSM内核和驱动解析 139
6.1 MSM基础 139
6.1.1 常见MSM处理器产品 139
6.1.2 Snapdragon内核介绍 140
6.2 移植MSM内核简介 141
6.3 移植MSM 143
6.3.1 Makefile文件 143
6.3.2 驱动和组件 144
6.3.3 设备驱动 146
6.3.4 高通特有的组件 148
第7章 OMAP内核和驱动解析 151
7.1 OMAP基础 151
7.1.1 OMAP简析 151
7.1.2 常见OMAP处理器产品 151
7.1.3 开发平台 152
7.2 OMAP内核 152
7.3 移植OMAP体系结构 154
7.3.1 移植OMAP平台 154
7.3.2 移植OMAP处理器 157
7.4 移植Android专用驱动和组件 161
7.5 OMAP的设备驱动 162
7.5.1 显示驱动程序 162
7.5.2 I2C总线驱动程序 162
7.5.3 摄像头和视频输出驱动程序 164
7.5.4 触摸屏和键盘驱动程序 165
7.5.5 实时时钟驱动程序 166
7.5.6 音频驱动程序 166
7.5.7 蓝牙驱动程序 166
第8章 显示系统驱动应用 167
8.1 显示系统介绍 167
8.2 分析内核层 168
8.2.1 分析接口文件fb.h 168
8.2.2 分析内核实现文件fbmem.c 171
8.3 分析硬件抽象层 195
8.3.1 分析头文件 195
8.3.2 分析硬件帧缓冲区 197
8.3.3 实现缓冲区的分配 199
8.3.4 显示缓冲映射 200
8.3.5 分析管理库文件LayerBuffer.cpp 201
8.4 分析显示系统的驱动程序 202
8.4.1 Goldfish中的FrameBuffer驱动程序 203
8.4.2 使用Gralloc模块的驱动程序 205
8.4.3 分析MSM高通处理器中的显示驱动实现 215
8.4.4 分析OMAP处理器中的显示驱动实现 225
第9章 输入系统驱动应用 228
9.1 输入系统介绍 228
9.1.1 Android输入系统结构元素介绍 228
9.1.2 移植Android输入系统时的工作 229
9.2 分析Input(输入)系统驱动 230
9.2.1 分析头文件 230
9.2.2 分析核心文件input.c 234
9.2.3 分析event机制 249
9.3 分析硬件抽象层 251
9.3.1 分析文件KeycodeLabels.h 252
9.3.2 分析文件KeyCharacterMap.h 256
9.3.3 分析Kl格式文件 257
9.3.4 分析kcm格式文件 258
9.3.5 分析文件EventHub.cpp 258
第10章 振动器系统驱动 26310.1 振动器系统结构 263
10.2 分析硬件抽象层 265
10.3 分析JNI层部分 266
10.4 分析Java层部分 267
10.5 实现移植工作 271
10.5.1 移植振动器驱动程序 271
10.5.2 实现硬件抽象层 271
10.6 在MSM平台实现振动器驱动 272
第11章 音频系统驱动 276
11.1 音频系统结构 276
11.2 分析音频系统的层次 277
11.2.1 层次说明 277
11.2.2 Media库中的Audio框架 278
11.2.3 本地代码 280
11.2.4 分析JNI代码 283
11.2.5 Java层代码简介 284
11.3 移植Audio系统的工作 285
11.3.1 我们的工作 285
11.3.2 分析硬件抽象层 285
11.3.3 分析AudioFlinger中的Audio硬件抽象层的实现 287
11.3.4 真正实现Audio硬件抽象层 293
11.4 在MSM平台实现Audio驱动系统 293
11.4.1 实现Audio驱动程序 293
11.4.2 实现硬件抽象层 294
第12章 视频输出系统驱动 299
12.1 视频输出系统结构 299
12.2 需要移植的部分 301
12.3 分析硬件抽象层 301
12.3.1 Overlay系统硬件抽象层的接口 301
12.3.2 实现Overlay系统的硬件抽象层 304
12.3.3 实现接口 305
12.4 实现Overlay硬件抽象层 306
12.5 在OMAP平台实现Overlay系统 307
12.5.1 实现输出视频驱动程序 307
12.5.2 实现Overlay硬件抽象层 309
12.6 系统层调用Overlay HAL的架构 314
12.6.1 调用Overlay HAL的架构的流程 314
12.6.2 S3C6410 Android Overlay的测试代码 317
第13章 OpenMax多媒体框架 320
13.1 OpenMax基本层次结构 320
13.2 分析OpenMax框架构成 321
13.2.1 OpenMax总体层次结构 321
13.2.2 OpenMax IL层的结构 322
13.2.3 Android中的OpenMax 325
13.3 实现OpenMax IL层接口 325
13.3.1 OpenMax IL层的接口 325
13.3.2 在OpenMax IL层中需要做什么 331
13.3.3 研究Android中的OpenMax适配层 332
13.4 在OMAP平台实现OpenMax IL 334
13.4.1 实现文件 334
13.4.2 分析TI OpenMax IL的核心 335
13.4.3 实现TI OpenMax IL组件实例 338
第14章 多媒体插件框架 343
14.1 Android多媒体插件 343
14.2 需要移植的内容 344
14.3 OpenCore引擎 345
14.3.1 OpenCore层次结构 345
14.3.2 OpenCore代码结构 346
14.3.3 OpenCore编译结构 347
14.3.4 OpenCore OSCL 351
14.3.5 实现OpenCore中的OpenMax部分 353
14.3.6 OpenCore的扩展 366
14.4 Stagefright引擎 371
14.4.1 Stagefright代码结构 372
14.4.2 Stagefright实现OpenMax接口 372
14.4.3 Video Buffer传输流程 376
第15章 传感器系统 381
15.1 传感器系统的结构 381
15.2 分析需要移植的内容 383
15.2.1 移植驱动程序 383
15.2.2 移植硬件抽象层 384
15.2.3 实现上层部分 385
15.3 在模拟器中实现传感器驱动 389
第16章 照相机系统 395
16.1 Camera系统的结构 395
16.2 分析需要移植的内容 397
16.3 移植和调试 398
16.3.1 V4L2驱动程序 398
16.3.2 硬件抽象层 405
16.4 实现Camera系统的硬件抽象层 409
16.4.1 Java程序部分 409
16.4.2 Camera的Java本地调用部分 410
16.4.3 Camera的本地库libui.so 411
16.4.4 Camera服务libcameraservice.so 412
16.5 在MSM平台实现Camera驱动系统 416
16.6 在OMAP平台实现Camera驱动系统 419
第17章 Wi-Fi系统、蓝牙系统和GPS系统 421
17.1 Wi-Fi系统 421
17.1.1 Wi-Fi系统的结构 421
17.1.2 需要移植的内容 423
17.1.3 移植和调试 423
17.1.4 OMAP平台实现Wi-Fi 430
17.1.5 配置Wi-Fi的流程 432
17.1.6 具体演练――在Android下实现Ethernet 435
17.2 蓝牙系统 436
17.2.1 蓝牙系统的结构 437
17.2.2 需要移植的内容 438
17.2.3 具体移植 439
17.2.4 MSM平台的蓝牙驱动 441
17.3 定位系统 443
17.3.1 定位系统的结构 443
17.3.2 分析需要移植的内容 445
17.3.3 分析驱动程序 445
17.3.4 分析硬件抽象层 445
17.3.5 分析上层应用部分 448
第18章 电话系统 457
18.1 电话系统基础 457
18.1.1 电话系统简介 457
18.1.2 电话系统结构 459
18.2 需要移植的内容 460
18.3 移植和调试 460
18.3.1 驱动程序 461
18.3.2 RIL接口 462
18.4 电话系统实现流程分析 465
18.4.1 初始启动流程 465
18.4.2 request流程 467
18.4.3 response流程 470
第19章 分析时钟系统驱动 472
19.1 Alarm系统基础 472
19.1.1 Alarm层次结构介绍 472
19.1.2 我们需要移植的内容 474
19.2 分析RTC驱动程序 474
19.3 分析Alarm驱动程序 475
19.3.1 分析文件android_alarm.h 475
19.3.2 分析文件alarm.c 476
19.3.3 分析文件alarm-dev.c 488
19.4 分析JNI层 497
19.5 分析Java层 498
19.5.1 分析AlarmManagerService类 499
19.5.2 分析AlarmManager类 508
19.6 模拟器环境的具体实现 509
第20章 分析USB Gadget驱动 511
20.1 分析Linux内核的USB驱动程序 511
20.1.1 USB设备基础 511
20.1.2 分析USB 和sysfs的联系 516
20.1.3 分析urb通信方式 518
20.1.4 分析USB驱动的例程 524
20.2 分析USB Gadget驱动 536
20.2.1 分析软件结构 536
20.2.2 层次整合 546
20.2.3 USB设备枚举 557
第21章 其他系统 573
21.1 Lights光系统 573
21.1.1 Lights光系统的结构 573
21.1.2 需要移植的内容 574
21.1.3 移植和调试 575
21.1.4 MSM平台实现光系统 577
21.2 Battery电池系统 577
21.2.1 Battery系统的结构 578
21.2.2 需要移植的内容 579
21.2.3 移植和调试 579
21.2.4 在模拟器中实现电池系统 582
毕竟Android平台被推出的时间才短短六七年,了解Android平台软件开发技术的程序员还不多,如何迅速地推广和普及Android平台软件开发技术,让越来越多的人参与到Android应用的开发中,是整个产业链都在关注的一个话题。为了帮助开发者更快地进入Android开发行列,笔者特意精心编写了本书。本书系统地讲解了Android底层驱动开发和移植的基本知识,图文并茂地帮助读者学习和掌握各种驱动的开发常识,详细讲解了Android源代码的方方面面。
从技术角度而言,Android是一种融入了全部Web应用的平台。随着版本的更新,从最初的触屏到现在的多点触摸,从普通的联系人到现在的数据同步,从简单的Google.Map到现在的导航系统,从基本的网页浏览到现在的HTML5,都说明Android已经逐渐稳定,而且功能越来越强大。此外,Android平台不仅支持Java、C、C++等主流的编程语言,还支持Ruby、Python等脚本语言,甚至Google专为Android的应用开发推出了Simple语言,这使得Android有着非常广泛的开发群体。
本书内容
在本书的内容中,详细讲解了Android底层技术和驱动开发的基本知识。本书内容新颖、知识全面、讲解详细,全书分为21章,具体内容分布如下。
章 主要内容
第1章 什么是驱动以及Linux内核源代码简单剖析
第2章 搭建Linux开发环境,分析及编译Android源代码,在Linux环境下运行模拟器
(续表)
章 主要内容
第3章 Android移植的内容、驱动开发所要完成的任务,三种类型的驱动程序
第4章 传感器在HAL层的表现,HAL层的源代码与移植
第5章 Goldfish下的staging、Ashmen、Pmem、Alarm和Android Paranoid驱动
第6章 MSM内核与MSM的移植
第7章 OMAP内核与移植
第8章 显示系统的移植、调试与驱动程序实现
第9章 MSM处理器和OMAP处理器平台中输入驱动的实现
第10章 振动器的系统结构与移植
第11章 音频系统的层次、移植与不同平台下的实现
第12章 视频输出系统Overlay的分析、实现、调用
第13章 OpenMax多媒体框架的层次和实现
第14章 OpenCore引擎和Stagefright引擎的代码结构与扩展
第15章 传感器系统的结构、移植与实现
第16章 照相机系统的结构、移植与实现
第17章 Wi-Fi系统、蓝牙系统和定位系统的移植
第18章 开发电话系统
第19章 分析时钟系统驱动,实现时钟驱动程序的开发、移植和模拟器测试
第20章 分析USB Gadget驱动,依次讲解分析软件结构、层次整合和USB设备枚举
第21章 Lights光系统和Battery电池系统
全书内容都采用了理论加实践的教学方法,每个实例先提出制作思路及包含知识点,在实例最后补充总结知识点并出题帮助读者举一反三。
本书特色
本书内容相当丰富,实例内容覆盖全面,满足Android技术人员成长道路上的方方面面。编者的目标是通过一本图书,提供多本图书的价值,读者可以根据自己的需要有选择地阅读,以完善自身的知识和技能结构。在内容的编写上,本书具有以下特色。
(1)结构合理
从读者的实际需要出发,科学安排知识结构,内容由浅入深,叙述清楚,具有很强的知识性和实用性,反映了当前Android技术的发展和应用水平。同时全书精心筛选的最具代表性、读者最关心典型知识点,几乎包括Android底层和驱动技术的各个方面。
(2)易学易懂
本书条理清晰、语言简洁,可帮助读者快速掌握每个知识点;每个部分既相互连贯又自成体系,使读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节进行针对性的学习。
(3)实用性强
本书彻底摒弃枯燥的理论和简单的操作,注重实用性和可操作性,详细讲解了各个部分的源代码知识,使用户在掌握相关操作技能的同时,还能学到相应的基础知识。
本书作者
参加本书编写的人员有:怀志和、王振丽、林慧晶、程娟、王文忠、陈强、何子夜、李天祥、万春朝、扶松柏、邓才兵、周锐、王东华、管西京、薛小龙。本团队在编写过程中由于时间和水平所限,书中难免有不足之处。如有纰漏和不尽如人意之处,诚请读者提出意见或建议,以便修订并使之更臻完善。另外,为了更好地为读者服务,本书专门提供了技术支持网站,欢迎读者光临论坛,无论是书中的质疑,还是学习过程中的疑惑,本团队将尽力为大家解答。
编者
2014年11月
android底层开发技术实战详解禁用于商业用途!如果您喜欢《android底层开发技术实战详解》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必在3322软件站选择一款阅读器/zt/430.html下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
android底层开发技术实战详解简介:
版社: 电子工业出版社ISBN:9787121254413
版次:2
商品编码:11652641
品牌:Broadview
包装:平装
丛书名: Android移动开发技术丛书
开本:16开
出版时间:2015-03-01
用纸:胶版纸
页数:592
正文语种:中文
android底层开发技术实战详解作者简介:
王振丽,吉林大学计算机硕士,精通C、C++、Linux、Java开发技术,擅长嵌入式系统、物联网、大数据等开发技术,对蓝牙技术、传感器、NFC数据传播、红外传输技术有独特的见解。毕业设计《大安移动机器人》成果申请国家专利,已经被广大制造业公司的精密机床设备所使用。毕业后就职于贝尔豪斯公司,负责智能家居系统的研究和开发和产品设计工作,带领团队独立开发出多款功能强大的智能家居、健康仪器、智能电视、车载设备等大型系统。在Android底层架构和驱动开发方面有着丰富的经验,著名硬件驱动开发专家。android底层开发技术实战详解编辑推荐:
王振丽编著的《Android底层开发技术实战详解——内核移植和驱动》条理清晰、语言简洁,可帮助读者快速掌握每个知识点;每个部分既相互连贯又自成体系,使读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节进行针对性的学习。android底层开发技术实战详解目录:
第1章 Android底层开发基础 11.1 什么是驱动 1
1.1.1 驱动程序的魅力 1
1.1.2 手机中的驱动程序 2
1.2 开源还是不开源的问题 2
1.2.1 雾里看花的开源 2
1.2.2 从为什么选择Java谈为什么不
开源驱动程序 3
1.2.3 对驱动开发者来说是一把双刃剑 4
1.3 Android和Linux 4
1.3.1 Linux简介 4
1.3.2 Android和Linux的关系 5
1.4 简析Linux内核 7
1.4.1 内核的体系结构 7
1.4.2 和Android密切相关的Linux
内核知识 9
1.5 分析Linux内核源代码很有必要 13
1.5.1 源代码目录结构 14
1.5.2 Linux 3.10的特性 16
1.5.3 浏览源代码的工具 17
1.5.4 为什么用汇编语言编写内核代码 17
1.5.5 Linux内核的显著特性 18
1.5.6 学习Linux内核的方法 26
第2章 分析Android源代码 31
2.1 搭建Linux开发环境和工具 31
2.1.1 搭建Linux开发环境 31
2.1.2 设置环境变量 32
2.1.3 安装编译工具 32
2.2 获取Android源代码 33
2.3 分析并编译Android源代码 35
2.3.1 Android源代码的结构 35
2.3.2 编译Android源代码 40
2.3.3 运行Android源代码 42
2.3.4 实践演练――演示编译Android程序的两种方法 43
2.4 编译Android Kernel 46
2.4.1 获取Goldfish内核代码 47
2.4.2 获取MSM内核代码 49
2.4.3 获取OMAP内核代码 49
2.4.4 编译Android的Linux内核 50
2.5 运行模拟器 51
2.5.1 Linux环境下运行模拟器的方法 52
2.5.2 模拟器辅助工具――adb 53
第3章 驱动需要移植 56
3.1 驱动开发需要做的工作 56
3.2 Android移植 58
3.2.1 移植的任务 59
3.2.2 移植的内容 59
3.2.3 驱动开发的任务 60
3.3 Android对Linux的改造 60
3.3.1 Android对Linux内核文件的改动 61
3.3.2 为Android构建Linux的操作系统 62
3.4 内核空间和用户空间接口是一个媒介 63
3.4.1 内核空间和用户空间的相互作用 63
3.4.2 系统和硬件之间的交互 63
3.4.3 使用Relay实现内核到用户空间的数据传输 65
3.5 三类驱动程序 68
3.5.1 字符设备驱动程序 68
3.5.2 块设备驱动程序 76
3.5.3 网络设备驱动程序 80
第4章 HAL层深入分析 81
4.1 认识HAL层 81
4.1.1 HAL层的发展 81
4.1.2 过去和现在的区别 83
4.2 分析HAL层源代码 83
4.2.1 分析HAL moudle 83
4.2.2 分析mokoid工程 87
4.3 总结HAL层的使用方法 95
4.4 传感器在HAL层的表现 97
4.4.1 HAL层的Sensor代码 98
4.4.2 总结Sensor编程的流程 99
4.4.3 分析Sensor源代码看Android API
与硬件平台的衔接 100
4.5 移植总结 110
4.5.1 移植各个Android部件的方式 110
4.5.2 移植技巧之一――不得不说的辅助工作 111
4.6 开发一个硬件驱动程序 117
4.6.1 源代码文件wuming.h和wuming.c 117
4.6.2 编译配置处理 123
4.6.3 修改配置文件 124
4.6.4 验证驱动程序 125
第5章 分析Goldfish内核系统 127
5.1 Android专有驱动介绍 127
5.2 Goldfish基础 128
5.3 Android专用驱动简介 130
5.3.1 Logger驱动介绍 130
5.3.2 Low Memory Killer组件介绍 130
5.3.3 Timed Output驱动介绍 131
5.3.4 Timed Gpio驱动介绍 131
5.3.5 Ram Console驱动介绍 132
5.4 Ashmem驱动介绍 133
5.5 Pmem驱动介绍 133
5.6 Alarm驱动程序 134
5.7 USB Gadget驱动程序 134
5.8 Paranoid驱动介绍 135
5.9 Goldfish的设备驱动 136
第6章 MSM内核和驱动解析 139
6.1 MSM基础 139
6.1.1 常见MSM处理器产品 139
6.1.2 Snapdragon内核介绍 140
6.2 移植MSM内核简介 141
6.3 移植MSM 143
6.3.1 Makefile文件 143
6.3.2 驱动和组件 144
6.3.3 设备驱动 146
6.3.4 高通特有的组件 148
第7章 OMAP内核和驱动解析 151
7.1 OMAP基础 151
7.1.1 OMAP简析 151
7.1.2 常见OMAP处理器产品 151
7.1.3 开发平台 152
7.2 OMAP内核 152
7.3 移植OMAP体系结构 154
7.3.1 移植OMAP平台 154
7.3.2 移植OMAP处理器 157
7.4 移植Android专用驱动和组件 161
7.5 OMAP的设备驱动 162
7.5.1 显示驱动程序 162
7.5.2 I2C总线驱动程序 162
7.5.3 摄像头和视频输出驱动程序 164
7.5.4 触摸屏和键盘驱动程序 165
7.5.5 实时时钟驱动程序 166
7.5.6 音频驱动程序 166
7.5.7 蓝牙驱动程序 166
第8章 显示系统驱动应用 167
8.1 显示系统介绍 167
8.2 分析内核层 168
8.2.1 分析接口文件fb.h 168
8.2.2 分析内核实现文件fbmem.c 171
8.3 分析硬件抽象层 195
8.3.1 分析头文件 195
8.3.2 分析硬件帧缓冲区 197
8.3.3 实现缓冲区的分配 199
8.3.4 显示缓冲映射 200
8.3.5 分析管理库文件LayerBuffer.cpp 201
8.4 分析显示系统的驱动程序 202
8.4.1 Goldfish中的FrameBuffer驱动程序 203
8.4.2 使用Gralloc模块的驱动程序 205
8.4.3 分析MSM高通处理器中的显示驱动实现 215
8.4.4 分析OMAP处理器中的显示驱动实现 225
第9章 输入系统驱动应用 228
9.1 输入系统介绍 228
9.1.1 Android输入系统结构元素介绍 228
9.1.2 移植Android输入系统时的工作 229
9.2 分析Input(输入)系统驱动 230
9.2.1 分析头文件 230
9.2.2 分析核心文件input.c 234
9.2.3 分析event机制 249
9.3 分析硬件抽象层 251
9.3.1 分析文件KeycodeLabels.h 252
9.3.2 分析文件KeyCharacterMap.h 256
9.3.3 分析Kl格式文件 257
9.3.4 分析kcm格式文件 258
9.3.5 分析文件EventHub.cpp 258
第10章 振动器系统驱动 26310.1 振动器系统结构 263
10.2 分析硬件抽象层 265
10.3 分析JNI层部分 266
10.4 分析Java层部分 267
10.5 实现移植工作 271
10.5.1 移植振动器驱动程序 271
10.5.2 实现硬件抽象层 271
10.6 在MSM平台实现振动器驱动 272
第11章 音频系统驱动 276
11.1 音频系统结构 276
11.2 分析音频系统的层次 277
11.2.1 层次说明 277
11.2.2 Media库中的Audio框架 278
11.2.3 本地代码 280
11.2.4 分析JNI代码 283
11.2.5 Java层代码简介 284
11.3 移植Audio系统的工作 285
11.3.1 我们的工作 285
11.3.2 分析硬件抽象层 285
11.3.3 分析AudioFlinger中的Audio硬件抽象层的实现 287
11.3.4 真正实现Audio硬件抽象层 293
11.4 在MSM平台实现Audio驱动系统 293
11.4.1 实现Audio驱动程序 293
11.4.2 实现硬件抽象层 294
第12章 视频输出系统驱动 299
12.1 视频输出系统结构 299
12.2 需要移植的部分 301
12.3 分析硬件抽象层 301
12.3.1 Overlay系统硬件抽象层的接口 301
12.3.2 实现Overlay系统的硬件抽象层 304
12.3.3 实现接口 305
12.4 实现Overlay硬件抽象层 306
12.5 在OMAP平台实现Overlay系统 307
12.5.1 实现输出视频驱动程序 307
12.5.2 实现Overlay硬件抽象层 309
12.6 系统层调用Overlay HAL的架构 314
12.6.1 调用Overlay HAL的架构的流程 314
12.6.2 S3C6410 Android Overlay的测试代码 317
第13章 OpenMax多媒体框架 320
13.1 OpenMax基本层次结构 320
13.2 分析OpenMax框架构成 321
13.2.1 OpenMax总体层次结构 321
13.2.2 OpenMax IL层的结构 322
13.2.3 Android中的OpenMax 325
13.3 实现OpenMax IL层接口 325
13.3.1 OpenMax IL层的接口 325
13.3.2 在OpenMax IL层中需要做什么 331
13.3.3 研究Android中的OpenMax适配层 332
13.4 在OMAP平台实现OpenMax IL 334
13.4.1 实现文件 334
13.4.2 分析TI OpenMax IL的核心 335
13.4.3 实现TI OpenMax IL组件实例 338
第14章 多媒体插件框架 343
14.1 Android多媒体插件 343
14.2 需要移植的内容 344
14.3 OpenCore引擎 345
14.3.1 OpenCore层次结构 345
14.3.2 OpenCore代码结构 346
14.3.3 OpenCore编译结构 347
14.3.4 OpenCore OSCL 351
14.3.5 实现OpenCore中的OpenMax部分 353
14.3.6 OpenCore的扩展 366
14.4 Stagefright引擎 371
14.4.1 Stagefright代码结构 372
14.4.2 Stagefright实现OpenMax接口 372
14.4.3 Video Buffer传输流程 376
第15章 传感器系统 381
15.1 传感器系统的结构 381
15.2 分析需要移植的内容 383
15.2.1 移植驱动程序 383
15.2.2 移植硬件抽象层 384
15.2.3 实现上层部分 385
15.3 在模拟器中实现传感器驱动 389
第16章 照相机系统 395
16.1 Camera系统的结构 395
16.2 分析需要移植的内容 397
16.3 移植和调试 398
16.3.1 V4L2驱动程序 398
16.3.2 硬件抽象层 405
16.4 实现Camera系统的硬件抽象层 409
16.4.1 Java程序部分 409
16.4.2 Camera的Java本地调用部分 410
16.4.3 Camera的本地库libui.so 411
16.4.4 Camera服务libcameraservice.so 412
16.5 在MSM平台实现Camera驱动系统 416
16.6 在OMAP平台实现Camera驱动系统 419
第17章 Wi-Fi系统、蓝牙系统和GPS系统 421
17.1 Wi-Fi系统 421
17.1.1 Wi-Fi系统的结构 421
17.1.2 需要移植的内容 423
17.1.3 移植和调试 423
17.1.4 OMAP平台实现Wi-Fi 430
17.1.5 配置Wi-Fi的流程 432
17.1.6 具体演练――在Android下实现Ethernet 435
17.2 蓝牙系统 436
17.2.1 蓝牙系统的结构 437
17.2.2 需要移植的内容 438
17.2.3 具体移植 439
17.2.4 MSM平台的蓝牙驱动 441
17.3 定位系统 443
17.3.1 定位系统的结构 443
17.3.2 分析需要移植的内容 445
17.3.3 分析驱动程序 445
17.3.4 分析硬件抽象层 445
17.3.5 分析上层应用部分 448
第18章 电话系统 457
18.1 电话系统基础 457
18.1.1 电话系统简介 457
18.1.2 电话系统结构 459
18.2 需要移植的内容 460
18.3 移植和调试 460
18.3.1 驱动程序 461
18.3.2 RIL接口 462
18.4 电话系统实现流程分析 465
18.4.1 初始启动流程 465
18.4.2 request流程 467
18.4.3 response流程 470
第19章 分析时钟系统驱动 472
19.1 Alarm系统基础 472
19.1.1 Alarm层次结构介绍 472
19.1.2 我们需要移植的内容 474
19.2 分析RTC驱动程序 474
19.3 分析Alarm驱动程序 475
19.3.1 分析文件android_alarm.h 475
19.3.2 分析文件alarm.c 476
19.3.3 分析文件alarm-dev.c 488
19.4 分析JNI层 497
19.5 分析Java层 498
19.5.1 分析AlarmManagerService类 499
19.5.2 分析AlarmManager类 508
19.6 模拟器环境的具体实现 509
第20章 分析USB Gadget驱动 511
20.1 分析Linux内核的USB驱动程序 511
20.1.1 USB设备基础 511
20.1.2 分析USB 和sysfs的联系 516
20.1.3 分析urb通信方式 518
20.1.4 分析USB驱动的例程 524
20.2 分析USB Gadget驱动 536
20.2.1 分析软件结构 536
20.2.2 层次整合 546
20.2.3 USB设备枚举 557
第21章 其他系统 573
21.1 Lights光系统 573
21.1.1 Lights光系统的结构 573
21.1.2 需要移植的内容 574
21.1.3 移植和调试 575
21.1.4 MSM平台实现光系统 577
21.2 Battery电池系统 577
21.2.1 Battery系统的结构 578
21.2.2 需要移植的内容 579
21.2.3 移植和调试 579
21.2.4 在模拟器中实现电池系统 582
android系统服务开发前言/序言:
随着3G/4G的到来,无线带宽越来越高,使得更多内容丰富的应用程序装入手机成为可能,如视频通话、视频点播、移动互联网冲浪和内容分享等。为了承载这些数据应用及快速部署,手机功能将会越来越智能,越来越开放。为了实现这些需求,必须有一个优秀的开发平台来支持,在此由谷歌(Google)公司发起的OHA联盟走在了业界的前列,2007年11月推出了开放的Android平台,任何公司及个人都可以免费获取源代码及开发SDK。由于其开放性和优异性,Android平台得到了业界广泛的支持,其中包括各大手机厂商和知名的移动运营商等。继2008年9月第一款基于Android平台的手机G1发布之后,三星、摩托罗拉、索尼爱立信、LG等主流手机制造商都推出了自己的Android平台手机。在2011年年底,Android超越了塞班和iOS,雄踞智能手机市场占有率榜首的位置。根据国际数据公司(IDC)5月公布的新数据,在2013年第一季度,Android和iOS系统占的装机量到所有智能手机出货量的92.3%。在2013年头三个月,安装Android系统的新智能手机数量跃升至1.621亿部,大大超过去年同期的9030万部。这意味着,在销往世界各地的所有新智能手机中,谷歌的移动操作系统的市场占有率已经达到75%,与第一季度的59.1%相比有显著提高。毕竟Android平台被推出的时间才短短六七年,了解Android平台软件开发技术的程序员还不多,如何迅速地推广和普及Android平台软件开发技术,让越来越多的人参与到Android应用的开发中,是整个产业链都在关注的一个话题。为了帮助开发者更快地进入Android开发行列,笔者特意精心编写了本书。本书系统地讲解了Android底层驱动开发和移植的基本知识,图文并茂地帮助读者学习和掌握各种驱动的开发常识,详细讲解了Android源代码的方方面面。
从技术角度而言,Android是一种融入了全部Web应用的平台。随着版本的更新,从最初的触屏到现在的多点触摸,从普通的联系人到现在的数据同步,从简单的Google.Map到现在的导航系统,从基本的网页浏览到现在的HTML5,都说明Android已经逐渐稳定,而且功能越来越强大。此外,Android平台不仅支持Java、C、C++等主流的编程语言,还支持Ruby、Python等脚本语言,甚至Google专为Android的应用开发推出了Simple语言,这使得Android有着非常广泛的开发群体。
本书内容
在本书的内容中,详细讲解了Android底层技术和驱动开发的基本知识。本书内容新颖、知识全面、讲解详细,全书分为21章,具体内容分布如下。
章 主要内容
第1章 什么是驱动以及Linux内核源代码简单剖析
第2章 搭建Linux开发环境,分析及编译Android源代码,在Linux环境下运行模拟器
(续表)
章 主要内容
第3章 Android移植的内容、驱动开发所要完成的任务,三种类型的驱动程序
第4章 传感器在HAL层的表现,HAL层的源代码与移植
第5章 Goldfish下的staging、Ashmen、Pmem、Alarm和Android Paranoid驱动
第6章 MSM内核与MSM的移植
第7章 OMAP内核与移植
第8章 显示系统的移植、调试与驱动程序实现
第9章 MSM处理器和OMAP处理器平台中输入驱动的实现
第10章 振动器的系统结构与移植
第11章 音频系统的层次、移植与不同平台下的实现
第12章 视频输出系统Overlay的分析、实现、调用
第13章 OpenMax多媒体框架的层次和实现
第14章 OpenCore引擎和Stagefright引擎的代码结构与扩展
第15章 传感器系统的结构、移植与实现
第16章 照相机系统的结构、移植与实现
第17章 Wi-Fi系统、蓝牙系统和定位系统的移植
第18章 开发电话系统
第19章 分析时钟系统驱动,实现时钟驱动程序的开发、移植和模拟器测试
第20章 分析USB Gadget驱动,依次讲解分析软件结构、层次整合和USB设备枚举
第21章 Lights光系统和Battery电池系统
全书内容都采用了理论加实践的教学方法,每个实例先提出制作思路及包含知识点,在实例最后补充总结知识点并出题帮助读者举一反三。
本书特色
本书内容相当丰富,实例内容覆盖全面,满足Android技术人员成长道路上的方方面面。编者的目标是通过一本图书,提供多本图书的价值,读者可以根据自己的需要有选择地阅读,以完善自身的知识和技能结构。在内容的编写上,本书具有以下特色。
(1)结构合理
从读者的实际需要出发,科学安排知识结构,内容由浅入深,叙述清楚,具有很强的知识性和实用性,反映了当前Android技术的发展和应用水平。同时全书精心筛选的最具代表性、读者最关心典型知识点,几乎包括Android底层和驱动技术的各个方面。
(2)易学易懂
本书条理清晰、语言简洁,可帮助读者快速掌握每个知识点;每个部分既相互连贯又自成体系,使读者既可以按照本书编排的章节顺序进行学习,也可以根据自己的需求对某一章节进行针对性的学习。
(3)实用性强
本书彻底摒弃枯燥的理论和简单的操作,注重实用性和可操作性,详细讲解了各个部分的源代码知识,使用户在掌握相关操作技能的同时,还能学到相应的基础知识。
本书作者
参加本书编写的人员有:怀志和、王振丽、林慧晶、程娟、王文忠、陈强、何子夜、李天祥、万春朝、扶松柏、邓才兵、周锐、王东华、管西京、薛小龙。本团队在编写过程中由于时间和水平所限,书中难免有不足之处。如有纰漏和不尽如人意之处,诚请读者提出意见或建议,以便修订并使之更臻完善。另外,为了更好地为读者服务,本书专门提供了技术支持网站,欢迎读者光临论坛,无论是书中的质疑,还是学习过程中的疑惑,本团队将尽力为大家解答。
编者
2014年11月
免责声明:
android底层开发技术实战详解来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。android底层开发技术实战详解禁用于商业用途!如果您喜欢《android底层开发技术实战详解》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!
使用说明:
方法一:1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必在3322软件站选择一款阅读器/zt/430.html下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多
android底层开发技术实战详解pdf扫描版下载地址
- 需先下载高速下载器:
- 专用下载:
- 其它下载: