《深入理解Android内核设计思想(第2版)(上下册)》配套彩图

《深入理解Android内核设计思想(第2版)(上下册)》配套彩图

  • 大小:10.09 MB
  • 类型:Android
  • 格式:PDF
  • 热度:735
  • 作者:林学森
  • 更新:2022-06-21 09:21:40
vip 立即下载( 10.09 MB )
关注公众号免费下载
版权投诉 / 资源反馈(本资源由用户 姚展鹏 投稿)

给网友朋友们带来一篇Android类书籍配套资源,介绍了关于Android、内核设计、Android方面的内容,本书是由人民邮电出版社出版,已被804人关注,由寿宜年测试纠错,目前本书在Android类综合评分为:7.9分。

编辑推荐

基于Android SDK zui新版本 全面剖析了进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统等核心知识在Android中的实现原理 Android安全机制 虚拟 内存优化 性能优化通过大量图片与实例来引导读者学习,以求尽量在源码分析外,为读者提供更易于理解的思维路径 由浅入深,由总体框架再到细节实现,让读者尽快了解Android内核的设计思想

内容简介

全书从操作系统的基础知识入手,全面剖析进程/线程、内存管理、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

以上就是本次关于配套资源的介绍和部分内容,我们还整理了以往更新的其它相关电子书资源内容,可以在下方直接下载,关于相关的资源我们在下方做了关联展示,需要的朋友们也可以参考下。

相关资源

  • 《Access 2007开发指南》源代码

    《Access 2007开发指南》源代码

    内容介绍 本书讲解了在Access中开发应用程序的重要技能。主要内容分为6个部分。第1章至第15章为第一部分,讲解Access基础,包括:表、关系、查询、窗体和报表的基本知识;宏的使用;VBA语言的编码;查询、窗体和报表的高级应用;高级VBA技术;类模块;ActiveX数据对象。第16章至第18章为第二部分,说明如何解决开发过程中遇到的问题,如怎样用调试器检查代码问题,怎样实现应用程序中的错误处理,以及应用程序的优化方法。第19章至第22章为第三部

    大小:12.30 MBAccess配套资源

  • 微信小程序使用:vant Dialog组件的正确方式

    大小:61 KB微信小程序

  • C语言基础修订版(全)

    这是一套C语言基础讲义(黑马程序员) + C语言基础PDF,包含了几乎所有的C语言的基础知识,供大家取用。内容涉及c基础,c提高,c++基础,linux,c++提高,数据结构,设计模式等。轻松搞定C++语言! 目录 1.C语言概述 2. 数据类型 3. 运算符与表达式 4. 程序流程结构 5. 数组和字符串 6. 函数 7. 指针 8. 内存管理 9. 复合类型(自定义类型) 10. 文件操作

    大小:8.3 MBC语言

  • 离散数学

    离散数学 课后答案

    本书根据培养工程应用型人才的目标,以淡化理论,加强应用为指导思想,图做到宜教易学。书中内容包括集合论(集合、二元关系与函数)、组合计数初步、图论、数理逻辑(命题逻辑、谓词逻辑)、代数系统简介5个主要部分。在涵盖离散数学各方面内容的同时,提供多层次的精选例题,并 给出多种解题思路与方法,意在提高学生的解题能力及技巧。本书面向工程应用型大学的计算机专业师生, 对考研复习也不失为很好的辅助资料。 目录 第1章集合 1.1集合的基本概

    大小:14.6 MB离散数学课后答案

  • 《C语言从入门到精通》教学视频,素材,PPT,文件

    《C语言从入门到精通》教学视频,素材,PPT,文件

    编辑推荐 *零基础、入门级的讲解n 无论读者是否从事计算机相关行业,是否接触过C语言,是否使用C语言开发过项目,都能从本书中获益。n *超多、实用、专业的范例和项目n 本书结合实际工作中的范例,逐一讲解C语言的各种知识和技术。之后以实际开发项目来总结本书所学内容,帮助读者在实战中掌握知识,轻松拥有项目经验。n *随时检测自己的学习成果n 每章首页给出了本章要点,以便读者明确学习方向,读者可以随时自我检测,巩固所学知识。n

    大小:1.4 GBC语言配套资源

  • Visual Basic程序设计教程(第3版)

    Visual Basic程序设计教程(第3版) 课后答案

    本书主要内容包括:程序设计语言、算法与数据结构、多媒体及其应用开发、操作系统、计算机网络技术、关系数据库系统等软件基本知识点。 《计算机软件技术基础(第3版)》为面向21世纪课程教材,并获教育部高校科技进步一等奖;第二版被评为普通高等教育十五国家级规划教材。为软件技术入门教材,旨在集中讲授计算机软件的基础知识。涵盖的知识全面、精练、实用,反映了新概念、新工具、新方法和新的软件工程知识体系。配备有教学课件和

    大小:867 KBVB课后答案

  • c语言程序设计:现代方法(第2版)

    c语言程序设计:现代方法(第2版) 课后答案

    C语言程序设计:现代方法(第2版)是C语言的经典之作,被誉为近10年来的一部C语言著作。本书主要的一个目的就是通过一种现代方法来介绍C语言,书中强调标准C,强调软件工程,不再强调手工优化。这一版中紧密结合了C99标准,并与C89标准进行对照,补充了C99中的全新特性。本书分为C语言的基础特性、C语言的高级特性、C语言标准库和参考资料4个部分。每章末尾都有一个问与答小节给出一系列与该章内容相关的问题及答案,此外还包含适量的习题。 C语

    大小:11.6 MBc语言课后答案

  • 《从实践中学习Wireshark数据分析》配书资源

    《从实践中学习Wireshark数据分析》配书资源

    Wireshark是应用最为广泛的网络数据抓取和分析工具。通过该工具,网络维护人员可以发现网络数据传输的故障;网络安全人员可以发现攻击行为和数据泄露问题;开发人员可以验证应用程序数据传输的正确性。本书共分为13个章节。内容包括网络数据分析概述、捕获数据包、数据处理、数据呈现、显示过滤器、分析手段、无线网络抓包和分析、网络基础协议数据包分析、TCP协议数据分析、UDP协议数据分析、HTTP协议数据包分析、其他应用协议数据包分析。

    大小:1.11 MBWireshark配套资源

下载地址

相关声明:

学习笔记