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

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

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

给大家整理了Android类书籍配套资源,介绍了关于Android、内核设计、Android方面的内容,本书是由人民邮电出版社出版,已被165人关注,由耿正初测试纠错,目前本书在Android类综合评分为:7.7分。

编辑推荐

基于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

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

相关资源

  • 计算机控制系统

    计算机控制系统 课后答案

    《计算机控制系统》阐述了计算机控制的基本概念;较全面、较系统地介绍了计算机控制系统的几种基本分析方法和具有实用价值的设计和实现,并提出了改进措施;介绍了一些新型的控制手段、方法及其应用;并介绍了有发展前途的集散型控制系统;形成了一套较完整、较充实、较实用的计算机控制系统。 目录 前言 第1章 计算机控制概论 1.1 典型的计算机控制系统 1.2 计算机控制系统的分类 1.3 计算机控制系统的结构和组成 1.4 计算机控制系统的性能及

    大小:407 KB计算机系统课后答案

  • 《锋利的SQL(第2版)》源代码

    《锋利的SQL(第2版)》源代码

    编辑推荐 - 基于SQL Server 2014,由浅入深地详细介绍*SQL技术,让读者始终站在技术最前沿 - 深入分析SQL的运行机制和效率提升方法,使读者知其然,更知其所以然 - 丰富的图表和可操作性极强的实例,便于读者理解,并能够举一反三 SQL是目前所有关系型数据库的语言基础,也是所有数据库开发人员、数据库管理员都必须掌握的一门语言工具。 本书内容基于SQL Server 2014。书中既覆盖改善效率和性能的普通SQL技术,也深入探讨了SQL新技术,更包含一些实用的

    大小:2 MBSQL配套资源

  • 网上书店app实验报告

    大小:1.1 MBapp实验报告

  • 《UML 基础与 Rose 建模案例(第3版)》课件

    《UML 基础与 Rose 建模案例(第3版)》课件

    编辑推荐 无论编程语言或开发工具多么复杂,都是为了用产品或服务来表达对事物的分析、解构、抽象与重构,从而满足客观存在的需求。 源于一线教学实践,融入系统分析经验,深刻诠释UML理论与工具的实际应用,全面剖析面向对象建模。 内容简介 本书介绍了使用UML(统一建模语言)进行软件建模的基础知识以及Rational Rose 2007工具的使用方法。本书在第2版的基础上,充分吸取了读者宝贵的反馈意见和建议,更新了大部分案例。书中前11章是基础部分,

    大小:8.21 MB配套资源

  • 计算机操作系统(第4版)

    计算机操作系统(第4版) 课后答案

    《计算机操作系统(第四版)》是由汤小丹、 梁红兵、 哲凤屏 、汤子瀛编写,2014年5月由西安电子科技大学出版社出版的高等学校计算机类十二五规划教材、部级优秀教材。该教材可作为计算机类专业的本科生教材,也可作为研究生教材,还可供从事计算机及通信工作的相关科技人员参考,也可作为考研的复习、辅导用书。 全书共分为12章,主要内容包括:操作系统引论,进程的描述与控制,处理机调度与死锁,存储器管理,虚拟存储器,输入输出系

    大小:7.09 MB操作系统课后答案

  • 《Windows 10入门与提高》电子资源

    《Windows 10入门与提高》电子资源

    编辑推荐 #写作特色#从零开始,循序渐进无论读者是否从事计算机相关行业的工作,是否接触过Windows 10,都能从本书中找到杰出的学习起点,循序渐进地完成学习过程。紧贴实际,案例教学全书内容均以实例为主线,在此基础上适当扩展知识点,真正实现学以致用。 全彩排版,图文并茂全彩排版既美观大方又能够突出重点、难点。所有实例的每一步操作,均配有对应的插图和注释,以便读者在学习过程中能够直观、清晰地看到操作过程和效果,提高学

    大小:3.6 GBWindows10配套资源

  • 最优化方法

    最优化方法 课后答案

    本书既系统地介绍*化方法的基本理论和有效算法.又反映了目前该学科的发展动态。主要内容包括:基本概念,线性规划,线性搜索和信赖域方法,无约束*化,线性与非线性最小二乘问题,二次规划,约束*化等。全书深入浅出,理论、计算与实际应用相结合,尽可能避免较深的数学推导。每章后都有一个小结,并附有习题,以利于教学。 本书可作为信息与计算科学、数学与应用数学、统计、运筹学、管理科学与工程、计算机、 经济与金融,以及有关理

    大小:17.6 KB优化方法课后答案

  • 数学分析:习题课讲义(上册)

    数学分析:习题课讲义(上册) 课后答案

    《数学分析习题课讲义(上册)》是教育部国家理科基地创建名牌课程项目的研究成果,其目的是为数学分析的习题课教学提供一套具有创新特色的教材和参考书。《数学分析习题课讲义(上册)》以编著者们近20年来在数学分析及其习题课方面的教学经验为基础,吸取了国内外多种教材和研究性论著中的大量成果,非常注意经典教学内容中的思想、方法和技巧的开拓和延伸,在例题的讲解中强调启发式和逐步深入,在习题的选取中致力于对传统内容的更新、

    大小:46.9 MB数学分析课后答案

下载地址

相关声明:

学习笔记