深入理解Android——卷II
笔者“深入理解Android”系列的第二本,这一本将关注重点放在了Android Framework的Java层。在众多可供分析的知识点中,笔者另辟蹊径,选择了SystemServer中的服务(Service)作为主人公。这些Service大体可由图1来表示。
图 1 SystemServer中的服务
由图1可知,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。
能初步具有大型复杂代码的分析能力。
-
Photoshop PSD名片模板
631 0 21-07-12 -
一天一篇小古文
1060 0 24-07-14 -
征服C指针
这是一本关于 C 语言的数组和指针的书。一定有很多人感到纳闷:“都哪朝哪代了,还出版 C 语言的书。”C 语言确实是非常陈旧的语言,... 1183 0 24-05-24 -
车辆事故和保险公司沟通的经验
1、出了事故不要害怕,立即拨打110报警,同时拨打保险公司电话,保险公司一定会用最快的时间赶过去处理,如果伤者的问题很严重一定要立即拨... 989 0 24-11-18 -
200款系统修复实用小工具
952 0 24-05-31 -
使用电脑一定要学会的20个小技巧
558 0 24-02-19 -
微信支付后端示例
小程序微信支付「后端商户系统」。配合 LeanCloud 小程序 SDK 快速实现小程序微信支付功能。部署配置环境变量开始之前,请确保已经按照... 936 0 24-09-18 -
程序员面试宝典
《程序员面试宝典》不同于同类书籍的主要特点如下。● 细中国软件企业比较小,面试涉及的方面比较多、比较基础,比如常会考到一些编程基础... 1008 0 24-05-24
发表我的评论
- 这篇文章还没有收到评论,赶紧来抢沙发吧~