深入剖析Android新特性

深入剖析Android新特性
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2018-05
版次: 1
ISBN: 9787121339332
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 444页
字数: 533千字
正文语种: 简体中文
11人买过
  • Android系统发布于2008年,到2018年已经有十年的时间。经过十年的发展,Android已经成为全球大操作系统。目前,Android拥有几十亿用户,几百万的应用程序,更有无数的开发者。在过去的十年里,Android一直没有停止更新的步伐,最近几年,Android以每年一个大版本的速度向前演进。并且,在一年内还会有若干的小版本发布。很自然,开发者需要不断地了解这些新增的功能和特性。 
    《深入剖析Android新特性》对最近几个版本(5.0~8.0)的主要新增功能进行了整理和解析,《深入剖析Android新特性》的重点不仅仅是讲解这些新增功能特性的外部行为,而是在结合AOSP的源码基础上,解析这些功能特性的内部实现。任何已有的功能都是固定的,随着行业的发展,Android系统在未来可能加入的功能是不确定的,只有掌握了阅读和分析AOSP源码的能力,才能应对不确定的变化,并具备今后能够自行研究Android系统的能力。 

    强波,江苏南京人,现居住在浙江杭州。就职于阿里巴巴集团-OS事业部-核心系统部门。在阿里,我的花名叫做”未悔“,花名取自《离骚》。多年智能操作系统开发经验,热爱钻研技术,也热爱分享技术。现在负责AliOS运行时环境的研究与开发,参与过手机、汽车、平板电脑、TV等多种智能设备的研发工作。个人博客:https://qiangbo.space。 第1章  预备知识  1 
    1.1  Android系统架构  1 
    1.2  关于AOSP  3 
    1.3  理解Android Binder机制  3 
    1.3.1  Binder机制简介  3 
    1.3.2  整体架构  4 
    1.3.3  驱动层  7 
    1.3.4  Binder Framework C++部分  26 
    1.3.5  Binder Framework Java部分  54 
    1.3.6  参考资料与推荐读物  70 
    第2章  Android系统中的进程管理  72 
    2.1  关于进程  72 
    2.2  系统进程与应用进程  73 
    2.2.1  init进程与init语言  75 
    2.2.2  Zygote进程  81 
    2.2.3  system_server进程  84 
    2.3  应用进程的创建  87 
    2.3.1  关于应用组件  87 
    2.3.2  进程与线程  88 
    2.3.3  ActivityManagerService  89 
    2.3.4  Activity与进程创建  92 
    2.3.5  Service与进程创建  94 
    2.3.6  ContentProvider与进程创建  96 
    2.3.7  BroadcastReceiver与进程创建  97 
    2.3.8  参考资料与推荐读物  99 
    2.4  进程的优先级管理  100 
    2.4.1  优先级的依据  100 
    2.4.2  优先级的基础  102 
    2.4.3  优先级的更新  105 
    2.4.4  优先级的算法  108 
    2.4.5  优先级的生效  119 
    2.4.6  结束语  119 
    2.4.7  参考资料与推荐读物  120 
    2.5  进程与内存的回收  120 
    2.5.1  开发者API  121 
    2.5.2  虚拟机的垃圾回收  122 
    2.5.3  开发者的内存回收  122 
    2.5.4  Linux OOM Killer  123 
    2.5.5  LowMemoryKiller  125 
    2.5.6  进程的死亡处理  126 
    2.5.7  参考资料与推荐读物  127 
    2.6  结束语  127 
    第3章  Android系统上的虚拟机  129 
    3.1  Java语言与Java虚拟机  130 
    3.1.1  Java语言  130 
    3.1.2  Java虚拟机  130 
    3.1.3  Java虚拟机实现架构  130 
    3.1.4  类加载器(Class loader)  132 
    3.1.5  垃圾回收  132 
    3.1.6  结束语  135 
    3.1.7  参考资料与推荐读物  135 
    3.2  Dalvik虚拟机  135 
    3.2.1  Stack-based VS. Register-based  136 
    3.2.2  Dalvik Executable(dex)文件  137 
    3.2.3  Dalvik指令  139 
    3.2.4  Dalvik启动过程  144 
    3.2.5  程序的执行:解释与编译  153 
    3.2.6  Dalvik上的垃圾回收  156 
    3.2.7  参考资料与推荐读物  159 
    3.3  Android Runtime(ART)  159 
    3.3.1  ART VS.Dalvik  159 
    3.3.2  OAT文件格式  162 
    3.3.3  boot.oat与boot.art  165 
    3.3.4  Dalvik到ART的切换  166 
    3.3.5  ART虚拟机的启动过程  169 
    3.3.6  内存分配  173 
    3.3.7  垃圾回收  178 
    3.3.8  JIT的回归  182 
    3.3.9  ART虚拟机的演进与配置  185 
    3.3.10  参考资料与推荐读物  186 
    第4章  用户界面改进  187 
    4.1  多窗口功能  187 
    4.1.1  概述  188 
    4.1.2  开发者相关  189 
    4.1.3  内部实现  191 
    4.1.4  参考资料与推荐读物  205 
    4.2  App Shortcuts  206 
    4.2.1  开发者API  206 
    4.2.2  内部实现  209 
    第5章  系统界面改进  215 
    5.1  SystemUI整体介绍  215 
    5.1.1  SystemUI简介  215 
    5.1.2  SystemUI的初始化  216 
    5.1.3  System Bar的初始化  221 
    5.1.4  参考资料与推荐读物  224 
    5.2  System Bar  224 
    5.3  Notification  234 
    5.3.1  开发者API  234 
    5.3.2  通知栏与通知窗口  240 
    5.3.3  Notification从发送到显示  243 
    5.4  Quick Settings  256 
    5.4.1  开发者API  256 
    5.4.2  系统实现  260 
    5.4.3  参考资料与推荐读物  265 
    第6章  功耗的改进  266 
    6.1  Project Volta  266 
    6.1.1  JobScheduler API  267 
    6.1.2  电量消耗分析工具  277 
    6.1.3  在虚拟机层面减少电池消耗  279 
    6.1.4  省电模式  280 
    6.1.5  结束语  281 
    6.1.6  参考资料与推荐读物  281 
    6.2  Doze模式与App StandBy  282 
    6.2.1  概述  282 
    6.2.2  了解Doze模式  282 
    6.2.3  了解App StandBy  284 
    6.2.4  对其他用例的支持  284 
    6.2.5  在Doze模式和App StandBy下进行测试  285 
    6.2.6  Doze模式的实现  287 
    6.2.7  App StandBy的实现  293 
    6.2.8  参考资料与推荐读物  297 
    6.3  Android 8.0上的后台限制  297 
    6.3.1  概览  298 
    6.3.2  后台服务限制  299 
    6.3.3  广播限制  300 
    6.3.4  系统实现  301 
    6.3.5  结束语  308 
    第7章  面向设备管理的改进  310 
    7.1  多用户的支持  310 
    7.1.1  术语  311 
    7.1.2  支持多用户  312 
    7.1.3  多用户的实现  313 
    7.1.4  参考资料与推荐读物  333 
    7.2  设备管理  334 
    7.2.1  Device Administration API介绍  334 
    7.2.2  开发设备管理程序  335 
    7.3  面向企业环境的Android  339 
    7.3.1  企业环境解决方案  340 
    7.3.2  受管理资料(Managed Profiles)  340 
    7.3.3  受管理资料的内部实现  342 
    7.3.4  参考资料与推荐读物  349 
    第8章  Android系统安全改进  350 
    8.1  Android系统安全概览  350 
    8.2  运行时权限  351 
    8.2.1  功能介绍  351 
    8.2.2  新增API  354 
    8.2.3  参考资料与推荐读物  370 
    第9章  图形系统改进  371 
    9.1  整体架构  371 
    9.1.1  Android图形组件  371 
    9.1.2  组件  373 
    9.1.3  Android如何绘制视图  374 
    9.1.4  关于硬件加速  376 
    9.1.5  参考资料与推荐读物  377 
    9.2  图形系统组件  377 
    9.2.1  Activity与Surface  377 
    9.2.2  Gralloc  379 
    9.2.3  BufferQueue  382 
    9.2.4  Surface  384 
    9.2.5  参考资料与推荐读物  388 
    9.3  Project Butter  388 
    9.3.1  FPS  389 
    9.3.2  VSYNC  391 
    9.3.3  Choreographer与VSYNC  392 
    9.3.4  Triple Buffer  398 
    9.3.5  参考资料与推荐读物  400 
    9.4  SurfaceFlinger  400 
    9.4.1  SurfaceFlinger 介绍  401 
    9.4.2  Hardware Composer  402 
    9.4.3  SurfaceFlinger的启动  403 
    9.4.4  SurfaceFlinger的对外接口  405 
    9.4.5  VSYNC的传递  407 
    9.4.6  SurfaceFlinger的事件  409 
    9.4.7  图层的合成  411 
    9.4.8  刷新  412 
    9.4.9  参考资料与推荐读物  413 
    9.5  Vulkan简介  414 
    9.5.1  Vulkan组件  414 
    9.5.2  修改的组件  415 
    9.5.3  Vulkan API  415 
    9.5.4  参考资料与推荐读物  415 
    第10章  系统架构改进  416 
    10.1  Project Treble整体介绍  417 
    10.2  HIDL  420 
    10.2.1  语法介绍  421 
    10.2.2  HIDL 与 Binder  422 
    10.3  ConfigStore HAL  423 
    10.3.1  概述  423 
    10.3.2  内部实现  424 
    10.4  Vendor Native Development Kit  426 
    10.5  Vendor Interface Object  427 
    10.5.1  概述  427 
    10.5.2  Manifest  429 
    10.5.3  内部实现  429
  • 内容简介:
    Android系统发布于2008年,到2018年已经有十年的时间。经过十年的发展,Android已经成为全球大操作系统。目前,Android拥有几十亿用户,几百万的应用程序,更有无数的开发者。在过去的十年里,Android一直没有停止更新的步伐,最近几年,Android以每年一个大版本的速度向前演进。并且,在一年内还会有若干的小版本发布。很自然,开发者需要不断地了解这些新增的功能和特性。 
    《深入剖析Android新特性》对最近几个版本(5.0~8.0)的主要新增功能进行了整理和解析,《深入剖析Android新特性》的重点不仅仅是讲解这些新增功能特性的外部行为,而是在结合AOSP的源码基础上,解析这些功能特性的内部实现。任何已有的功能都是固定的,随着行业的发展,Android系统在未来可能加入的功能是不确定的,只有掌握了阅读和分析AOSP源码的能力,才能应对不确定的变化,并具备今后能够自行研究Android系统的能力。 

  • 作者简介:
    强波,江苏南京人,现居住在浙江杭州。就职于阿里巴巴集团-OS事业部-核心系统部门。在阿里,我的花名叫做”未悔“,花名取自《离骚》。多年智能操作系统开发经验,热爱钻研技术,也热爱分享技术。现在负责AliOS运行时环境的研究与开发,参与过手机、汽车、平板电脑、TV等多种智能设备的研发工作。个人博客:https://qiangbo.space。
  • 目录:
    第1章  预备知识  1 
    1.1  Android系统架构  1 
    1.2  关于AOSP  3 
    1.3  理解Android Binder机制  3 
    1.3.1  Binder机制简介  3 
    1.3.2  整体架构  4 
    1.3.3  驱动层  7 
    1.3.4  Binder Framework C++部分  26 
    1.3.5  Binder Framework Java部分  54 
    1.3.6  参考资料与推荐读物  70 
    第2章  Android系统中的进程管理  72 
    2.1  关于进程  72 
    2.2  系统进程与应用进程  73 
    2.2.1  init进程与init语言  75 
    2.2.2  Zygote进程  81 
    2.2.3  system_server进程  84 
    2.3  应用进程的创建  87 
    2.3.1  关于应用组件  87 
    2.3.2  进程与线程  88 
    2.3.3  ActivityManagerService  89 
    2.3.4  Activity与进程创建  92 
    2.3.5  Service与进程创建  94 
    2.3.6  ContentProvider与进程创建  96 
    2.3.7  BroadcastReceiver与进程创建  97 
    2.3.8  参考资料与推荐读物  99 
    2.4  进程的优先级管理  100 
    2.4.1  优先级的依据  100 
    2.4.2  优先级的基础  102 
    2.4.3  优先级的更新  105 
    2.4.4  优先级的算法  108 
    2.4.5  优先级的生效  119 
    2.4.6  结束语  119 
    2.4.7  参考资料与推荐读物  120 
    2.5  进程与内存的回收  120 
    2.5.1  开发者API  121 
    2.5.2  虚拟机的垃圾回收  122 
    2.5.3  开发者的内存回收  122 
    2.5.4  Linux OOM Killer  123 
    2.5.5  LowMemoryKiller  125 
    2.5.6  进程的死亡处理  126 
    2.5.7  参考资料与推荐读物  127 
    2.6  结束语  127 
    第3章  Android系统上的虚拟机  129 
    3.1  Java语言与Java虚拟机  130 
    3.1.1  Java语言  130 
    3.1.2  Java虚拟机  130 
    3.1.3  Java虚拟机实现架构  130 
    3.1.4  类加载器(Class loader)  132 
    3.1.5  垃圾回收  132 
    3.1.6  结束语  135 
    3.1.7  参考资料与推荐读物  135 
    3.2  Dalvik虚拟机  135 
    3.2.1  Stack-based VS. Register-based  136 
    3.2.2  Dalvik Executable(dex)文件  137 
    3.2.3  Dalvik指令  139 
    3.2.4  Dalvik启动过程  144 
    3.2.5  程序的执行:解释与编译  153 
    3.2.6  Dalvik上的垃圾回收  156 
    3.2.7  参考资料与推荐读物  159 
    3.3  Android Runtime(ART)  159 
    3.3.1  ART VS.Dalvik  159 
    3.3.2  OAT文件格式  162 
    3.3.3  boot.oat与boot.art  165 
    3.3.4  Dalvik到ART的切换  166 
    3.3.5  ART虚拟机的启动过程  169 
    3.3.6  内存分配  173 
    3.3.7  垃圾回收  178 
    3.3.8  JIT的回归  182 
    3.3.9  ART虚拟机的演进与配置  185 
    3.3.10  参考资料与推荐读物  186 
    第4章  用户界面改进  187 
    4.1  多窗口功能  187 
    4.1.1  概述  188 
    4.1.2  开发者相关  189 
    4.1.3  内部实现  191 
    4.1.4  参考资料与推荐读物  205 
    4.2  App Shortcuts  206 
    4.2.1  开发者API  206 
    4.2.2  内部实现  209 
    第5章  系统界面改进  215 
    5.1  SystemUI整体介绍  215 
    5.1.1  SystemUI简介  215 
    5.1.2  SystemUI的初始化  216 
    5.1.3  System Bar的初始化  221 
    5.1.4  参考资料与推荐读物  224 
    5.2  System Bar  224 
    5.3  Notification  234 
    5.3.1  开发者API  234 
    5.3.2  通知栏与通知窗口  240 
    5.3.3  Notification从发送到显示  243 
    5.4  Quick Settings  256 
    5.4.1  开发者API  256 
    5.4.2  系统实现  260 
    5.4.3  参考资料与推荐读物  265 
    第6章  功耗的改进  266 
    6.1  Project Volta  266 
    6.1.1  JobScheduler API  267 
    6.1.2  电量消耗分析工具  277 
    6.1.3  在虚拟机层面减少电池消耗  279 
    6.1.4  省电模式  280 
    6.1.5  结束语  281 
    6.1.6  参考资料与推荐读物  281 
    6.2  Doze模式与App StandBy  282 
    6.2.1  概述  282 
    6.2.2  了解Doze模式  282 
    6.2.3  了解App StandBy  284 
    6.2.4  对其他用例的支持  284 
    6.2.5  在Doze模式和App StandBy下进行测试  285 
    6.2.6  Doze模式的实现  287 
    6.2.7  App StandBy的实现  293 
    6.2.8  参考资料与推荐读物  297 
    6.3  Android 8.0上的后台限制  297 
    6.3.1  概览  298 
    6.3.2  后台服务限制  299 
    6.3.3  广播限制  300 
    6.3.4  系统实现  301 
    6.3.5  结束语  308 
    第7章  面向设备管理的改进  310 
    7.1  多用户的支持  310 
    7.1.1  术语  311 
    7.1.2  支持多用户  312 
    7.1.3  多用户的实现  313 
    7.1.4  参考资料与推荐读物  333 
    7.2  设备管理  334 
    7.2.1  Device Administration API介绍  334 
    7.2.2  开发设备管理程序  335 
    7.3  面向企业环境的Android  339 
    7.3.1  企业环境解决方案  340 
    7.3.2  受管理资料(Managed Profiles)  340 
    7.3.3  受管理资料的内部实现  342 
    7.3.4  参考资料与推荐读物  349 
    第8章  Android系统安全改进  350 
    8.1  Android系统安全概览  350 
    8.2  运行时权限  351 
    8.2.1  功能介绍  351 
    8.2.2  新增API  354 
    8.2.3  参考资料与推荐读物  370 
    第9章  图形系统改进  371 
    9.1  整体架构  371 
    9.1.1  Android图形组件  371 
    9.1.2  组件  373 
    9.1.3  Android如何绘制视图  374 
    9.1.4  关于硬件加速  376 
    9.1.5  参考资料与推荐读物  377 
    9.2  图形系统组件  377 
    9.2.1  Activity与Surface  377 
    9.2.2  Gralloc  379 
    9.2.3  BufferQueue  382 
    9.2.4  Surface  384 
    9.2.5  参考资料与推荐读物  388 
    9.3  Project Butter  388 
    9.3.1  FPS  389 
    9.3.2  VSYNC  391 
    9.3.3  Choreographer与VSYNC  392 
    9.3.4  Triple Buffer  398 
    9.3.5  参考资料与推荐读物  400 
    9.4  SurfaceFlinger  400 
    9.4.1  SurfaceFlinger 介绍  401 
    9.4.2  Hardware Composer  402 
    9.4.3  SurfaceFlinger的启动  403 
    9.4.4  SurfaceFlinger的对外接口  405 
    9.4.5  VSYNC的传递  407 
    9.4.6  SurfaceFlinger的事件  409 
    9.4.7  图层的合成  411 
    9.4.8  刷新  412 
    9.4.9  参考资料与推荐读物  413 
    9.5  Vulkan简介  414 
    9.5.1  Vulkan组件  414 
    9.5.2  修改的组件  415 
    9.5.3  Vulkan API  415 
    9.5.4  参考资料与推荐读物  415 
    第10章  系统架构改进  416 
    10.1  Project Treble整体介绍  417 
    10.2  HIDL  420 
    10.2.1  语法介绍  421 
    10.2.2  HIDL 与 Binder  422 
    10.3  ConfigStore HAL  423 
    10.3.1  概述  423 
    10.3.2  内部实现  424 
    10.4  Vendor Native Development Kit  426 
    10.5  Vendor Interface Object  427 
    10.5.1  概述  427 
    10.5.2  Manifest  429 
    10.5.3  内部实现  429
查看详情
相关图书 / 更多
深入剖析Android新特性
深入理解移动互联网
吴功宜 吴英 编著
深入剖析Android新特性
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入剖析Android新特性
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入剖析Android新特性
深入浅出C#(视频教学版)
赵云
深入剖析Android新特性
深入实践Kotlin元编程
霍丙乾 著
深入剖析Android新特性
深入北方的小路(布克奖震撼杰作。人生在世,行走于地狱屋顶,凝望花朵。余华力荐“了不起的小说”!)
[澳]理查德·弗兰纳根 著;新经典 出品
深入剖析Android新特性
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入剖析Android新特性
深入浅出IoT:完整项目通关实战
[英]吉姆·贝内特(Jim Bennett) 著;柴火创客空间 译;[美]珍·福克斯(Jen Fox);[美]珍·卢珀(Jen Looper)
深入剖析Android新特性
深入浅出SSD:固态存储核心技术、原理与实战 第2版
SSDFans 胡波 石亮 岑彪
深入剖析Android新特性
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入剖析Android新特性
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
深入剖析Android新特性
深入人心:数字产品设计的底层逻辑
林婕