Android底层接口与驱动开发技术详解
以图片为准,正版现货,原书实拍,内页完好,当天发货!上架图书均已全面消毒!请放心购买!
¥
175
八五品
仅1件
作者陈强 著
出版社中国铁道出版社
出版时间2015-03
版次2
装帧平装
上书时间2023-07-25
商品详情
- 品相描述:八五品
图书标准信息
-
作者
陈强 著
-
出版社
中国铁道出版社
-
出版时间
2015-03
-
版次
2
-
ISBN
9787113197957
-
定价
89.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
664页
-
字数
977千字
- 【内容简介】
-
Android系统从诞生到现在短短的几年时间,凭借其操作易用性和开发的简洁性,赢得了广大消费用户和开发者的支持,目前一直位居智能手机操作系统市场占有率榜首的位置。《Android底层接口与驱动开发技术详解》分为三篇,共计24章,循序渐进地讲解了Android系统中底层驱动方面的知识。《Android底层接口与驱动开发技术详解》从获取源码和源码结构分析讲起,依次讲解了基础知识篇、专用驱动篇和设备驱动篇三大部分的基本知识。在讲解每一个驱动时,都从Android系统源码开始入手,遵循“内核分析—驱动实现—JNI层分析—Java应用层—系统移植和改造”这一主线,透彻地剖析了每一个驱动系统的完整实现流程。《Android底层接口与驱动开发技术详解》几乎涵盖了Android驱动方面的所有主要内容,并且全书内容言简意赅,讲解方法通俗易懂,不但适用于应用高手们,也适合初学者学习并消化。
《Android底层接口与驱动开发技术详解》定位于有一定基础的Android开发人员,帮助其细致分析Android源码和底层驱动开发,积累经验,快速向Android殿堂级高手迈进。
- 【作者简介】
-
陈强,西安交通大学计算机硕士,通信工程硕士,现就职于上海机锋科技公司担任项目经理。主要负责底层嵌入式项目,精通C++、C、Java语言开发,擅长Linux内核驱动开发,曾经开发了金地智能家居系统和娱乐时代智能电视系统,这两款系统在业界比较有名,并得到了消费者用户的欢迎。曾经独立编写并移植了高通801芯片,实现了完整的通信和传输应用功能。
- 【目录】
-
第1篇基础知识篇
第1章Android驱动开发基础
1.1认识什么是驱动
1.1.1驱动程序的作用
1.1.2PC中的驱动
1.1.3手机中的驱动程序
1.2开源还是不开源
1.2.1雾里看花的开源
1.2.2从为什么选择Java谈为什么不开源驱动程序
1.2.3对驱动开发者来说是一把双刃剑
1.3Linux开发基础
1.3.1Linux历史简介
1.3.2主要版本
1.3.3Linux的巨大前景
1.4Android和Linux的关系
1.4.1Android继承于Linux
1.4.2Android和Linux内核的区别
1.5简析Linux内核
1.5.1Linux内核的体系结构
1.5.2和Android密切相关的Linux内核知识
1.6分析Linux内核源码
1.6.1源码目录结构
1.6.2浏览源码的工具
1.6.3Linux内核的显著特性
1.6.4学习Linux内核的方法
第2章获取并编译Android源码
2.1获取Android源码
2.1.1在Linux系统获取Android源码
2.1.2在Windows平台获取Android源码
2.2分析Android源码结构
2.3编译Android源码
2.3.1搭建编译环境
2.3.2开始编译
2.3.3在模拟器中运行
2.3.4常见的错误分析
2.3.5实践演练——演示两种编译Android程序的方法
2.4编译AndroidKernel
2.4.1获取Goldfish内核代码
2.4.2获取MSM内核代码
2.4.3获取OMAP内核代码
2.4.4编译Android的Linux内核
第3章Android驱动移植基础
3.1驱动开发需要做的工作
3.2Android移植基础
3.2.1移植的任务
3.2.2需要移植的内容
3.2.3驱动开发需要做的工作
3.3Android对Linux的改造
3.3.1Android的独有驱动
3.3.2Android的核心驱动
3.3.3Android对Linux内核文件的改动
3.3.4为Android构建Linux的操作系统
3.4内核空间和用户空间之间接口
3.4.1内核空间和用户空间的相互作用
3.4.2系统和硬件之间的交互
3.4.3使用Relay实现内核到用户空间的数据传输
3.5三类驱动程序
3.5.1字符设备驱动
3.5.2块设备驱动
3.5.3网络设备驱动
第4章分析三大内核系统
4.1Goldfish内核和驱动解析
4.1.1Goldfish基础
4.1.2Android专用驱动简介
4.1.3Ashmem驱动介绍
4.1.4Pmem驱动介绍
4.1.5Alarm驱动程序
4.1.6USBGadget驱动程序
4.1.7Paranoid驱动介绍
4.1.8Goldfish的设备驱动
4.2MSM内核和驱动解析
4.2.1MSM基础
4.2.2移植MSM内核简介
4.2.3移植MSM
4.3OMAP内核和驱动解析
4.3.1OMAP基础
4.3.2OMAP内核
4.3.3移植OMAP体系结构
4.3.4移植Android专用驱动和组件
4.3.5OMAP的设备驱动
第2篇专用驱动篇
第5章分析JNI
5.1JNI的本质
5.2分析Java层
5.2.1加载JNI库
5.2.2实现扫描工作
5.2.3读取并保存信息
5.2.4删除不是SD卡中的文件信息
5.2.5ProcessDirectory
5.2.6扫描函数ScanFile
5.2.7JNI中的异常处理
5.3分析JNI层
5.3.1将Native对象的指针保存到Java对象
5.3.2创建Native层的MediaScanner对象
5.4Native(本地)层
5.4.1注册JNI函数
5.4.2完成注册工作
5.4.3动态注册
5.4.4处理路径参数
5.4.5扫描文件
5.4.6添加TAG信息
5.4.7总结函数JNIOnLoad与函数JNIOnUnload的用途
5.4.8Java与JNI基本数据类型转换
5.4.9JNIEnv接口
5.4.10JNI中的环境变量
5.5Camera模块的JNI实例分析
5.5.1Java层预览接口
5.5.2注册预览的JNI函数
5.5.3C/C++层的预览函数
5.6开发自己的JNI程序
第6章硬件设备驱动程序
6.1初识HAL层
6.1.1HAL层简介
6.1.2HALlegacy和HAL的对比
6.2分析HAL层源码
6.2.1分析HALmoudle
6.2.2文件hardware.h
6.2.3文件hardware.c
6.3分析硬件抽象层的加载过程
6.4分析硬件访问服务
6.4.1定义硬件访问服务接口
6.4.2实现硬件访问服务
6.5分析mokoid工程
6.5.1直接调用service方法的实现代码
6.5.2通过Manager调用service的实现代码
6.6分析Sensor(传感器)在HAL层的实现
6.6.1HAL层的Sensor代码
6.6.2Sensor编程的流程
6.7HAL和系统移植
6.7.1移植各个Android部件的方式
6.7.2辅助工作
第7章Binder驱动程序
7.1引出Binder机制
7.2Binder机制概述
7.3分析Binder驱动程序的数据结构
7.4设备初始化
7.5打开Binder设备文件
7.6实现内存映射
7.6.1分析流程
7.6.2分析具体代码
7.7释放物理页面
7.8处理内核缓冲区
7.8.1分配内核缓冲区函数
7.8.2添加到红黑树
7.8.3释放内核缓冲区
7.8.4查询内核缓冲区
7.9Binder封装库
7.9.1类BBinder
7.9.2类BpRefBase
7.9.3类IPCThreadState
第8章Logger日志驱动
8.1Logger系统基础
8.2分析Logger驱动程序
8.2.1分析文件logger.h
8.2.2分析文件logger.c
8.3日志库liblog
8.4分析日志写入接口
8.4.1分析C/C++层的写入接口
8.4.2分析Java层的写入接口
第9章内存系统驱动
9.1分析Android的进程通信机制
9.1.1Android的进程间通信(IPC)机制Binder
9.1.2ServiceManager是Binder机制的上下文管理者
9.2分析Ashmem驱动程序
9.2.1基础数据结构
9.2.2初始化处理
9.2.3打开匿名共享内存设备文件
9.2.4内存映射
9.2.5读/写操作
9.2.6锁定和解锁
9.2.7回收内存块
9.3分析C++访问接口层
9.3.1接口MemoryBase
9.3.2接口MemoryBase
9.4分析Java访问接口层
第10章分析电源管理模块
10.1AndroidPowerManagement基础
10.2Framework层分析
10.2.1文件PowerManager.java
10.2.2文件PowerManagerService.java
10.3JNI层分析
10.3.1文件android_os_Power.cpp
10.3.2文件power.c
10.4Kernel(内核)层分析
10.4.1文件power.c
10.4.2文件earlysuspend.c
10.4.3文件wakelock.c
10.4.4文件resume.c
10.4.5文件suspend.c
10.4.6文件main.c
10.4.7proc文件
10.5wakelock和early_suspend
10.5.1wakelock的原理
10.5.2early_suspend的原理
10.5.3Android休眠
10.5.4Android唤醒
第11章分析低内存管理模块
11.1分析OOM机制
11.1.1OOM机制基础
11.1.2分析OOM机制的具体实现
11.2分析LowMemoryKiller的原理和机制
11.3分析LowMemoryKiller驱动
11.3.1LowMemoryKiller驱动基础
11.3.2分析核心功能
11.3.3设置用户接口
第12章分析物理内存驱动
12.1PMEM基础
12.1.1PMEM概述
12.1.2Platform设备基础
12.1.3PMEM与Ashmem的区别
12.2分析PMEM系统驱动程序
12.2.1分析设备实现
12.2.2分析驱动的具体实现
12.2.3总结PMEM驱动的调用流程
12.3分析用户接口空间
12.3.1释放位图内存
12.3.2释放位图内存空间
12.3.3获取位图占用内存
第13章分析TimeDevice驱动
13.1分析TimedOutput驱动程序
13.1.1设备类
13.1.2分析TimedOutput驱动的具体实现
13.1.3实现timed_output_dev设备的读写操作
13.2分析TimedGpio驱动程序
13.2.1TimedGpio驱动的基本原理
13.2.2分析TimedGpio驱动的实现文件
第14章分析调试机制驱动RamConsole
14.1RamConsole基础
14.2分析RamConsole的具体实现
14.2.1分析文件ram_console.h
14.2.2分析文件ram_console.c
第15章分析时钟系统驱动Alarm
15.1Alarm系统基础
15.1.1Alarm层次结构介绍
15.1.2需要移植的内容
15.2分析RTC驱动程序
15.3分析Alarm驱动程序
15.3.1分析文件android_alarm.h
15.3.2分析文件alarm.c
15.3.3分析文件alarm-dev.c
15.4分析JNI层
15.5分析Java层
15.5.1分析AlarmManagerService类
15.5.2分析AlarmManager类
15.6模拟器环境的具体实现
第16章分析USBGadget驱动
16.1分析Linux内核的USB驱动程序
16.1.1USB设备基础
16.1.2分析USB和sysfs的联系
16.1.3分析urb通信方式
16.1.4分析USB驱动的例程
16.2分析USBGadget驱动
16.2.1分析软件结构
16.2.2层次整合
16.2.3USB设备枚举
第3篇设备驱动篇
第17章FrameBuffer显示系统驱动
17.1显示系统介绍
17.2分析内核层
17.2.1分析接口文件fb.h
17.2.2分析内核实现文件fbmem.c
17.3分析硬件抽象层
17.3.1分析头文件
17.3.2分析硬件帧缓冲区
17.3.3实现缓冲区的分配
17.3.4显示缓冲映射
17.3.5分析管理库文件LayerBuffer.cpp
第18章输入系统驱动应用
18.1输入系统介绍
18.1.1Android输入系统结构元素介绍
18.1.2移植工作
18.2分析Input(输入)系统驱动
18.2.1分析头文件
18.2.2分析核心文件input.c
18.2.3分析event机制
18.3分析硬件抽象层
18.3.1分析文件KeycodeLabels.h
18.3.2分析文件KeyCharacterMap.h
18.3.3分析Kl格式文件
18.3.4分析KCM格式文件
18.3.5分析文件EventHub.cpp
第19章音频系统驱动
19.1音频系统基础
19.2分析音频系统的层次
19.2.1层次说明
19.2.2Media库中的Audio框架
19.2.3本地代码
19.2.4分析JNI代码
19.2.5Java层代码简介
19.3移植Audio系统的工作
19.3.1我们的工作
19.3.2分析硬件抽象层
19.3.3分析AudioFlinger中的Audio硬件抽象层的实现
19.3.4真正实现Audio硬件抽象层
19.4在MSM平台实现Audio驱动系统
19.4.1实现Audio驱动程序
19.4.2实现硬件抽象层
第20章视频输出系统驱动
20.1视频输出系统结构
20.2需要移植的部分
20.3分析硬件抽象层
20.3.1Overlay系统硬件抽象层的接口
20.3.2实现Overlay系统的硬件抽象层
20.3.3实现接口
20.4实现Overlay硬件抽象层
第21章振动器系统驱动
21.1振动器系统结构
21.2分析硬件抽象层
21.3分析JNI层部分
21.4分析Java层部分
21.5实现移植工作
21.5.1移植振动器驱动程序
21.5.2实现硬件抽象层
21.6在MSM平台实现振动器驱动
第22章传感器系统驱动
22.1传感器系统的结构
22.2分析需要移植的内容
22.2.1移植驱动程序
22.2.2移植硬件抽象层
22.2.3实现上层部分
22.3在模拟器中实现传感器驱动
第23章照相机系统
23.1Camera系统的结构
23.2分析需要移植的内容
23.3移植和调试
23.3.1V4L2驱动程序
23.3.2硬件抽象层
23.4实现Camera系统的硬件抽象层
23.4.1Java程序部分
23.4.2Camera的Java本地调用部分
23.4.3Camera的本地库libui.so
23.4.4Camera服务libcameraservice.so
第24章Wi-Fi系统、蓝牙系统和GPS系统
24.1Wi-Fi系统
24.1.1Wi-Fi系统的结构
24.1.2分析需要移植的内容
24.1.3分析本地实现
24.1.4分析JNI层
24.1.5分析JavaFrameWork层
24.1.6分析Setting中的Wi-Fi设置
24.2蓝牙系统
24.2.1蓝牙系统的结构
24.2.2分析需要移植的内容
24.2.3分析驱动程序
24.2.4分析本地代码
24.2.5在MSM平台实现蓝牙驱动系统
24.3定位系统
24.3.1分析定位系统的结构
24.3.2分析需要移植的内容
24.3.3分析驱动程序
24.3.4分析硬件抽象层
24.3.5分析上层应用部分
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价