搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
Android的设计与实现.卷Ⅰ.VolumeⅠ
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787111417132
  • 作      者:
    杨云君著
  • 出 版 社 :
    机械工业出版社
  • 出版日期:
    2013
收藏
编辑推荐

  ·从源代码角度,系统、深入、透彻剖析Android系统框架层(Framework)的设计思想和实现原理,为Android应用工程师和系统工程师解决各种难题提供了原理性的指导!  ·资深Android内核专家亲自执笔,Lordhong等数位资深专家和安卓巴士等专业社区联袂推荐!

  

海报:

展开
作者简介

  杨云君,资深Android系统专家,不仅在Android应用开发方面积累了丰富的经验,而且精通Android系统级开发和性能优化,对整个Android系统的架构设计与实现原理有十分深入的研究和透彻的认识。就职于国际领先的跨国移动通信公司,作为主任工程师专门从事Android手机的定制和开发,研究Android系统是他的主要工作之一,曾负责了多个手机品牌的多款机型的系统开发和升级工作,经验十分丰富。

展开
内容介绍
  《Android的设计与实现(卷1)》是Android应用开发工程师和Android系统工程师进阶修炼的必读之作。它由资深Android内核专家亲自执笔,从源代码角度,系统、深入、透彻剖析Android系统框架层(Framework)的设计思想和实现原理,为Android应用工程师和系统工程师解决实际工作中的各种难题提供了原理性的指导。为了降低读者的阅读成本,本书使用了大量简单的UML类图和序列图来展示类的层次结构和方法的调用流程,使读者能迅速读完本书并领会其精髓!
  “Android的设计与实现”系列丛书主要围绕Android系统的四层结构展开,通过源代码来分析各层的设计思想与实现原理,卷I则主要是针对Framework(框架层)的。全书共12章,分为六个部分:基础篇(第1~2章)详细讲解了Android的体系结构、源代码阅读和调试环境的搭建,以及整个框架的基础;启动篇(第3~4章)深入分析了Android启动过程的机制和实现原理,能帮助读者全面理解框架层系统服务的运行基础;Binder篇(第5~6章)着重分析了Binder在Native框架层和Java框架层的机制和实现,能让读者深入理解进程间的通信模型;消息通信篇(第7章)重点分析了Android的消息驱动和异步处理机制,能让读者深入理解线程间的通信模型;Package Manager篇(第8~9章)主要讲解了Package Manager的机制与实现,以及APK的安装方法与过程;Activity Manager篇(第10~12章)深入阐述了ActivityManagerService的运行机制、应用程序和进程的启动流程,以及进程管理机制。
  本书适合中高级的Android应用开发工程师、Android系统开发工程师、Android系统架构师,以及负责对Android系统进行调试和优化的工程师们阅读。
展开
精彩书评
  Android快速发展了五年多,势头依然强劲。为了开发更强大的APP,众多开发者迫切需要更深入了解Android框架的机制。云君这本书真可谓雪中送炭,揽卷读之,欲罢不能!
  —— Lordhong 资深移动开发工程师(目前在美国硅谷山景城)

  本书立足于对Android框架层技术的深入理解,融合了项目开发中积累的丰富实战经验,深入浅出,理解其“道”,习练其“术”,既可读其入门,亦可研习精深。
  —— 张帅 中科院计算所

  本书通过分析源代码系统地剖析了Android框架层的核心技术,无论是Android开发的初学者,还是资深的程序员,都可以通过此书从一个全新的视角认识Android系统,并从中得到启发。
  —— 严林 中科院计算所

  Android是当前移动开发领域的热点,云君这本书对Android系统框架层的设计思想和实现原理做了深入的分析和探讨,是Android开发工程师进阶修炼不可多得的参考资料。
  —— 高剑林 腾讯

  感谢云君写的这本书, 对于我这样一直研究Linux内核的人来说,真的能从Android系统的设计与实现中有所领悟。书中对Android框架层的剖析条理清晰,系统透彻,体现了云君的功力深厚,更体现了其确实在用心总结。
  —— 孙子荀 腾讯

  有幸被邀请阅读本书初稿,本书作者对Android的通透理解令人震撼。国内解读Android系统原理的图书众多,本书却在深层次上独辟蹊径,实在难得。
  —— 张洪 阿里巴巴
展开
精彩书摘
  第一部分
  基础篇
  第1章 Android体系结构及源代码阅读环境搭建
  第2章 框架基础JNI
  第1章 Android体系结构及源代码
  阅读环境搭建
  Android是Google于2007年11月5日发布的基于Linux内核的开源移动设备软件平台,该平台由操作系统、虚拟机、运行库、框架、应用软件以及开发工具组成。
  1.1 Android发展过程
  Android自 Android 1.5开始,以甜点作为平台版本代号,并且各代号首字母以C D E F G H I J顺序排列。Android自发布以来,经过数个版本的更新和完善,已成为最大的智能手机平台之一。Android的发展过程如表1-1所示。
  ……
展开
目录
前言
第一部分 基础篇
第1章 Android体系结构及源代码阅读环境搭建
1.1 Android发展过程
1.2 Android体系结构
1.2.1 静态视角的体系结构
1.2.2 动态视角的体系结构
1.3 Android源码下载和编译
1.3.1 搭建开发环境
1.3.2 下载Android上层系统源代码
1.3.3 下载指定模块源码
1.3.4 下载 Android Linux Kernel源码
1.3.5 编译Android上层系统源码
1.3.6 编译指定模块源码
1.4 Android源码结构
1.5 Android源码开发工具的配置和使用
1.5.1 配置Android SDK
1.5.2 用Eclipse开发和调试源代码
1.5.3 用Source Insight阅读源代码
1.6 NDK开发环境配置
1.7 本章小结
第2章 框架基础JNI
2.1 JNI在Android系统中所处的位置
2.2 JNI框架层实例分析
2.2.1 Log系统Java层分析
2.2.2 Log系统的JNI层
2.2.3 Log系统的JNI方法注册
2.3 JNI总管:JNIEnv
2.4 在Java中调用JNI实现方法
2.4.1 Java数据类型与JNI数据类型转换
2.4.2 JNI方法命名规则
2.4.3 JNI方法签名规则
2.5 JNI操作Java对象
2.5.1 访问Java对象
2.5.2 操作成员变量(域)和方法
2.5.3 全局引用、弱全局引用和局部引用
2.6 JNI异常处理
2.7 JNI应用层实例分析
2.7.1 Java层分析
2.7.2 JNI层代码和异常处理
2.8 本章小结
第二部分 启动篇
第3章 Android启动过程的底层实现
3.1 Android正常模式启动流程
3.2 Kernel启动过程
3.2.1 内核引导阶段
3.2.2 内核启动阶段
3.3 init进程的执行过程
3.4 init.rc文件解析过程
3.4.1 Android初始化语言
3.4.2 init.rc的内容
3.4.3 解析配置文件
3.4.4 解析Service
3.4.5 解析Action
3.5 触发并启动Action和Service
3.5.1 触发Action
3.5.2 执行Action
3.5.3 启动Service
3.5.4 init对属性服务的处理
3.6 init循环监听处理事件
3.7 本章小结
第4章 Android 启动过程的上层实现
4.1 第一个Dalvik虚拟机zygote
4.1.1 zygote的配置
4.1.2 如何执行zygote服务程序
4.2 ZygoteInit的启动过程
4.2.1 创建Dalvik虚拟机
4.2.2 注册JNI方法
4.2.3 开启Java世界
4.3 ZygoteInit开启Java世界的五部分工作
4.3.1 注册zygote的Socket
4.3.2 预加载Class资源和Resource资源
4.3.3 启动system_server进程
4.3.4 执行MethodAndArgsCalle的run方法
4.3.5 执行runSelectLoopMode方法
4.4 zygote处理Home启动请求
4.5 本章小结
第三部分 Binder篇
第5章  Binder在Native框架层的实现
5.1 Binder与C/S体系结构概述
5.2 servicemanager进程的启动过程
5.2.1 初始化Binder通信环境
5.2.2 注册上下文管理者
5.2.3 等待接收并处理IPC通信请求
5.3 Server的启动和Service的注册过程
5.3.1 创建ProcessState对象
5.3.2 获取servicemanager的代理对象
5.3.3 注册Service
5.3.4 Server进程开启线程池
5.4 Client端使用服务代理对象
5.5 服务代理与服务通信
5.6 本章小结
第6章 Binder在Java框架层的实现
6.1 Java系统服务的创建过程
6.1.1 创建JavaBBinderHolder对象
6.1.2 JavaBBinder的作用
6.1.3 gBinderOffsets结构体解析
6.2 Java系统服务的注册过程
6.2.1 调用BinderInternal.getContextObject方法
6.2.2 调用ServiceManagerNative.asInterface方法
6.2.3 调用ServiceManagerProxy.addService方法注册服务
6.3 Client端获取服务代理
6.3.1 获取服务的BinderProxy
6.3.2 构造服务的Proxy对象
6.3.3构造服务管理者对象
6.4Client端调用Java系统服务的方法
6.5统一的通信接口AIDL
6.5.1AIDL实例
6.5.2AIDL语法
6.5.3处理自定义数据类型的传递
6.6本章小结
第四部分 消息通信篇
第7章线程消息通信与异步处理
7.1什么是Looper线程
7.2第一步:Looper线程准备阶段
7.2.1创建Java层的Looper对象
7.2.2创建Java层的MessageQueue-对象
7.2.3创建Native层的NativeMessageQueue和Looper对象
7.2.4NativeMessageQueue关联到MessageQueue
7.3第二步:创建消息处理器并发送消息
7.3.1Handler的创建和初始化
7.3.2Message的创建和初始化
7.3.3消息的发送过程
7.4第三步:Looper线程循环阶段
7.4.1记录并获取当前线程身份信息
7.4.2循环监听消息
7.4.3分发消息到处理器
7.4.4回收消息并更新消息池
7.5异步任务类AsyncTask
7.5.1AsyncTask的实现
7.5.2AsyncTask的执行
7.6本章小结
第五部分 Package Manager篇
第8章Package Manager 的机制与实现
8.1  Package Manager体系结构
8.1.1三层体系结构
8.1.2三层之间的关系
8.2PackageManagerService的启动过程
8.2.1创建并初始化Settings对象
8.2.2获取系统默认配置
8.2.3启动PackageHandler
8.2.4创建data目录并初始化UserManager
8.2.5解析系统permission和feature信息
8.2.6解析packages文件
8.2.7dexopt优化判定
8.2.8启动FileObserver监控APK文件的目录
8.2.9调用scanDirLI方法扫描并安装APK包
8.2.10更新packages文件
8.3 PackageManagerService启动过程使用的核心组件
8.3.1Java层的Installer
8.3.2Installd中的命令
8.4本章小结
第9章 APK的安装过程
9.1 通过scanDirLI方法安装APK
9.1.1 创建PackageParser
9.1.2 解析AndroidManifest.xml文件
9.1.3 过滤PackageParser.Package类型的pkg对象
9.1.4 解析和安装pkg
9.2 使用adb命令安装应用程序
9.2.1 通过消息机制安装指定的APK
9.2.2 调用handleStartCopy方法处理安装操作
9.2.3 调用handleReturnCode方法处理返回结果
9.3  本章小结
第六部分 Activity Manager篇
第10章 Activity Manager的机制与实现
10.1 Activity Manager概述
10.2 ActivityManagerService在系统启动阶段的主要工作
10.3 第一阶段:启动ActivityManagerService
10.3.1 启动AThread线程
10.3.2 创建ActivityThread对象
10.3.3 创建ActivityStack类
10.3.4 调用startRunning方法
10.4 第二阶段:调用setSystemProcess方法
10.4.1 查询并处理
   ApplicationInfo
10.4.2 创建并初始化ProcessRecord
10.5 第三阶段:调用install-SystemProviders方法
10.5.1 查询Content Provider
10.5.2 安装Content Provider
10.6 第四阶段:调用systemReady方法
10.6.1 发送ACTION_PRE_BOOT_COMPLETED广播
10.6.2 清理预启动的非persistent进程
10.6.3 读取Settings配置
10.6.4 运行Runnable回调接口
10.6.5 启动persistent应用程序和Home
10.7 本章小结
第11章 应用程序Activity的启动和调度
11.1 启动应用程序Activity时在Client端的执行流程
11.2 启动应用程序Activity时在Server端的执行流程
11.2.1 预启动
11.2.2 暂停
11.2.3 启动应用程序进程
11.2.4 加载应用程序Activity
11.2.5 显示Activity
11.2.6 Activity Idle状态的处理过程
11.2.7 停止源Activity
11.3 本章小结
第12章 Activity Manager进程 管理
12.1 LRU weight机制
12.2 OOM adj机制
12.2.1 更新OOM adj值
12.2.2 OOM adj的计算过程
12.3 Low Memory Killer机制
12.3.1 OOM adj等级和最小内存阈值
12.3.2 LM Killer机制的实现
12.4 本章小结
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证