登录 立即注册
安币:

安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户

查看: 2069|回复: 11

Android图书推荐——深入理解Android系统

[复制链接]

0

主题

0

帖子

-10万

安币

VIP3

签到达人活跃会员推广达人优秀版主元老勋章明星会员

发表于 2016-7-27 16:31:53 | 显示全部楼层 |阅读模式

基本信息


书名:深入理解Android系统

原价:88.00元

作者:张元亮

出版社:清华大学出版社

出版日期:2015-07-01

ISBN:9787302404392

字数:

页码:697

版次:1

装帧:平装

开本:16

商品重量:1.2kg


编辑推荐




《深入理解Android系统》适合Android源码分析人员、Android系统架构师、Linux开发人员、Android物联网开发人员、Android爱好者、Android底层开发人员、Android驱动开发人员、Android应用开发人员、Android传感器开发人员、Android智能家居开发人员、Android可穿戴设备开发人员学习,也可以作为相关培训学校和大专院校相关专业的教学用书。


本书内容共18章,循序渐进地分析了整个Android系统的基本架构知识,从获取源码开始讲起,依次讲解了Android系统介绍,包括获取并编译Android源码,分析 JNI,内存系统架构详解,硬件抽象层架构详解,Binder通信机制详解,init启动进程详解,Zygote进程详解,System进程详解,应用程序进程详解,ART机制架构详解,Sensor传感器系统架构详解,蓝牙系统架构详解,Android多媒体框架架构详解,音频系统框架架构详解,视频系统架构详解,WebKit系统架构详解,Android 5.0中的 WebView,Wi-Fi系统架构详解等内容。本书几乎涵盖了所有Android系统架构的主要核心内容,讲解方法通俗易懂并且详细,不但适合应用高手们学习,也特别便于初学者学习和理解。

本书适合 Android驱动开发者、Linux开发人员、Android物联网开发人员、Android爱好者、Android源码分析人员、Android应用开发人员、Android传感器开发人员、 Android智能家居开发人员、 Android可穿戴设备人员的学习,也可以作为相关培训学校和大专院校相关专业的教学用书。



目录



第1章获取并编译Android源码
1.1获取Android源码
1.1.1在Linux系统获取Android源码
1.1.2在Windows平台获取Android源码
1.2分析Android源码结构
1.2.1总体结构
1.2.2应用程序部分
1.2.3应用程序框架部分
1.2.4系统服务部分
1.2.5系统程序库部分
1.2.6系统运行库部分
1.2.7硬件抽象层部分
1.3分析源码中提供的接口
1.3.1暴露接口和隐藏接口
1.3.2调用隐藏接口
1.4编译源码
1.4.1搭建编译环境
1.4.2在模拟器中运行
1.5编译源码生成SDK
第2章分析JNI
2.1 JNI基础
2.1.1 JNI的功能结构
2.1.2 JNI的调用层次
2.1_3分析JNI的本质
2.2分析MediaScanner
2.2.1 分析Java层
2.2.2分析JNI层
2.2.3分析Native(本地)层
2.3分析Camera系统的JNI
2.3.1 Java层预览接口
2.3.2注册预览的JNI函数
2.3.3 C/C++层的预览函数
2.4 Java与JNI基本数据类型转换
2.5 JNIEnv接口
2.6开发JNI程序
2.6.1开发JNI程序的步骤
2.6.2开发一个自己的JNI程序
第3章内存系统架构详解
3.1分析Android的进程通信机制
3.1.1 IPC机制介绍
3.1.2 Service Manager是Binder机制的上下文管理者
3.1.3 Service Manager服务
3.2分析匿名共享内存子系统
3.2.1 Ashmem系统基础
3.2.2基础数据结构
3.2.3初始化处理
3.2.4打开匿名共享内存设备文件
3.2.5实现内存映射
3.2.6实现读/写操作
3.2.7实现锁定和解锁
3.2.8回收内存块
3.3分析C++访问接口层
3.3.1接口MemoryHeapBase
3.3.2接口MemoryBase
3.4分析Java访问接口层
第4章硬件抽象层架构详解
4.1 HAL基础
4.1.1 推出HAL的背景
4.1.2 HAL的基本结构
4.2分析HALmodule架构
4.2.1 hw_module_t
4.2.2 hw_module_methods_t
4.2.3 hw_device_t
4.3分析文件hardware_c
4.3.1 寻找动态链接库的地址
4.3.2数组variant keys
4.3.3载入相应的库
4.3.4获得hw module t结构体
4.4分析硬件抽象层的加载过程
4.5分析硬件访问服务
4.5.1定义硬件访问服务接口
4.5.2具体实现
4.6分析官方实例
4.6.1获取实例工程源码
4.6.2直接调用service0方法的实现代码
4.6.3通过Manager调用service的实现代码
4.7 HAL和系统移植
4.7.1移植各个Android部件的方式
4.7.2设置设备权限
4.7.3 init.rc初始化
4.7.4文件系统的属性
4.8 开发自己的HAL
4.8.1封装HAL接口
4.8.2开始编译
第5章Binder通信机制详解
5.1分析Binder驱动程序
5.1.1数据结构binder work
5.1.2结构体binder node
5.1.3结构体binder ref
5.1.4通知结构体binder ref death
5.1.5结构体binder buffer
5.1.6结构体binder proc
5.1.7结构体binder thread
5.1.8结构体binder transaction
5.1.9结构体binder write read
5.1.10 BinderDriverCommandProtocol
5.1.11枚举BinderDriverRetumProtocol
5.1.12结构体binder ptr cookie和binder—transaction—data
5.1.13结构体flat binder object
5.1.14设备初始化
5.1.15打开Binder设备文件
5.1.16实现内存映射
5.1.17释放物理页面
5.1.18分配内核缓冲区
5.1.19释放内核缓冲区
5.1.20查询内核缓冲区
5.2 Binder封装库
5.2.1 Binder的3层结构
5.2.2类BBinder
5.2.3类BpRefBase
5.2.4类IPCThreadState
5.3初始化Java层Binder框架
5.3.1搭建交互关系
5.3.2实现Binder类的初始化
5.3.3实现BinderProxy类的初始化
5.4实体对象binder node
5.4.1定义实体对象
5.4.2增加引用计数
5.4.3减少引用计数
5.5本地对象BBinder
5.5.1引用了运行的本地对象
5.5.2处理接口协议
5.6 引用对象binder ref
5.7代理对象BpBinder
5.7.1创建Binder代理对象
5.7.2销毁Binder代理对象
第6章init启动进程详解
6.1什么是init进程
6.2入口函数
6.3 ink配置文件
6.3.1 init.rc基础
6.3.2 init.rc解析
6.4解析Service
6.4.1 Zygote对应的service action
6.4.2 init组织Service
6.4.3解析Service用到的函数
6.5解析0n
6.5.1 Zygote对应的on action
6.5.2结构体action
6.5.3解析on字段所在的option
6.6 init控制Service
6.6.1启动Zygote
6.6.2启动Service
6.6.3总结4种启动Service的方式
6.7启动属性服务
6.7.1引入属性
6.7.2设置内核变量
6.7.3初始化属性服务
6.7.4实现具体启动工作
6.7.5获取属性值
6.7.6处理请求
第7章Zygote进程详解
7.1 Zygote基础
7.2启动Zygote
7.2.1 init.c启动脚本
7.2.2创建一个Socket
7.2.3入口函数main()
7.2.4启动函数创建一个虚拟机实例
7.2.5和Zygote进程中的Socket实现连接
第8章System进程详解
8.1启动前的准备
8.1.1获取创建的Socket
8.1.2启动System进程
8.2分析SystemServer
8.2.1分析主函数main0
8.2.2分析函数init2()
8.3 第一个启动的ServiceEntropyService
8.3.1将内容写到ttrandom设备
8.3.2将和设备相关的信息写到urandom设备
8.3.3读取urandom设备的内容
8.3.4发送ENTROPY WHAT
8.4生成并管理日志文件
8.4.1分析DBMS构造函数
8.4.2添加dropbox日志文件
8.4.3 DBMS和seRings数据库
8.5分析DiskStatsService
8.6监测系统内部存储空间的状态
8.6.1构造函数
8.6.2内存检查
8.7分析实现性能统计
8.7.1构造函数
8.7.2进行性能统计
8.7.3输出统计文件
8.8剪贴板服务
8.8.1复制数据到剪贴板
8.8.2从剪贴板粘贴数据
8.8.3管理CBS中的权限
第9章应用程序进程详解
9.1创建应用程序
9.1.1发送创建请求
9.1.2保存启动参数
9.1.3创建指定的应用程序
9.1.4创建本地对象LocalSocket
9.1.5接收创建新应用程序的请求
9.2启动线程池
9.3创建信息循环
第1 0章ART机制架构详解
10.1 分析ART的启动过程
10.1.1运行app_process进程
10.1.2准备启动
10.1.3创建运行实例
10.1.4注册本地JNI函数
10.1.5启动守护进程
10.1.6解析参数
10.1.7初始化类、方法和域
10.2进入main()主函数
10.3 查找目标类
10.3.1 函数LookupClass()
10.3.2 函数DefineClass()
10.3.3 函数InsertClass()
10.3.4函数LinkClass()
10.4类操作
10.5 实现托管操作
第11章Sensor传感器系统架构详解
11.1 Android传感器系统概述
11.2 Java层详解
……
第12章蓝牙系统架构详解
第13章Android多媒体框架架构详解
第14章音频系统框架架构详解
第15章视频系统架构详解
第16章WebKit系统架构详解
第17章Android 5.0中的WebView
第18章Wi—Fi系统架构详解





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0

主题

9276

帖子

2411

安币

Android大神

Rank: 6Rank: 6

发表于 2016-7-27 16:36:15 | 显示全部楼层
相当不错,感谢无私分享精神!

0

主题

9800

帖子

1674

安币

Android大神

IT

Rank: 6Rank: 6

发表于 2016-7-27 16:37:15 | 显示全部楼层
写的真的很不错

465

主题

9888

帖子

827

安币

代码手工艺人

Rank: 4

发表于 2016-7-27 16:37:25 | 显示全部楼层
相当不错,感谢无私分享精神!

92

主题

9556

帖子

1991

安币

Android大神

Rank: 6Rank: 6

发表于 2016-7-27 16:40:15 | 显示全部楼层
帮帮顶顶!!

14

主题

9401

帖子

4742

安币

码皇(巴士元老)

Rank: 8Rank: 8

发表于 2016-7-27 16:46:55 | 显示全部楼层
相当不错,感谢无私分享精神!

2

主题

9392

帖子

2491

安币

Android大神

Rank: 6Rank: 6

发表于 2016-7-27 16:53:15 | 显示全部楼层
学习...学习...

0

主题

2

帖子

37

安币

初级码农

Rank: 1

发表于 2016-10-12 20:01:17 | 显示全部楼层
学习学习!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站长推荐

通过邮件订阅最新安卓weekly信息
上一条 /4 下一条

下载安卓巴士客户端

全国最大的安卓开发者社区
联系我们
关闭
合作电话:
15618560077
Email:
805941275@qq.com
商务市场合作/投稿
问题反馈及帮助
联系我们

广告投放| 广东互联网违法和不良信息举报中心|中国互联网举报中心|下载客户端|申请友链|手机版|站点统计|安卓巴士 ( 粤ICP备15117877号 )

快速回复 返回顶部 返回列表