软件下载站,为您提供安全的软件下载!

当前位置:首页 > 电脑专区 > 应用软件 > 电子阅读 > android系统服务开发pdf扫描版

android系统服务开发pdf扫描版

分享到:
android系统服务开发是一本不错的android系统开发书籍,通过本书可以了解系统进程间通信、通信(RIL)框架、电源管理等内容的相关细节,对致力于这方面开发的程序员来说大有裨益。本书由[韩]金大佑,朴宰永,文炳元编著,邸春红翻译,人民邮电出版社出版。全书详细的分析了Android提供的硬件控制机制和测试平台源代码和日志作为范例,并且还介绍了目前尚未普及的Android平台的硬件控制基本原理及实际框架的操作,能使观看者最大程度的了解Androidd的系统服务开发,从而达到学习,提升自己的目的,能够适用于初学者以及Android开发高手。有需要的朋友欢迎来3322软件站免费下载。
android系统服务开发

android系统服务开发内容简介:

《Android系统服务开发》分析了安卓提供的硬件控制机制。编写团队目前均从事相关工作,直接对平台源代码及日志进行分析及测试,介绍了目前尚未普及的安卓平台的硬件控制基本原理及实际框架的操作。
与安卓刚出现时相比,安卓开发人员现在已有了大幅增长,人们也可轻松搜索到相关资料。但安卓开发仍然很有难度,每当版本升级时,结构变动都会使之前的代码无法重新使用。虽然需要深入掌握安卓平台,但开发人员的主要工作就是修复Bug,所以对实际情况往往“只见树木不见森林”。本书着眼点在于“开发人员如何改善开发流程”,这个问题的关键就是深入挖掘安卓的基本实现原理。
基本功扎实的开发人员可以主导顺应智能手机时代发展的“Smart”开发。通过本书可以掌握安卓平台的操作原理,并将其直接应用于开发业务。

android系统服务开发简介:

图书名称:Android系统服务开发
作者:金大佑,朴宰永,文炳元,邸春红
出版社:人民邮电出版社
ISBN:9787115375544
出版日期:2015-02-01
字数:715000
页码:411
版次:1
装帧:平装
开本:16开

android系统服务开发作者简介:

金大佑,西江大学电子工程学士及硕士学位。大学时期沉迷于Linux,并创建了一个Linux社团。曾参与LG电子安卓项目,目前在瑞萨移动参与安卓LTE手机项目。虽然热衷于安卓开发,但目前仍在使用非智能手机。主要关注领域是安卓平台、SW设计以及ARM架构。希望有一天可以将创建开源项目作为个人爱好。
朴宰永,高丽大学无线电工程学士及硕士学位,进入LG电子后从事手机开发业务至今。尤其在10余年的开发过程中,从与硬件相关的BSP业务到UI业务,乃至批量生产相关业务均有所涉猎,积累了丰富经验。比较关注的领域是无线通信、移动平台、ARM架构、USIM、电源管理,今后想通过授课对社会做出贡献。
文炳元,曾在LG电子参与手机开发业务,目前在一家游戏公司负责数据分析。认为程序员的能力不仅在于了解丰富的知识,更在于能够找到解决问题的方法。现在仍然为了每天都有进步而不断付出努力。

android系统服务开发编辑推荐:

《Android系统服务开发》分析了Android提供的硬件控制机制。编写团队目前均从事相关工作,直接分析并测试平台源代码和日志,介绍了目前尚未普及的Android平台的硬件控制基本原理及实际框架的操作。
与Android刚出现时相比,Android开发人员现在已有了大幅增长,人们也可轻松搜索到相关资料。但Android开发仍然很有难度,每当版本升级时,结构变动都会使之前的代码无法继续使用。虽然需要深入掌握Android平台,但开发人员的主要工作就是修复Bug,所以对实际情况往往“只见树木不见森林”。本书着眼点在于“开发人员如何改善开发流程”,这个问题的关键就是深入挖掘Android的基本实现原理。
基本功扎实的开发人员可以主导顺应智能手机时代发展的智能开发。通过本书可以掌握Android平台的操作原理,并将其直接应用于开发业务。

android系统服务开发目录:

第1 章 Android 系统服务开发  1
1.1 Android 系统服务开发简介  2
1.1.1 Android 的出现  2
1.1.2 移动设备的硬件结构  5
1.1.3 Android 硬件服务开发概要  11
1.1.4 本书的叙述方向  14
1.2 IPC  16
1.2.1 Android 的进程  16
1.2.2 进程的fork() 及exec() 函数  17
1.2.3 Linux 内核的IPC  19
1.2.4 Linux 管道  20
1.2.5 网络套接字  21
1.2.6 UNIX 套接字  27
1.3 I/O 多路复用  30
1.3.1 服务器端/ 客户端模型  30
1.3.2 使用select() 函数的I/O 多路复用  33
1.3.3 select() 函数示例  34
1.4 ITC  36
1.4.1 多线程  36
1.4.2 Android 的ITC 模型  39
1.4.3 消息  42
1.4.4 Looper  45
1.4.5 Handler  49
1.4.6 HandlerThread  54
1.5 守护进程服务分析  56
1.5.1 普通守护进程程序的结构  56
1.5.2 生成init 进程的守护进程服务  58
1.5.3 守护进程与多客户端间的通信  65
第2 章 RIL  70
2.1 RIL 简介  71
2.1.1 RIL 简介  71
2.1.2 AP 与调制解调器间的相互作用  72
2.1.3 AP 与调制解调器间的通信:RIL 命令  73
2.2 RIL 结构  75
2.2.1 Android 通信栈  76
2.2.2 Android RIL 的调制解调器控制模型  77
2.3 RIL 守护进程的结构  78
2.3.1 RIL 守护进程的构成要素  79
2.3.2 RIL 事件  80
2.3.3 RIL 事件调度程序  81
2.4 RIL 守护进程初始化  87
2.4.1 守护进程的启动  87
2.4.2 RIL 守护进程初始化过程  90
2.4.3 动态加载Vendor RIL 库  91
2.4.4 生成RIL 事件调度程序  92
2.4.5 Vendor RIL 初始化  97
2.4.6 注册Vendor RIL 的Radio控制函数及生成I/O 事件专用套接字  100
2.5 RIL 事件处理机制  103
2.5.1 RIL 事件调度程序的运行原理  103
2.5.2 RIL 事件处理回调函数  110
2.5.3 RIL req 处理机制  119
2.5.4 RIL resp 处理机制  124
2.5.5 RIL ind 处理机制  129
第3 章 通信框架  136
3.1 通信框架概要  137
3.1.1 通信框架的功能  137
3.1.2 通信框架提供的服务  139
3.2 通信框架的结构  140
3.2.1 通信框架的分层构成要素  140
3.2.2 PhoneApp 类  142
3.2.3 PhoneProxy 类  142
3.2.4 Phone 接口  144
3.2.5 Radio 接口  146
3.2.6 state tracker 类  148
3.2.7 CallManager 类  149
3.2.8 不同版本中通信框架的变化(1.5~4.2)  151
3.3 通信框架的初始化  152
3.3.1 Phone 应用程序的生成  153
3.3.2 通信框架的初始化  155
3.3.3 RILJava 的初始化  160
3.4 通信框架的服务模型  164
3.4.1 通信框架的服务结构  164
3.4.2 通信框架的服务req/resp 处理机制  165
3.4.3 通信框架的服务ind 处理机制  172
3.5 RILJava 的RIL req 处理示例  186
3.5.1 Phone 应用程序的通信框架API 调用  187
3.5.2 调用RILJava 的Radio API  189
3.5.3 生成RILJava 的RILRequest对象  191
3.5.4 向RILSender 线程传送RILRequest 对象  193
3.5.5 发送RILSender 线程的RIL req  194
3.6 RILJava 的RIL resp 处理示例  197
3.6.1 从RIL 守护进程接收RIL resp  198
3.6.2 发送RILReceiver 线程的服务resp 消息  200
3.6.3 处理客户端对象handler 的服务resp 消息  202
3.7 RILJava 的RIL ind 处理示例  203
3.7.1 注册Subscriber 对象的服务ind  204
3.7.2 接收RILReceive 线程的RIL ind  205
3.7.3 调用RILReceive 线程的 205
notifyRegistrant() 方法  
3.7.4 处理Subscriber 对象handler的服务ind 消息  209
第4 章 USIM  211
4.1 USIM 简介  212
4.1.1 智能卡的定义  213
4.1.2 智能卡的启动过程  213
4.1.3 使用APDU 的智能卡通信  215
4.1.4 USIM 的由来  215
4.1.5 USIM 的主要功能  216
4.2 USIM 的数据结构及运行  219
4.2.1 USIM 的数据结构  219
4.2.2 USIM 的移动通信相关EF  221
4.2.3 通过APDU 读取EF 的过程  223
4.3 Android USIM 软件结构  225
4.3.1 调制解调器  225
4.3.2 RIL  226
4.3.3 通信框架  226
4.3.4 Android 应用程序  229
4.4 Android USIM 初始化及运行  230
4.4.1 UICC 初始化及UICC 相关对象的生成  230
4.4.2 系统启动后调制解调器通电  235
4.4.3 进入SIM_READY 状态  240
4.4.4 查看USIM 状态及执行EF读取  244
4.4.5 分析通信框架的EF 读取  246
4.5 Android USAT 初始化及运行  254
4.5.1 USAT 初始化  254
4.5.2 通过Display Text 分析Proactive Command  258
4.5.3 Android 的Proactive Command处理  263
第5 章 Android 电源管理  270
5.1 电源管理概述  272
5.1.1 电功率  273
5.1.2 了解电池  273
5.1.3 默认电源状态  274
5.1.4 Android 电源管理的作用  275
5.2 Android 电源管理的结构  276
5.2.1 Android 电源管理的层级结构  277
5.2.2 Power Manager  278
5.2.3 Power Manager Service  279
5.2.4 本地空间  280
5.2.5 内核空间  282
5.2.6 Android 电源管理主要方法调用过程  283
5.3 Power Manager Service 的初始化  284
5.3.1 Power Manager Service 的类结构及方法  285
5.3.2 生成并注册Power ManagerService  286
5.3.3 Power Manager Service 初始化:init() 方法  290
5.3.4 Power Manager Service 初始化:systemReady() 方法  302
5.4 Power Manager Service 的主要操作  304
5.4.1 Power Manager Service 状态  304
5.4.2 决定Power Manager Service状态  307
5.4.3 屏幕亮度时间的结构  315
5.4.4 根据屏幕亮度时间控制屏幕亮度  318
5.4.5 屏幕亮度转换的结构要素  320
5.4.6 屏幕亮度转换操作  321
5.4.7 Wake Lock 标记与标签  328
5.4.8 生成Wake Lock  330
5.4.9 获取Wake Lock  334
5.4.10 解除Wake Lock  344
5.5 间接应用电源管理服务  344
5.5.1 Power Manager 类提供的方法  345
5.5.2 Power Manager 类的实例化及获取  345
5.5.3 获取Wake Lock:PARTIAL_WAKE_LOCK  347
5.5.4 Wake Lock 获取示例:PARTIAL_WAKE_LOCK  348
5.5.5 获取Wake Lock:屏幕亮度控制标记  350
5.5.6 Wake Lock 获取示例:FULL_WAKE_LOCK  352
5.5.7 获取Wake Lock:ACQUIRE_CAUSES_WAKEUP  353
5.5.8 解除Wake Lock:PARTIAL_WAKE_LOCK  357
5.5.9 解除Wake Lock:屏幕亮度控制标记  358
5.5.10 解除Wake Lock:ON_AFTER_RELEASE  360
5.6 直接应用Power Manager Service  361
5.6.1 屏幕亮度设置  362
5.6.2 Poke Lock  363
5.7 不应用Power Manager Service的Wake Lock  364
第6 章 Android 内核电源管理  367
6.1 Linux 内核电源管理  369
6.1.1 APM 与ACPI  369
6.1.2 设备电源管理  372
6.2 Android 内核电源管理  372
6.2.1 Android 内核修订内容  372
6.2.2 kobject 与sysfs 文件系统  373
6.2.3 生成用于电源管理的sysfs文件  376
6.3 电源管理初始化  378
6.4 Early Suspend  381
6.4.1 Early Suspend 结构体与注册  382
6.4.2 Early Suspend 操作  384
6.5 Wake Lock  387
6.5.1 Wake Lock 结构  387
6.5.2 生成Wake Lock  389
6.5.3 激活Wake Lock  390
6.5.4 禁用Wake Lock  393
6.6 Suspend  394
6.6.1 执行Suspend  394
6.6.2 准备Suspend  395
6.6.3 进入Suspend  396
6.7 Resume  399
6.7.1 Early Resume  400
6.7.2 设备Resume  401
6.7.3 Resume 完成  402
6.8 Late Resume  402
6.9 Surface Flinger 与内核之间的相互操作  405
6.9.1 屏幕On(开)状态到Off
(关)状态的转换  406
6.9.2 屏幕Off(关)状态到On(开)状态的转换  409
索引  412

android系统服务开发前言/序言:

长达两年半的写作终于结束了,真让我耗尽心力。公司、家庭、写作齐头并进,经常让我觉得时间不够用。体力和健康状况大不如前,这也牵制了我的写作计划。我有好几十次想过就此放弃,有好几百次问过自己:“为什么要自讨苦吃?为什么要做这些?”频繁的加班,甚至周末也要加班,这让我很难保证写作时间。孩子出生后,时间就更少了。尽管这样,我仍旧坚持每天更新稿件,心想着哪怕每天只写一行也好。就凭着这种不放弃的态度,本书最终得以面世。如果中途放弃的话,我一定会抱憾终身。
Android的版本不断更新,我最初接触Android的时候,是Android.Cupcake(1.5)版本,现在已经升级到了Android.Jelly.Bean.Plus(4.2)。在此期间,Android取得了令人瞩目的发展,是目前拥有最大用户群的智能手机OS。Android发布之初很难找到相关资料,而且在实际应用领域,使用Android的人也只是少数。我本人也曾经通过Google搜索Android相关资料,但找到的信息只停留在基础理论水平。当然,现在也经常难以找到真正需要的内容,不得不自己解决问题。因此,我开始整理开发中所需资料,希望有一天能够以某种形式公开这些资料,以帮助那些因为资料不足而伤脑筋的开发人员。一个偶然的机会,我在网络上看到了招募作者的网络招聘信息,于是决定参与其中,与团队中给我很大影响的朴宰永负责人,以及对Android 平台有很大兴趣的文炳元先生合作,最终完成了这本书。
不知道大家是否听说过马尔科姆.格拉德威尔(Malcolm.Gladwell)在《异数》(Outsider)一书中介绍的“一万小时定律”?“一万小时定律”是指,无论任何领域,如果想要成为一名专家,那么至少要投入一万小时。这一万小时是由什么组成的呢?只要工作时间合计超过一万小时,就可以成为该领域的专家吗?如果以每周工作40小时为基准,工作一年的话有2000小时,这样一来,如果一份工作做5年,那么就在该领域有了一万小时的经验,应该就可以说是一位专家了。然而我们面对的现实情况却是,从事开发工作5年的开发人员有时候做调试都觉得吃力,更别说做系统设计了。是的,“一万小时定律”不是单纯的工作时间总和,而是为了提高自己的实力所投资的时间总和。我想,这本书也是我提高自身实力过程中的产物。在边写书边思考如何向读者进行说明、如何更好地帮助读者理解的过程中,我也学到了很多。这种思考成为非常有用的知识及经验,可以在实际开发中解决很多问题。
与Android初创期相比,现在的Android开发人员有了大幅增加,然而这样就可以认为进入Android世界的门槛降低了吗?开源的优点就好比开卷考试的优点,开卷考试虽然为所有人都提供了相同的机会,但是在限定时间内进行考试而得到的结果却有所不同,那些对基础知识掌握透彻的人反而能够得到更好的成绩。同样,开源的优点也使得很多人可以接触到Android平台的核心,但是这无法降低进入Android世界的门槛。为什么一线的开发人员仍然会觉得Android开发难度很高呢?是因为Android的发布速度慢于其他智能手机OS吗?或者是因为Android还不够成熟?还是因为MSDN 等强大的开发人员帮助手册还不够完备?
当然,上面所列的原因都是影响Android开发的要素,但我个人认为,最主要的原因是恶劣的开发环境。极短的项目周期、接连不断的加班、依照Man-Month投入的人力、不完善的开发人员教育系统等,这些恶劣的开发环境消耗了开发人员的好奇心,反而使Android变为令开发人员感到痛苦的对象。在这种开发环境下,与其从根本上找到避免出现Bug的对策,不如快速修复Bug,解决Bug跟踪系统的问题。我本人开始进行Android 开发后不久,有一次阅读Android方面的参考书籍时,一个同事问了我这样一个问题:“连开发的时间都不够用,哪儿还有时间看书啊?”我当时是这样回答的:“如果想要更好地掌握开发技术,就一定要学习。如果只注重开发,那么就没有时间学习了。”我一直相信,一名透彻地理解了Android的工程师可以以一当十。希望有一天,人们能够在开发一线进行smart.work,获得充分的休息;开发人员可以完全发挥出自己的能力,不是用“身体”,而是用“头脑”去开发。
本书的出版得到了很多人的帮助。首先要感谢Developerware出版社的郑权社长和金泰然先生,没有他们就不会有这本书。感谢郑权社长的信任和耐心,感谢泰然先生的指点。另外,和我一同编写本书的朴宰永先生、文炳元先生这段时间也非常辛苦。感谢教我硬件知识的尹玄高级研究员、出色的首席Leader金承民先生、认真组织测试的金东旭高级研究员和李成信研究员,以及曾与我参加同一项目的李正浩研究员、朴智英研究员、Call/SMS/MMS各位组员,还有在开发一线与我同甘共苦的尹尚浩高级研究员、与我同年进入公司的刘贤先生。另外,还要感谢百忙之中依然给我鼓励的瑞萨移动公司的金振形本部长、柳仁焕部长、李正久部长、汝成九部长、李江勋副部长、李焕承副部长、宋英伦副部长、李尚京副部长、卓泰勋副部长、金东瑾课长。
如果没有我亲爱的妻子金耀百合和可爱的儿子金河林的体贴,我也无法完成这本书。之前的很多个周末我都因为要编写本书而无法与他们一起度过,现在不用再思考修改稿件了,我想把之前欠他们的时间都补回来。另外,我还要借此机会表达我对家人的爱。
虽然第一次写作结束了,但是不知为何,我还是觉得留下了很多遗憾。在下一次的写作中,我想进一步贴近开发人员,围绕更加轻松的主题进行介绍。我相信下一部书一定会在更短的时间内完成。如果把开发当做工作,会觉得有很大的难度;而如果当做一种兴趣,那么就不会有比这更让人享受的事了。
金大佑

免责声明:

android系统服务开发来源于网络,仅用于分享知识,学习和交流!请下载完在24小时内删除。
android系统服务开发禁用于商业用途!如果您喜欢《android系统服务开发》,请购买正版,谢谢合作。
爱学习,请到3322软件站 / 查找资源自行下载!

使用说明:

方法一:
1、下载并解压,得出pdf文件
2、如果打不开本文件,请务必在3322软件站选择一款阅读器/zt/430.html下载
3、安装后,在打开解压得出的pdf文件
4、双击进行阅读
方法二:
1、在手机里下载3322软件站中的阅读器和百度网盘
2、直接将pdf传输到百度网盘
3、用阅读器打开即可阅读
展开更多

软件截图

扫描二维码,手机下载APP

软件下载站本地下载

相关文章