Android源码分析实录

Android源码分析实录 下载 mobi epub pdf 电子书 2024


简体网页||繁体网页
李忠良 著



点击这里下载
    


想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

发表于2024-11-25

类似图书 点击查看全场最低价

图书介绍

出版社: 清华大学出版社
ISBN:9787302393290
版次:1
商品编码:11675987
品牌:清华大学
包装:平装
开本:16开
出版时间:2015-04-01
用纸:胶版纸
页数:740
正文语种:中文


相关图书





图书描述

编辑推荐

  (1)讲解详尽,深入底层。
  《Android源码分析实录》详细讲解了Android网络开发的每一个知识点,为了更加说明原理,从深入底层开始,到顶层Java应用结束。即使菜鸟也能够看懂并掌握。
  (2)大话模式,趣味性更强。
  《Android源码分析实录》采用诙谐、生动的大话模式讲实例,在逼真的生活场景中学编程,区别于传统编程书的古板,使读者以快活的心情学习。将复杂的高深专业知识,以趣味性的语言讲解出来。
  (3)实例典型,提示丰富。
  《Android源码分析实录》中的实例都是最典型的,最能阐述知识点的应用。融合了技术中所有的经典范例,加深读者对知识的掌握。
  (4)高深内容的深层剖析,做到一一俱全。
  作为某项专业技术,用最合理的篇幅详细剖析了每个知识点,内容涉及了领域内的方方面面,可直接作为此领域的专业书籍。

内容简介

  Android是一款服务于智能手机和平板电脑等设备的操作系统,截止作者撰写此书时为止,Android在智能手机操作系统市场中已经占有75%的份额。为了让广大读者充分了解这款神奇的操作系统的架构原理,本书循序渐进地分析了Android系统核心源码的基本知识。
  《Android源码分析实录》共分为15章,主要内容包括走进Android世界、硬件抽象层详解、分析JNI(Java本地接口)层、Android内存系统分析、Android虚拟机系统详解、IPC通信机制详解、Zygote进程/System进程和应用程序进程、分析Activity组件、ContentProvider数据存储、Broadcast(广播)系统详解、多媒体系统详解、电源管理系统详解、输入系统驱动应用、蓝牙系统详解、网络系统详解等。
  《Android源码分析实录》几乎涵盖了Android源码中的所有核心系统的内容,全书内容通俗易懂,适合Android初学者、Android爱好者、Android底层开发人员、Android应用开发人员阅读和学习,也可以作为相关培训学校和大专院校相关专业的教学用书。

目录

第1章 走进Android世界 1
1.1 Android系统的优势 2
1.1.1 开源 2
1.1.2 强大的开发团队的支持 2
1.1.3 开发人员的支持 2
1.2 Android系统架构介绍 3
1.2.1 底层操作系统层(Linux内核层) 4
1.2.2 库(Libraries)和运行环境(Runtime) 4
1.2.3 应用程序框架(ApplicationFramework) 5
1.2.4 顶层应用程序(Application) 5
1.3 核心组件 5
1.3.1 Activity的界面表现 5
1.3.2 Intent和IntentFilters界面切换 6
1.3.3 Service服务 6
1.3.4 用Broadcast IntentReceiver广播 7
1.3.5 用Content Provider存储 7
1.4 进程和线程 7
1.4.1 什么是进程 7
1.4.2 什么是线程 8
1.5 获取Android 4.3源码 8
1.5.1 在Linux系统中获取Android源码 8
1.5.2 在Windows平台上获取Android源码 9
1.6 Android源码结构分析 14
1.6.1 Android源码的目录结构 15
1.6.2 应用程序 16
1.6.3 应用程序框架 18
1.6.4 系统服务 19
1.6.5 系统程序库 21
1.6.6 系统运行库 24
1.6.7 硬件抽象层 25
1.7 编译Android源码 26
1.7.1 搭建编译环境 27
1.7.2 开始编译 27
1.7.3 在模拟器中运行 29
1.7.4 编译源码生成SDK 30
第2章 硬件抽象层详解 35
2.1 什么是HAL层 36
2.1.1 为什么把对硬件的支持划分为两层来实现 36
2.1.2 HAL层的位置结构 36
2.2 分析HAL Module架构 38
2.2.1 hw_module_t 39
2.2.2 hw_module_methods_t 40
2.2.3 hw_device_t 40
2.3 分析文件hardware.c 41
2.3.1 函数hw_get_module 41
2.3.2 数组variant_keys 41
2.3.3 载入相应的库 42
2.3.4 打开相应库并获得hw_module_t结构体 43
2.4 分析硬件抽象层的加载过程 44
2.5 分析硬件访问服务 48
2.5.1 定义硬件访问服务接口 48
2.5.2 实现硬件访问服务 49
2.6 分析mokoid工程 50
2.6.1 直接调用Service方法实现 51
2.6.2 通过Manager调用Service实现 56
2.7 分析HAL层的具体实现(以Sensor系统为例) 59
2.7.1 传感器系统的基础知识 59
2.7.2 HAL层的Sensor代码 60
2.7.3 Sensor编程的流程 61
第3章 分析JNI(Java本地接口)层 63
3.1 JNI基础 64
3.1.1 JNI的层次结构 64
3.1.2 JNI的本质 64
3.1.3 与JNI相关的文件 65
3.2 分析Java层 66
3.2.1 加载JNI库 66
3.2.2 实现扫描工作 68
3.2.3 读取并保存信息 69
3.2.4 删除不是SD卡中的文件信息 72
3.2.5 直接转向JNI 72
3.2.6 扫描函数scanFile 73
3.2.7 异常处理 73
3.3 分析MediaScanner的JNI层 74
3.3.1 将Native对象的指针保存到Java对象 75
3.3.2 创建Native层的MediaScanner对象 75
3.4 分析MediaScanner的Native层 76
3.4.1 注册JNI函数 76
3.4.2 完成注册工作 78
3.4.3 动态注册 80
3.4.4 处理路径参数 82
3.4.5 扫描文件 83
3.4.6 添加TAG信息 83
3.4.7 JNIEnv接口 85
3.4.8 JNI中的环境变量 86
3.5 JNI实例分析(基于Camera系统) 87
3.5.1 Java层预览接口 87
3.5.2 注册预览的JNI函数 89
3.5.3 C/C++层的预览函数 92
第4章 Android内存系统分析 95
4.1 Android的进程通信机制 96
4.1.1 Android的进程间通信(IPC)机制Binder 96
4.1.2 Service Manager是Binder机制的上下文管理者 97
4.2 分析Ashmem驱动程序 98
4.2.1 基础数据结构 98
4.2.2 初始化处理 99
4.2.3 打开匿名共享内存设备文件 101
4.2.4 内存映射 104
4.2.5 读写操作 105
4.2.6 锁定和解锁 107
4.2.7 回收内存块 113
4.3 分析C++访问接口层 115
4.3.1 接口MemoryHeapBase 115
4.3.2 接口MemoryBase 125
4.4 分析Java访问接口层 128
4.5 内存优化机制 132
4.5.1 sp和wp简析 132
4.5.2 详解智能指针 134
4.5.3 轻量级指针 136
4.5.4 强指针 139
4.5.5 弱指针 153
第5章 Android虚拟机系统详解 159
5.1 Android虚拟机基础 160
5.1.1 Android虚拟机源码目录 160
5.1.2 Dalvik的架构 161
5.1.3 Dalvik虚拟机的主要特征 163
5.1.4 Dalvik的进程管理 163
5.1.5 Android的初始化流程 163
5.2 分析Dalvik的运作流程 164
5.2.1 Dalvik虚拟机相关的可执行程序 164
5.2.2 初始化Dalvik虚拟机 167
5.2.3 启动Zygote 186
5.2.4 启动SystemServer进程 190
5.2.5 加载class类文件 193
5.3 Dalvik VM的内存系统 197
5.3.1 如何分配内存 197
5.3.2 分析内存管理机制的源码 199
5.4 分析Dalvik VM的启动过程 211
5.4.1 创建一个Dalvik VM实例 211
5.4.2 指定控制选项 212
5.4.3 创建并初始化Dalvik VM实例 220
5.4.4 创建JNIEnvExt对象 223
5.4.5 设置当前进程 229
5.4.6 注册Android核心类的JNI方法 229
5.4.7 使用线程创建javaCreateThreadEtc钩子 233
5.5 创建Dalvik VM进程 233
5.5.1 分析底层启动过程 234
5.5.2 创建Dalvik VM进程 234
5.5.3 初始化运行的Dalvik VM 238
第6章 IPC通信机制详解 241
6.1 Binder机制概述 242
6.2 分析Binder驱动程序 243
6.2.1 分析数据结构 243
6.2.2 分析设备初始化 255
6.2.3 打开Binder设备文件 257
6.2.4 内存映射 258
6.2.5 释放物理页面 264
6.2.6 分配内核缓冲区 264
6.2.7 释放内核缓冲区 267
6.2.8 查询内核缓冲区 269
6.3 Binder封装库 270
6.3.1 Binder库的实现层次 270
6.3.2 类BBinder 271
6.3.3 类BpRefBase 274
6.3.4 类IPCThreadState 275
6.4 初始化Java层Binder框架 279
第7章 Zygote进程、System进程和应用程序进程 283
7.1 Zygote(孕育)进程详解 284
7.1.1 Zygote基础 284
7.1.2 分析Zygote的启动过程 285
7.2 System进程详解 303
7.2.1 启动System进程前的准备工作 303
7.2.2 分析SystemServer 304
7.2.3 分析EntropyService 308
7.2.4 分析DropBoxManagerService 310
7.2.5 分析DiskStatsService 318
7.2.6 分析DeviceStorageManagerService 323
7.2.7 分析SamplingProfilerService 326
7.3 应用程序进程详解 336
7.3.1 创建应用程序 336
7.3.2 启动线程池 347
7.3.3 创建信息循环 348
第8章 分析Activity组件 351
8.1 Activity基础 352
8.1.1 Activity的状态 352
8.1.2 Activity的主要函数 353
8.2 启动Activity 355
8.2.1 Launcher启动应用程序 356
8.2.2 返回ActivityManagerService的远程接口 358
8.2.3 解析intent的内容 359
8.2.4 分析检查机制 363
8.2.5 执行Activity组件的操作 378
8.2.6 将Launcher推入Paused状态 386
8.2.7 处理消息 388
8.2.8 报告暂停 389
8.2.9 建立双向连接 394
8.2.10 启动新的Activity 400
8.2.11 发送通知信息 403
第9章 Content Provider数据存储 405
9.1 Content Provider基础 406
9.1.1 Content Provider在应用程序中的架构 406
9.1.2 Content Provider的常用接口 407
9.2 启动Content Provider 408
9.2.1 获得对象接口 408
9.2.2 存在校验 410
9.2.3 启动Android应用程序 416
9.2.4 根据进程启动Content Provider 416
9.2.5 处理消息 422
9.2.6 具体启动 423
9.3 Content Provider数据共享 427
9.3.1 获取接口 427
9.3.2 创建CursorWindow对象 430
9.3.3 数据传递 433
9.3.4 处理进程通信的请求 436
9.3.5 数据操作 442
第10章 Broadcast(广播)系统详解 447
10.1 Broadcast基础 448
10.2 发送广播信息 448
10.2.1 intent描述指示 449
10.2.2 传递广播信息 449
10.2.3 封装传递 450
10.2.4 处理发送请求 451
10.2.5 查找广播接收者 451
10.2.6 处理广播信息 455
10.2.7 检查权限 464
......










精彩书摘

  第1章
  走进Android世界
  Android系统于2007年诞生,是一款建立在Linux内核之上的智能设备系统,是一款经典的手机、平板电脑等移动设备的软件解决方案。从2011年下半年开始到现在,Android系统在全球智能手机操作系统中的占有率一直位居第一。
  本章将简单介绍Android系统的发展历程和背景,让读者了解Android系统的发展之路,充分体验这款无与伦比的操作系统。
  1.1Android系统的优势
  为什么Google的Android(安卓)系统能够在短短4年内超越了Symbian(塞班)、Blackberry
  (黑莓)、iOS等前辈,从一名后起之秀变为移动智能设备市场占有率的大佬?这需要从Android系统的优势谈起,在本节的内容中,将为读者展示这些优势。
  1.1.1开源
  Google的Android出身于Linux世家,是一款开源的手机操作系统。正因为如此,在Android崭露头角之后,各大手机厂商和电信部门纷纷加入到了Android联盟中。这个联盟由业界内的公认大佬组成,主要成员包括Google、中国移动、摩托罗拉、高通和T-Mobile等在内的30多家技术和无线应用的领军企业。Android通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望通过建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。
  开源意味着对开发人员和手机厂商来说,Android是完全无偿免费使用的。正是因为源代码公开的原因,所以吸引了全世界各地无数程序员的热情。于是很多手机厂商都纷纷采用Android作为自己产品的系统,这当然也包括很多山寨厂商。因为免费,所以降低了成本,因而提高了利润。而对于开发人员来说,因为Android被众多移动设备产品所采用,所以这方面的人才也变得愈发抢手。于是有一些在别的系统上干得还可以的程序员也改行做Android开发,纷纷加入到Android开发大军中来,原因是待遇更好;另外,也有很多混得不尽如人意的程序员更是纷纷改行做Android手机开发,目的是想寻找自己程序员生涯的转机。
  而像本书作者这样遇到发展瓶颈的程序员,后来也决定做Android开发,因为这样可以学习一门新的技术,使自己的未来更加有保障。
  1.1.2强大的开发团队的支持
  Android的研发队伍阵容强大,包括Google、摩托罗拉、HTC(宏达电子)、Philips、T-Mobile、高通、魅族、三星、LG以及中国移动在内的34家企业,这些企业都基于Android平台开发手机的新型业务,并使应用之间的通用性和互联性在最大程度上得到保持。从硬件到软件开发机构,再到电信服务商,Android从一开始便成为业界内的宠儿,被当作新秀而重点培养,在强大的开发团队的培育和呵护下,顺利地功成名就,成为一方霸主。
  1.1.3开发人员的支持
  Google一直视程序员为前进的动力和源泉,为了提高程序员们的开发积极性,不但为开发人员提供了一流的开发装备和软件服务,而且还提出了振奋人心的奖励机制。
  具体的开发人员支持主要体现在如下三个方面。
  (1)可以迅速步入Android应用开发。在Android平台上,程序员可以开发出各式各样的应用。Android应用程序是通过Java语言开发的,只要具备Java开发基础,就能很快地上手并掌握。对于单独的Android应用开发来说,并没有很高的Java编程门槛,即使没有编程经验的门外汉,也可以在突击学习Java之后很快掌握Android编程。另外,Android完全支持2D、3D和数据库,并且与浏览器实现了集成。所以,通过Android平台,程序员可以迅速、高效地开发出绚丽多彩的应用,例如常见的工具、管理程序、互联网程序和游戏程序等。
  (2)可以参加奖金丰厚的Android大赛。为了吸引更多的用户使用Android开发,Google定期举办奖金为数千万美元的开发者竞赛,鼓励开发人员做出创意十足的软件。这种大赛对于开发人员来说,不但能磨练自己的开发水平,并且高额奖金本身也是吸引学习的动力。
  (3)可以加入自由经营的贸易市场。为了能让Android平台吸引更多的关注,Google提供了一个专门下载Android应用的门店:AndroidMarket,网址是https://play.google.com/store。在这个门店里面,允许开发人员发布应用程序,也允许Android用户下载自己喜欢的程序。作为开发者,需要申请开发者账号,申请后才能将自己的程序上传到AndroidMarket,并且可以对自己的软件进行定价。只要你的软件程序足够吸引人,就可以获得很好的回报。学习和赚钱两不误,我们何乐而不为呢?
  1.2Android系统架构介绍
  Android是一个移动设备的开发平台,其软件层次结构大体上包括操作系统(OS)、中间件(Middleware)和应用程序(Application)。
  Android操作系统的组件结构如图1-1所示。
  图1-1Android操作系统的组件结构
  根据Android操作系统的组件结构框图可知,其软件层次 Android源码分析实录 下载 mobi epub pdf txt 电子书 格式

Android源码分析实录 mobi 下载 pdf 下载 pub 下载 txt 电子书 下载 2024

Android源码分析实录 下载 mobi pdf epub txt 电子书 格式 2024

Android源码分析实录 下载 mobi epub pdf 电子书
想要找书就要到 图书大百科
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

用户评价

评分

这个内容其实讲的不太好,说深不深,说广不广

评分

适合java

评分

东西不错

评分

挺厚的一本书,大神可以忽略。。

评分

很好,写的很详细,看完后才来评价的

评分

适合java

评分

非常满意的一次网购,非常满意的一次网购

评分

感觉一般,堆了很多代码,看不下去

评分

呵呵红红火火恍恍惚惚哈哈哈哈

类似图书 点击查看全场最低价

Android源码分析实录 mobi epub pdf txt 电子书 格式下载 2024


分享链接








相关图书


本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

友情链接

© 2024 book.qciss.net All Rights Reserved. 图书大百科 版权所有