深入理解Android 卷II
本书是笔者“深入理解Android”系列的第二本,这一本将关注重点放在了Android Framework的Java层。在众多可供分析的知识点中,笔者另辟蹊径,选择了SystemServer中的服务(Service)作为主人公。
SystemServer中的服务可划分为7大类共43项(包括Watchdog在内):
位于第一大类的是Android的核心服务,如ActivityManagerService、WindowManager-Service等。
位于第二大类的是和通信相关的服务,如Wifi的相关服务、Telephone的相关服务。
位于第三大类的是和系统功能相关的服务,如AudioService、MountService、UsbService等。
位于第四大类的是BatteryService、VibratorService等服务。
位于第五大类的是EntropyService、DiskStatsService、Watchdog等相对独立的服务。
位于第六大类的是蓝牙服务。
位于第七大类的是UI方面的服务,如状态栏服务、通知管理服务等。
以上这些服务就是Android Framework Java层的核心。毫不夸张地说,它们也是Android系统的基石。另外,这些服务的内容远非一本书所能囊括。作为Android Java层Framework分析的先头部队,本书涵盖了以下内容:
第1章,介绍了阅读本书需要做的一些准备工作,包括Android 4.0源码的下载和编译、Eclipse开发环境的搭建,以及Android系统进程(system_process)的调试等。
第2章,介绍了Java Binder和MessageQueue的实现。
第3章,介绍了SystemServer,并分析了图1中第五类包含的服务的工作原理。这些服务包括EntropyService、DropBoxManagerService、DiskStatsService、DeviceStorageMonitorService、SamplingProfilerService和ClipboardService。
第4章,分析了PackageManagerService,该服务负责Android系统中的Package信息查询和APK安装、卸载、更新等方面的工作。
第5章,讲解了PowerManagerService,它是Android中电源管理的核心服务。本章对其中的WakeLock、Power按键处理、BatteryStatsService和BatteryService都做了一番较为深入的分析。
第6章,以ActivityManagerService为分析重点,该服务是Android的核心服务。本章对ActivityManagerService的启动、Activity的创建和启动、BroadcastReceiver的工作原理、Android中的进程管理等内容进行了较为深入的研究。
第7章,对ContentProvider的创建和启动、SQLite相关知识、Cursor query和close的实现等进行了较为深入的分析。
第8章,以ContentService和AccountManagerService为分析对象,介绍了数据更新通知机制的实现、账户管理和数据同步等方面的知识。
图1中的其他服务将会在“深入理解Android”系列的其他书中详细分析。该系列书的规划请见本书最后面的“深入理解Android系列图书路线图”。
本书以直接剖析源码的方式进行讲解,旨在引领读者一步步深入于Android系统中相关模块的内部原理,去理解它们是如何实现、如何工作的。在分析过程中,笔者根据个人研究Android代码的心得,采用了精简流程和逐个击破的方法。同时,笔者还提出了一些难度不大的知识点、相关的补充阅读资料,甚至笔者在实际项目中遇到的开放式问题,留给读者自行研究和探讨。总之,笔者希望读者在阅读完本书后,至少能有以下两个收获:
能从“基于Android并高于Android”的角度来看待和分析Android。
能初步具有大型复杂代码的分析能力。
-
鼠标拖拽移动DIV
<template> <div> <div @mousedown="mousedown">tips</div> <div> <span>这里是内容</span> </div> </div> </templa... 884 0 25-04-07 -
Public Work - 一个公共领域内容的搜索引擎
Public Work 是一个公共领域内容的搜索引擎。探索来自大都会博物馆、纽约公共图书馆和其他来源的 100,000 多张无版权图片如果你正在寻... 1283 0 24-11-18 -
深入理解Java 7 ——核心技术与最佳实践
我最早开始接触Java语言是在大学的时候。当时除了用Java开发一些小程序之外,就是用Struts框架开发Web应用。在后来的实习和工作中,我对Jav... 1250 0 24-05-24 -
高考各科资料考点复习
120842695202 高考历史重要考点图解.pdf120842695302 高考地理读图解题攻略.pdf120842895402 高考数学选择题:九招快速解题法.pdf120842... 1297 0 24-08-08 -
前端微信支付jssdk接口
JAVA, Node,Python 部分代码只实现了签名算法,需要开发者传入jsapi_ticket 和url,其中jsapi ticket 需要通过 http://api.weixin.gq... 1839 0 24-05-24 -
NOVA Video Player 一款开源的安卓视频播放器
NOVA Video Player是一款开源的安卓视频播放器,也可以叫做“Nova视频播放器”,它可以让你在手机、平板、电视等设备上观看各种格式的视... 968 0 25-05-09 -
微信设置电子监护人,杜绝渣男
你可以将一位好友设为你的电子监护人,让他来管理你。所以我这里推荐广大女性同胞可以把自己的男友的微信设为被监护人,这样他... 1076 0 25-06-22 -
原理解析,JS 代码是如何被浏览器引擎编译、执行的?
本讲我先带你分析浏览器引擎对 JS 代码的编译情况,并结合你日常的 JavaScript 开发经验,一起重新理解底层的编译解析机制。对其底层原... 1001 0 24-05-24
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~