深入理解Android内核设计思想 第2版(上下册)

深入理解Android内核设计思想 第2版(上下册)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2017-07
版次: 2
ISBN: 9787115452634
定价: 158.00
装帧: 平装
开本: 16开
纸张: 胶版纸
210人买过
  •   全书从操作系统的基础知识入手,全面剖析进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统、虚拟机等核心技术在Android中的实现原理。书中讲述的知识点大部分来源于工程项目研发,因而具有较强的实用性,希望可以让读者“知其然,更知其所以然”。本书分为编译篇、系统原理篇、应用原理篇、系统工具篇,共4篇25章,基本涵盖了参与Android开发所需具备的知识,并通过大量图片与实例来引导读者学习,以求尽量在源码分析外为读者提供更易于理解的思维方式。
      本书既适合Android系统工程师,也适合于应用开发工程师来阅读,从而提升Android开发能力。读者可以在本书潜移默化的学习过程中更深刻地理解Android系统,并将所学知识自然地应用到实际开发难题的解决中。
    林学森,曾于多家跨国企业担任研发和管理工作,并已在国内外会议、杂志上发表多篇文章,获得多个发明专利。现为某世界500强科技公司高级专家、资深架构师。 第1篇Android编译篇

    第1章Android系统简介2

    1.1Android系统发展历程2

    1.2Android系统特点4

    1.3Android系统框架8

    第2章Android源码下载及编译11

    2.1Android源码下载指南11

    2.1.1基于Repo和Git的版本管理11

    2.1.2Android源码下载流程12

    2.2原生Android系统编译指南16

    2.2.1建立编译环境16

    2.2.2编译流程19

    2.3定制产品的编译与烧录22

    2.3.1定制新产品22

    2.3.2Linux内核编译26

    2.3.3烧录/升级系统27

    2.4AndroidMultilibBuild28

    2.5Android系统映像文件31

    2.5.1boot.img32

    2.5.2ramdisk.img34

    2.5.3system.img35

    2.5.4VerifiedBoot35

    2.6ODEX流程37

    2.7OTA系统升级39

    2.7.1生成升级包39

    2.7.2获取升级包40

    2.7.3OTA升级—Recovery模式41

    2.8Android反编译44

    2.9NDKBuild46

    2.10第三方ROM的移植48

    第3章Android编译系统50

    3.1Makefile入门50

    3.2Android编译系统52

    3.2.1Makefile依赖树的概念53

    3.2.2Android编译系统抽象模型53

    3.2.3树根节点droid54

    3.2.4main.mk解析55

    3.2.5droidcore节点59

    3.2.6dist_files61

    3.2.7Android.mk的编写规则61

    3.3JackToolchain64

    3.4SDK的编译过程68

    3.4.1envsetup.sh68

    3.4.2lunchsdk-eng70

    3.4.3makesdk75

    3.5Android系统GDB调试85

    第2篇Android原理篇

    第4章操作系统基础90

    4.1计算机体系结构(ComputerArchitecture)90

    4.1.1冯?诺依曼结构90

    4.1.2哈佛结构90

    4.2什么是操作系统91

    4.3进程间通信的经典实现93

    4.3.1共享内存(SharedMemory)94

    4.3.2管道(Pipe)95

    4.3.3UNIXDomainSocket97

    4.3.4RPC(RemoteProcedureCalls)99

    4.4同步机制的经典实现100

    4.4.1信号量(Semaphore)100

    4.4.2Mutex101

    4.4.3管程(Monitor)101

    4.4.4LinuxFutex102

    4.4.5同步范例103

    4.5Android中的同步机制104

    4.5.1进程间同步——Mutex104

    4.5.2条件判断——Condition105

    4.5.3“栅栏、障碍”——Barrier107

    4.5.4加解锁的自动化操作——Autolock108

    4.5.5读写锁——ReaderWriterMutex109

    4.6操作系统内存管理基础110

    4.6.1虚拟内存(VirtualMemory)110

    4.6.2内存保护(MemoryProtection)113

    4.6.3内存分配与回收113

    4.6.4进程间通信——mmap114

    4.6.5写时拷贝技术(CopyonWrite)115

    4.7Android中的LowMemoryKiller115

    4.8Android匿名共享内存(AnonymousSharedMemory)118

    4.8.1Ashmem设备118

    4.8.2Ashmem应用实例122

    4.9JNI127

    4.9.1Java函数的本地实现127

    4.9.2本地代码访问JVM130

    4.10Java中的反射机制132

    4.11学习Android系统的两条线索133

    第5章Android进程/线程和程序内存优化134

    5.1Android进程和线程134

    5.2Handler,MessageQueue,Runnable与Looper140

    5.3UI主线程——ActivityThread147

    5.4Thread类150

    5.4.1Thread类的内部原理150

    5.4.2Thread休眠和唤醒151

    5.4.3Thread实例155

    5.5Android应用程序如何利用CPU的多核处理能力157

    5.6Android应用程序的典型启动流程157

    5.7Android程序的内存管理与优化159

    5.7.1Android系统对内存使用的限制159

    5.7.2Android中的内存泄露与内存监测160

    第6章进程间通信—Binder166

    6.1智能指针169

    6.1.1智能指针的设计理念169

    6.1.2强指针sp172

    6.1.3弱指针wp173

    6.2进程间的数据传递载体——Parcel179

    6.3Binder驱动与协议187

    6.3.1打开Binder驱动——binder_open188

    6.3.2binder_mmap189

    6.3.3binder_ioctl192

    6.4“DNS”服务器——ServiceManager(BinderServer)193

    6.4.1ServiceManager的启动193

    6.4.2ServiceManager的构建194

    6.4.3获取ServiceManager服务—设计思考199

    6.4.4ServiceManagerProxy203

    6.4.5IBinder和BpBinder205

    6.4.6ProcessState和IPCThreadState207

    6.5Binder客户端——BinderClient237

    6.6Android接口描述语言——AIDL242

    6.7匿名BinderServer254

    第7章Android启动过程257

    7.1第一个系统进程(init)257

    7.1.1init.rc语法257

    7.1.2init.rc实例分析260

    7.2系统关键服务的启动简析261

    7.2.1Android的“DNS服务器”——ServiceManager261

    7.2.2“孕育”新的线程和进程——Zygote261

    7.2.3Android的“系统服务”——SystemServer274

    7.2.4Vold和ExternalStorage存储设备276

    7.3多用户管理282

    第8章管理Activity和组件运行状态的系统进程——ActivityManagerService(AMS)284

    8.1AMS功能概述284

    8.2管理当前系统中Activity状态——ActivityStack286

    8.3startActivity流程288

    8.4完成同一任务的“集合”——ActivityTask296

    8.4.1“后进先出”——LastIn,FirstOut297

    8.4.2管理ActivityTask298

    8.5Instrumentation机制300

    第9章GUI系统—SurfaceFlinger305

    9.1OpenGLES与EGL305

    9.2Android的硬件接口——HAL307

    9.3Android终端显示设备的“化身”——Gralloc与Framebuffer309

    9.4Android中的本地窗口313

    9.4.1FramebufferNativeWindow315

    9.4.2应用程序端的本地窗口——Surface321

    9.5BufferQueue详解325

    9.5.1BufferQueue的内部原理325

    9.5.2BufferQueue中的缓冲区分配328

    9.5.3应用程序的典型绘图流程333

    9.5.4应用程序与BufferQueue的关系339

    9.6SurfaceFlinger343

    9.6.1“黄油计划”——ProjectButter343

    9.6.2SurfaceFlinger的启动347

    9.6.3接口的服务端——Client351

    9.7VSync的产生和处理355

    9.7.1VSync信号的产生和分发355

    9.7.2VSync信号的处理361

    9.7.3handleMessageTransaction363

    9.7.4“界面已经过时/无效,需要重新绘制”——handleMessageInvalidate367

    9.7.5合成前的准备工作——preComposition369

    9.7.6可见区域——rebuildLayerStacks371

    9.7.7为“Composition”搭建环境——setUpHWComposer375

    9.7.8doDebugFlashRegions377

    9.7.9doComposition377

    第10章GUI系统之“窗口管理员”—WMS385

    10.1“窗口管理员”——WMS综述386

    10.1.1WMS的启动388

    10.1.2WMS的基础功能388

    10.1.3WMS的工作方式389

    10.1.4WMS,AMS与Activity间的联系390

    10.2窗口属性392

    10.2.1窗口类型与层级392

    10.2.2窗口策略(WindowPolicy)396

    10.2.3窗口属性(LayoutParams)398

    10.3窗口的添加过程400

    10.3.1系统窗口的添加过程400

    10.3.2Activity窗口的添加过程409

    10.3.3窗口添加实例412

    10.4Surface管理416

    10.4.1Surface申请流程(relayout)416

    10.4.2Surface的跨进程传递420

    10.4.3Surface的业务操作422

    10.5performLayoutAndPlaceSurfacesLockedInner423

    10.6窗口大小的计算过程424

    10.7启动窗口的添加与销毁433

    10.7.1启动窗口的添加433

    10.7.2启动窗口的销毁437

    10.8窗口动画438

    10.8.1窗口动画类型439

    10.8.2动画流程跟踪——WindowStateAnimator440

    10.8.3AppWindowAnimator444

    10.8.4动画的执行过程446

    第11章让你的界面炫彩起来的GUI系统—View体系452

    第12章“问渠哪得清如许,为有源头活水来”—InputManagerService与输入事件514

    12.1事件的分类514

    12.2事件的投递流程517

    12.2.1InputManagerService518

    12.2.2InputReaderThread519

    12.2.3InputDispatcherThread519

    12.2.4ViewRootImpl对事件的派发523

    12.3事件注入524

    第13章应用不再同质化—音频系统526

    13.1音频基础527

    13.2音频框架532

    13.3音频系统的核心——Audio-Flinger538

    13.4策略的制定者——Audio-PolicyService553

    13.5音频流的回放——AudioTrack560

    13.6音频数据流572

    13.7音量控制584

    13.8音频系统的上层建筑588

    13.9Android支持的媒体格式600

    13.10ID3信息简述602

    13.11Android多媒体文件管理606

    第3篇应用原理篇

    第14章Intent的匹配规则616

    第15章APK应用程序的资源适配628

    第16章Android字符编码格式650

    第17章Android和OpenGLES660

    第18章“系统的UI”——SystemUI685

    第19章Android常用的工具

    第20章Android应用程序的编译和打包707

    第21章Android虚拟机725

    21.1Android虚拟机基础知识725

    21.1.1Java虚拟机核心概念725

    21.1.2LLVM编译器框架734

    21.1.3Android中的经典垃圾回收算法736

    21.1.4Art和Dalvik之争738

    21.1.5Art虚拟机整体框架741

    21.1.6Android应用程序与虚拟机742

    21.1.7ProcedureCallStandardforArmArchitecture(过程调用标准)744

    21.1.8C++11标准中的新特性746

    21.2Android虚拟机核心文件格式—Dex字节码749

    21.3Android虚拟机核心文件格式—可执行文件的基石ELF756

    21.3.1ELF文件格式756

    21.3.2Linux平台下ELF文件的加载和动态链接过程764

    21.3.3AndroidLinker和动态链接库771

    21.3.4SignalHandler和FaultManager782

    21.4Android虚拟机核心文件格式——“主宰者”OAT786

    21.4.1OAT文件格式解析786

    21.4.2OAT的两个编译时机793

    21.5Android虚拟机的典型启动流程806

    21.6堆管理器和堆空间释义815

    21.7Android虚拟机中的线程管理823

    21.7.1Java线程的创建过程823

    21.7.2线程的挂起过程827

    21.8Art虚拟机中的代码执行方式综述829

    21.9Art虚拟机的“中枢系统”——执行引擎之Interpreter836

    21.10Art虚拟机的“中枢系统”——执行引擎之JIT839

    21.10.1JIT重出江湖的契机839

    21.10.2AndroidN版本中JIT的设计目标及策略840

    21.10.3ProfileGuidedCompilation(追踪技术)842

    21.10.4AOTCompilationDaemon843

    21.11Art虚拟机的“中枢系统”——执行引擎之本地代码844

    21.12Androidx86版本兼容ARM二进制代码——NativeBridge864

    21.13Android应用程序调试原理解析871

    21.13.1Java代码调试与JDWP协议872

    21.13.2Native代码调试879

    21.13.3利用GDB调试AndroidArt虚拟机885

    第22章Android安全机制透析887

    22.1AndroidSecurity综述887

    22.2SELinux889

    22.2.1DAC889

    22.2.2MAC890

    22.2.3基于MAC的SELinux890

    22.3Android系统安全保护的三重利剑892

    22.3.1第一剑:Permission机制893

    22.3.2加强剑:DAC(UGO)保护896

    22.3.3终极剑:SEAndroid898

    22.4SEAndroid剖析899

    22.4.1SEAndroid的顶层模型899

    22.4.2SEAndroid相关的核心源码900

    22.4.3SEAndroid标签和规则901

    22.4.4如何在Android系统中自定义SEAndroid903

    22.4.5TE文件的语法规则905

    22.4.6SEAndroid中的核心主体—init进程907

    22.4.7SEAndroid中的客体912

    22.5Android设备Root简析913

    22.6APK的加固保护分析916

    第4篇Android系统工具

    第23章IDE和Gradle922

    23.1Gradle的核心要点922

    23.1.1Groovy与Gradle923

    23.1.2Gradle的生命周期926

    23.2Gradle的Console语法927

    23.3GradleWrapper和Cache929

    23.4AndroidStudio和Gradle931

    23.4.1Gradle插件基础知识931

    23.4.2AndroidStudio中的Gradle编译脚本932

    第24章软件版本管理937

    24.1版本管理简述937

    24.2Git的安装937

    24.2.1Linux环境下安装Git938

    24.2.2Windows环境下安装Git939

    24.3Git的使用939

    24.3.1基础配置939

    24.3.2新建仓库940

    24.3.3文件状态942

    24.3.4忽略某些文件943

    24.3.5提交更新944

    24.3.6其他命令944

    24.4Git原理简析945

    24.4.1分布式版本系统的特点946

    24.4.2安全散列算法—SHA-1947

    24.4.34个重要对象948

    24.4.4三个区域953

    24.4.5分支的概念与实例954

    第25章系统调试辅助工具958

    25.1万能模拟器——Emulator958

    25.1.1QEMU958

    25.1.2Android工程中的QEMU963

    25.1.3模拟器控制台(EmulatorConsole)966

    25.1.4实例:为Android模拟器添加串口功能969

    25.2此Android非彼Android970

    25.3快速建立与模拟器或真机的通信渠道——ADB972

    25.3.1ADB的使用方法972

    25.3.2ADB的组成元素975

    25.3.3ADB源代码解析976

    25.3.4ADBProtocol981

    25.4SDKLayoutlib984

    25.5TraceView和Dmtracedump985

    25.6Systrace987

    25.7代码覆盖率统计992

    25.8模拟GPS位置995



  • 内容简介:
      全书从操作系统的基础知识入手,全面剖析进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统、虚拟机等核心技术在Android中的实现原理。书中讲述的知识点大部分来源于工程项目研发,因而具有较强的实用性,希望可以让读者“知其然,更知其所以然”。本书分为编译篇、系统原理篇、应用原理篇、系统工具篇,共4篇25章,基本涵盖了参与Android开发所需具备的知识,并通过大量图片与实例来引导读者学习,以求尽量在源码分析外为读者提供更易于理解的思维方式。
      本书既适合Android系统工程师,也适合于应用开发工程师来阅读,从而提升Android开发能力。读者可以在本书潜移默化的学习过程中更深刻地理解Android系统,并将所学知识自然地应用到实际开发难题的解决中。
  • 作者简介:
    林学森,曾于多家跨国企业担任研发和管理工作,并已在国内外会议、杂志上发表多篇文章,获得多个发明专利。现为某世界500强科技公司高级专家、资深架构师。
  • 目录:
    第1篇Android编译篇

    第1章Android系统简介2

    1.1Android系统发展历程2

    1.2Android系统特点4

    1.3Android系统框架8

    第2章Android源码下载及编译11

    2.1Android源码下载指南11

    2.1.1基于Repo和Git的版本管理11

    2.1.2Android源码下载流程12

    2.2原生Android系统编译指南16

    2.2.1建立编译环境16

    2.2.2编译流程19

    2.3定制产品的编译与烧录22

    2.3.1定制新产品22

    2.3.2Linux内核编译26

    2.3.3烧录/升级系统27

    2.4AndroidMultilibBuild28

    2.5Android系统映像文件31

    2.5.1boot.img32

    2.5.2ramdisk.img34

    2.5.3system.img35

    2.5.4VerifiedBoot35

    2.6ODEX流程37

    2.7OTA系统升级39

    2.7.1生成升级包39

    2.7.2获取升级包40

    2.7.3OTA升级—Recovery模式41

    2.8Android反编译44

    2.9NDKBuild46

    2.10第三方ROM的移植48

    第3章Android编译系统50

    3.1Makefile入门50

    3.2Android编译系统52

    3.2.1Makefile依赖树的概念53

    3.2.2Android编译系统抽象模型53

    3.2.3树根节点droid54

    3.2.4main.mk解析55

    3.2.5droidcore节点59

    3.2.6dist_files61

    3.2.7Android.mk的编写规则61

    3.3JackToolchain64

    3.4SDK的编译过程68

    3.4.1envsetup.sh68

    3.4.2lunchsdk-eng70

    3.4.3makesdk75

    3.5Android系统GDB调试85

    第2篇Android原理篇

    第4章操作系统基础90

    4.1计算机体系结构(ComputerArchitecture)90

    4.1.1冯?诺依曼结构90

    4.1.2哈佛结构90

    4.2什么是操作系统91

    4.3进程间通信的经典实现93

    4.3.1共享内存(SharedMemory)94

    4.3.2管道(Pipe)95

    4.3.3UNIXDomainSocket97

    4.3.4RPC(RemoteProcedureCalls)99

    4.4同步机制的经典实现100

    4.4.1信号量(Semaphore)100

    4.4.2Mutex101

    4.4.3管程(Monitor)101

    4.4.4LinuxFutex102

    4.4.5同步范例103

    4.5Android中的同步机制104

    4.5.1进程间同步——Mutex104

    4.5.2条件判断——Condition105

    4.5.3“栅栏、障碍”——Barrier107

    4.5.4加解锁的自动化操作——Autolock108

    4.5.5读写锁——ReaderWriterMutex109

    4.6操作系统内存管理基础110

    4.6.1虚拟内存(VirtualMemory)110

    4.6.2内存保护(MemoryProtection)113

    4.6.3内存分配与回收113

    4.6.4进程间通信——mmap114

    4.6.5写时拷贝技术(CopyonWrite)115

    4.7Android中的LowMemoryKiller115

    4.8Android匿名共享内存(AnonymousSharedMemory)118

    4.8.1Ashmem设备118

    4.8.2Ashmem应用实例122

    4.9JNI127

    4.9.1Java函数的本地实现127

    4.9.2本地代码访问JVM130

    4.10Java中的反射机制132

    4.11学习Android系统的两条线索133

    第5章Android进程/线程和程序内存优化134

    5.1Android进程和线程134

    5.2Handler,MessageQueue,Runnable与Looper140

    5.3UI主线程——ActivityThread147

    5.4Thread类150

    5.4.1Thread类的内部原理150

    5.4.2Thread休眠和唤醒151

    5.4.3Thread实例155

    5.5Android应用程序如何利用CPU的多核处理能力157

    5.6Android应用程序的典型启动流程157

    5.7Android程序的内存管理与优化159

    5.7.1Android系统对内存使用的限制159

    5.7.2Android中的内存泄露与内存监测160

    第6章进程间通信—Binder166

    6.1智能指针169

    6.1.1智能指针的设计理念169

    6.1.2强指针sp172

    6.1.3弱指针wp173

    6.2进程间的数据传递载体——Parcel179

    6.3Binder驱动与协议187

    6.3.1打开Binder驱动——binder_open188

    6.3.2binder_mmap189

    6.3.3binder_ioctl192

    6.4“DNS”服务器——ServiceManager(BinderServer)193

    6.4.1ServiceManager的启动193

    6.4.2ServiceManager的构建194

    6.4.3获取ServiceManager服务—设计思考199

    6.4.4ServiceManagerProxy203

    6.4.5IBinder和BpBinder205

    6.4.6ProcessState和IPCThreadState207

    6.5Binder客户端——BinderClient237

    6.6Android接口描述语言——AIDL242

    6.7匿名BinderServer254

    第7章Android启动过程257

    7.1第一个系统进程(init)257

    7.1.1init.rc语法257

    7.1.2init.rc实例分析260

    7.2系统关键服务的启动简析261

    7.2.1Android的“DNS服务器”——ServiceManager261

    7.2.2“孕育”新的线程和进程——Zygote261

    7.2.3Android的“系统服务”——SystemServer274

    7.2.4Vold和ExternalStorage存储设备276

    7.3多用户管理282

    第8章管理Activity和组件运行状态的系统进程——ActivityManagerService(AMS)284

    8.1AMS功能概述284

    8.2管理当前系统中Activity状态——ActivityStack286

    8.3startActivity流程288

    8.4完成同一任务的“集合”——ActivityTask296

    8.4.1“后进先出”——LastIn,FirstOut297

    8.4.2管理ActivityTask298

    8.5Instrumentation机制300

    第9章GUI系统—SurfaceFlinger305

    9.1OpenGLES与EGL305

    9.2Android的硬件接口——HAL307

    9.3Android终端显示设备的“化身”——Gralloc与Framebuffer309

    9.4Android中的本地窗口313

    9.4.1FramebufferNativeWindow315

    9.4.2应用程序端的本地窗口——Surface321

    9.5BufferQueue详解325

    9.5.1BufferQueue的内部原理325

    9.5.2BufferQueue中的缓冲区分配328

    9.5.3应用程序的典型绘图流程333

    9.5.4应用程序与BufferQueue的关系339

    9.6SurfaceFlinger343

    9.6.1“黄油计划”——ProjectButter343

    9.6.2SurfaceFlinger的启动347

    9.6.3接口的服务端——Client351

    9.7VSync的产生和处理355

    9.7.1VSync信号的产生和分发355

    9.7.2VSync信号的处理361

    9.7.3handleMessageTransaction363

    9.7.4“界面已经过时/无效,需要重新绘制”——handleMessageInvalidate367

    9.7.5合成前的准备工作——preComposition369

    9.7.6可见区域——rebuildLayerStacks371

    9.7.7为“Composition”搭建环境——setUpHWComposer375

    9.7.8doDebugFlashRegions377

    9.7.9doComposition377

    第10章GUI系统之“窗口管理员”—WMS385

    10.1“窗口管理员”——WMS综述386

    10.1.1WMS的启动388

    10.1.2WMS的基础功能388

    10.1.3WMS的工作方式389

    10.1.4WMS,AMS与Activity间的联系390

    10.2窗口属性392

    10.2.1窗口类型与层级392

    10.2.2窗口策略(WindowPolicy)396

    10.2.3窗口属性(LayoutParams)398

    10.3窗口的添加过程400

    10.3.1系统窗口的添加过程400

    10.3.2Activity窗口的添加过程409

    10.3.3窗口添加实例412

    10.4Surface管理416

    10.4.1Surface申请流程(relayout)416

    10.4.2Surface的跨进程传递420

    10.4.3Surface的业务操作422

    10.5performLayoutAndPlaceSurfacesLockedInner423

    10.6窗口大小的计算过程424

    10.7启动窗口的添加与销毁433

    10.7.1启动窗口的添加433

    10.7.2启动窗口的销毁437

    10.8窗口动画438

    10.8.1窗口动画类型439

    10.8.2动画流程跟踪——WindowStateAnimator440

    10.8.3AppWindowAnimator444

    10.8.4动画的执行过程446

    第11章让你的界面炫彩起来的GUI系统—View体系452

    第12章“问渠哪得清如许,为有源头活水来”—InputManagerService与输入事件514

    12.1事件的分类514

    12.2事件的投递流程517

    12.2.1InputManagerService518

    12.2.2InputReaderThread519

    12.2.3InputDispatcherThread519

    12.2.4ViewRootImpl对事件的派发523

    12.3事件注入524

    第13章应用不再同质化—音频系统526

    13.1音频基础527

    13.2音频框架532

    13.3音频系统的核心——Audio-Flinger538

    13.4策略的制定者——Audio-PolicyService553

    13.5音频流的回放——AudioTrack560

    13.6音频数据流572

    13.7音量控制584

    13.8音频系统的上层建筑588

    13.9Android支持的媒体格式600

    13.10ID3信息简述602

    13.11Android多媒体文件管理606

    第3篇应用原理篇

    第14章Intent的匹配规则616

    第15章APK应用程序的资源适配628

    第16章Android字符编码格式650

    第17章Android和OpenGLES660

    第18章“系统的UI”——SystemUI685

    第19章Android常用的工具

    第20章Android应用程序的编译和打包707

    第21章Android虚拟机725

    21.1Android虚拟机基础知识725

    21.1.1Java虚拟机核心概念725

    21.1.2LLVM编译器框架734

    21.1.3Android中的经典垃圾回收算法736

    21.1.4Art和Dalvik之争738

    21.1.5Art虚拟机整体框架741

    21.1.6Android应用程序与虚拟机742

    21.1.7ProcedureCallStandardforArmArchitecture(过程调用标准)744

    21.1.8C++11标准中的新特性746

    21.2Android虚拟机核心文件格式—Dex字节码749

    21.3Android虚拟机核心文件格式—可执行文件的基石ELF756

    21.3.1ELF文件格式756

    21.3.2Linux平台下ELF文件的加载和动态链接过程764

    21.3.3AndroidLinker和动态链接库771

    21.3.4SignalHandler和FaultManager782

    21.4Android虚拟机核心文件格式——“主宰者”OAT786

    21.4.1OAT文件格式解析786

    21.4.2OAT的两个编译时机793

    21.5Android虚拟机的典型启动流程806

    21.6堆管理器和堆空间释义815

    21.7Android虚拟机中的线程管理823

    21.7.1Java线程的创建过程823

    21.7.2线程的挂起过程827

    21.8Art虚拟机中的代码执行方式综述829

    21.9Art虚拟机的“中枢系统”——执行引擎之Interpreter836

    21.10Art虚拟机的“中枢系统”——执行引擎之JIT839

    21.10.1JIT重出江湖的契机839

    21.10.2AndroidN版本中JIT的设计目标及策略840

    21.10.3ProfileGuidedCompilation(追踪技术)842

    21.10.4AOTCompilationDaemon843

    21.11Art虚拟机的“中枢系统”——执行引擎之本地代码844

    21.12Androidx86版本兼容ARM二进制代码——NativeBridge864

    21.13Android应用程序调试原理解析871

    21.13.1Java代码调试与JDWP协议872

    21.13.2Native代码调试879

    21.13.3利用GDB调试AndroidArt虚拟机885

    第22章Android安全机制透析887

    22.1AndroidSecurity综述887

    22.2SELinux889

    22.2.1DAC889

    22.2.2MAC890

    22.2.3基于MAC的SELinux890

    22.3Android系统安全保护的三重利剑892

    22.3.1第一剑:Permission机制893

    22.3.2加强剑:DAC(UGO)保护896

    22.3.3终极剑:SEAndroid898

    22.4SEAndroid剖析899

    22.4.1SEAndroid的顶层模型899

    22.4.2SEAndroid相关的核心源码900

    22.4.3SEAndroid标签和规则901

    22.4.4如何在Android系统中自定义SEAndroid903

    22.4.5TE文件的语法规则905

    22.4.6SEAndroid中的核心主体—init进程907

    22.4.7SEAndroid中的客体912

    22.5Android设备Root简析913

    22.6APK的加固保护分析916

    第4篇Android系统工具

    第23章IDE和Gradle922

    23.1Gradle的核心要点922

    23.1.1Groovy与Gradle923

    23.1.2Gradle的生命周期926

    23.2Gradle的Console语法927

    23.3GradleWrapper和Cache929

    23.4AndroidStudio和Gradle931

    23.4.1Gradle插件基础知识931

    23.4.2AndroidStudio中的Gradle编译脚本932

    第24章软件版本管理937

    24.1版本管理简述937

    24.2Git的安装937

    24.2.1Linux环境下安装Git938

    24.2.2Windows环境下安装Git939

    24.3Git的使用939

    24.3.1基础配置939

    24.3.2新建仓库940

    24.3.3文件状态942

    24.3.4忽略某些文件943

    24.3.5提交更新944

    24.3.6其他命令944

    24.4Git原理简析945

    24.4.1分布式版本系统的特点946

    24.4.2安全散列算法—SHA-1947

    24.4.34个重要对象948

    24.4.4三个区域953

    24.4.5分支的概念与实例954

    第25章系统调试辅助工具958

    25.1万能模拟器——Emulator958

    25.1.1QEMU958

    25.1.2Android工程中的QEMU963

    25.1.3模拟器控制台(EmulatorConsole)966

    25.1.4实例:为Android模拟器添加串口功能969

    25.2此Android非彼Android970

    25.3快速建立与模拟器或真机的通信渠道——ADB972

    25.3.1ADB的使用方法972

    25.3.2ADB的组成元素975

    25.3.3ADB源代码解析976

    25.3.4ADBProtocol981

    25.4SDKLayoutlib984

    25.5TraceView和Dmtracedump985

    25.6Systrace987

    25.7代码覆盖率统计992

    25.8模拟GPS位置995



查看详情
相关图书 / 更多
深入理解Android内核设计思想 第2版(上下册)
深入理解移动互联网
吴功宜 吴英 编著
深入理解Android内核设计思想 第2版(上下册)
深入实施“四个育人”,彰显本科人才培养特色——云南大学本科教育改革与创新优秀论文集
主编唐旭光
深入理解Android内核设计思想 第2版(上下册)
深入浅出C语言程序设计(第3版·微课版)
李俊·c;强振平;荣剑;张晴晖;赵毅力;钟丽辉
深入理解Android内核设计思想 第2版(上下册)
深入浅出C#(视频教学版)
赵云
深入理解Android内核设计思想 第2版(上下册)
深入实践Kotlin元编程
霍丙乾 著
深入理解Android内核设计思想 第2版(上下册)
深入北方的小路(布克奖震撼杰作。人生在世,行走于地狱屋顶,凝望花朵。余华力荐“了不起的小说”!)
[澳]理查德·弗兰纳根 著;新经典 出品
深入理解Android内核设计思想 第2版(上下册)
深入学习习近平关于科技创新的重要论述
科学技术部编写组 著
深入理解Android内核设计思想 第2版(上下册)
深入浅出IoT:完整项目通关实战
[英]吉姆·贝内特(Jim Bennett) 著;柴火创客空间 译;[美]珍·福克斯(Jen Fox);[美]珍·卢珀(Jen Looper)
深入理解Android内核设计思想 第2版(上下册)
深入浅出SSD:固态存储核心技术、原理与实战 第2版
SSDFans 胡波 石亮 岑彪
深入理解Android内核设计思想 第2版(上下册)
深入地心 少儿科普 新华正版
英国尤斯伯恩出版公司
深入理解Android内核设计思想 第2版(上下册)
深入理解FFmpeg
刘歧 赵军 杜金房 赵文杰 宋韶颍
深入理解Android内核设计思想 第2版(上下册)
深入人心:数字产品设计的底层逻辑
林婕
您可能感兴趣 / 更多