Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > 安卓技术相关 >

《深入理解Android内核设计思想》PDF 下载


分享到:
时间:2015-02-12 10:26来源:https://download.csdn.net/ 作者:转载  侵权举报
《深入理解Android内核设计思想》PDF 下载
失效链接处理
《深入理解Android内核设计思想》PDF 下载

转载自:https://download.csdn.net/download/cleverwzh/11014107
 
下载地址:版权归出版社和原作者所有,链接已删除,请购买正版
 
电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍:《深入理解Android内核设计思想》
 
图书简介:
《深入理解Android内核设计思想》适用于Android 4.3以上的版本。全书从操作系统的基础知识入手,全面剖析进程/线程、内存管理、Binder机制、GUI显示系统、多媒体管理、输入系统等核心技术在Android中的实现原理。书中讲述的知识点大部分来源于工程项目研发,因而具有较强的实用性,希望可以让读者“知其然,更知其所以然”。全书分为编译篇、系统原理篇、应用原理篇、系统工具篇共4篇22章,基本涵盖了参与Android开发所需具备的知识,并通过大量图片与实例来引导读者学习,以求尽量在源代码分析外为读者提供更易于理解的思维方式。 
  《深入理解Android内核设计思想》既适合Android系统工程师,也适合于应用开发工程师来阅读提升Android开发能力。读者可以在《深入理解Android内核设计思想》潜移默化的学习过程中更深刻地理解Android系统,并将所学知识自然地应用到实际开发难题的解决中。
 
相关截图:
 
图书目录:
第1篇 Android编译篇
 第1章 Android系统简介 
  1.1 Android系统发展历程 
  1.2 Android系统特点 
  1.3 Android系统框架 
 第2章 Android源码下载及编译 
  2.1 Android源码下载指南 
   2.1.1 基于Repo和Git的版本管理 
   2.1.2 Android源码下载流程 
  2.2 原生态系统编译指南 
   2.2.1 建立编译环境 
   2.2.2 编译流程 
  2.3 定制产品的编译与烧录 
   2.3.1 定制新产品 
   2.3.2 Linux内核编译 
   2.3.3 烧录 
  2.4 Android系统映像文件 
   2.4.1 boot.img 
   2.4.2 ramdisk.img 
   2.4.3 system.img 
  2.5 OTA系统升级 
   2.5.1 生成升级包 
   2.5.2 获取升级包 
   2.5.3 OTA升级-RecoveryMode 
  2.6 Android反编译 
 第3章 Android编译系统 
  3.1 Makefile入门 
  3.2 Android编译系统 
   3.2.1 Makefile依赖树的概念 
   3.2.2 树根节点droid 
   3.2.3 main.mk解析 
   3.2.4 droidcore节点 
   3.2.5 dist_files 
   3.2.6 Android.mk的编写规则 
第2篇 Android原理篇
 第4章 操作系统基础 
  4.1 计算机体系结构(Computer Architecture) 
   4.1.1 冯?诺依曼结构 
   4.1.2 哈佛结构 
  4.2 什么是操作系统 
  4.3 进程间通信的经典实现 
   4.3.1 共享内存(Shared Memory) 
   4.3.2 管道(Pipe) 
   4.3.3 Unix Domain Socket 
   4.3.4 RPC(RemoteProcedure Calls) 
  4.4 同步机制的经典实现 
   4.4.1 信号量(Semaphore) 
   4.4.2 Mutex 
   4.4.3 管程(Monitor) 
   4.4.4 同步范例 
  4.5 Android中的同步机制 
   4.5.1 进程间同步——Mutex 
   4.5.2 条件判断——Condition 
   4.5.3 “栅栏、障碍”——Barrier 
   4.5.4 加解锁的自动化操作——Autolock 
  4.6 操作系统内存管理基础 
   4.6.1 虚拟内存(Virtual Memory) 
   4.6.2 内存保护(Memory Protection) 
   4.6.3 内存分配与回收 
   4.6.4 进程间通信——mmap 
  4.7 Android中的Low Memory Killer 
  4.8 Android匿名共享内存(Anonymous Shared Memory) 
   4.8.1 Ashmem设备 
   4.8.2 Ashmem应用实例 
  4.9 JNI 
   4.9.1 Java函数的本地实现 
   4.9.2 本地代码访问JVM 
  4.10 学习Android系统的两条线索 
 第5章 Android进程/线程管理 
  5.1 Android进程和线程 
  5.2 Handler, MessageQueue,Runnable与Looper 
  5.3 UI主线程——ActivityThread 
  5.4 Thread类 
   5.4.1 Thread类的内部原理 
   5.4.2 Thread休眠和唤醒 
   5.4.3 Thread实例 
  5.5 Android应用程序的典型启动流程 
 第6章 进程间通信——Binder 
  6.1 智能指针 
   6.1.1 智能指针的设计理念 
   6.1.2 强指针sp 
   6.1.3 弱指针wp 
  6.2 进程间的数据传递载体——Parcel 
  6.3 Binder驱动与协议 
   6.3.1 打开Binder驱动——binder_open 
   6.3.2 binder_mmap 
   6.3.3 binder_ioctl 
  6.4 “DNS”服务器——ServiceManager(Binder Server) 
   6.4.1 ServiceManager的启动 
   6.4.2 ServiceManager的构建 
   6.4.3 获取ServiceManager服务——设计思考 
   6.4.4 ServiceManagerProxy 
   6.4.5 IBinder和BpBinder 
   6.4.6 ProcessState和IPCThreadState 
  6.5 Binder客户端——Binder Client 
  6.6 Android接口描述语言——AIDL 
  6.7 匿名Binder Server 
 第7章 Android启动过程简析 
  7.1 第一个系统进程(init) 
   7.1.1 init.rc语法 
   7.1.2 init.rc实例分析 
  7.2 系统关键服务的启动简析 
   7.2.1 Android的“DNS服务器”——ServiceManager 
   7.2.2 “孕育”新的线程和进程——Zygote 
   7.2.3 Android的“系统服务”——SystemServer 
 第8章 管理Activity和组件运行状态的系统进程——Activity ManagerService (AMS) 
  8.1 AMS功能概述 
  8.2 管理当前系统中Activity状态——Activity Stack 
  8.3 startActivity流程 
  8.4 完成同一任务的“集合”——Activity Task 
   8.4.1 “后进先出”——Last In,First Out 
   8.4.2 管理Activity Task 
 第9章 GUI系统之SurfaceFlinger 
  9.1 OpenGL ES与EGL 
  9.2 Android的硬件接口——HAL 
  9.3 Android终端显示设备的“化身”——Gralloc与Framebuffer 
  9.4 Android中的本地窗口 
   9.4.1 FramebufferNativeWindow 
   9.4.2 应用程序端的本地窗口——Surface 
  9.5 BufferQueue详解 
   9.5.1 BufferQueue的内部原理 
   9.5.2 BufferQueue中的缓冲区分配 
   9.5.3 应用程序的典型绘图流程 
   9.5.4 应用程序与BufferQueue的关系 
  9.6 SurfaceFlinger 
   9.6.1 “黄油计划”——Project Butter 
   9.6.2 SurfaceFlinger的启动 
   9.6.3 接口的服务端——Client 
  9.7 VSync的产生和处理 
   9.7.1 VSync信号的产生和分发 
   9.7.2 VSync信号的处理 
   9.7.3 handleMessageTransaction 
   9.7.4 “界面已经过时/无效,需要重新绘制”——handleMessageInvalidate 
   9.7.5 合成前的准备工作——preComposition 
   9.7.6 可见区域——rebuildLayerStacks 
   9.7.7 为“Composition”搭建环境——setUpHWComposer 
   9.7.8 doDebugFlashRegions 
   9.7.9 doComposition 
 第10章 GUI系统之“窗口管理员”——WMS 
  10.1 “窗口管理员”——WMS综述 
   10.1.1 WMS的启动 
   10.1.2 WMS的基础功能 
   10.1.3 WMS的工作方式 
   10.1.4 WMS,AMS与Activity间的联系 
  10.2 窗口属性 
   10.2.1 窗口类型与层级 
   10.2.2 窗口策略(Window Policy) 
   10.2.3 窗口属性(LayoutParams) 
  10.3 窗口的添加过程 
   10.3.1 系统窗口的添加过程 
   10.3.2 Activity窗口的添加过程 
   10.3.3 窗口添加实例 
  10.4 Surface管理 
   10.4.1 Surface申请流程(relayout) 
   10.4.2 Surface的跨进程传递 
   10.4.3 Surface的业务操作 
  10.5 performLayoutAndPlaceSurfacesLockedInner 
  10.6 窗口大小的计算过程 
  10.7 启动窗口的添加与销毁 
   10.7.1 启动窗口的添加 
   10.7.2 启动窗口的销毁 
  10.8 窗口动画 
   10.8.1 窗口动画类型 
   10.8.2 动画流程跟踪——WindowStateAnimator 
   10.8.3 AppWindowAnimator 
   10.8.4 动画的执行过程 
 第11章 让你的界面炫彩起来的GUI系统之View体系 
  11.1 应用程序中的View框架 
  11.2 Activity中View Tree的创建过程 
  11.3 在WMS中注册窗口 
  11.4 ViewRoot的基本工作方式 
  11.5 View Tree的遍历时机 
  11.6 View Tree的遍历流程 
  11.7 View和ViewGroup属性 
   11.7.1 View的基本属性 
   11.7.2 ViewGroup的属性 
   11.7.3 View,ViewGroup和ViewParent 
   11.7.4 Callback接口 
  11.8 “作画“工具集——Canvas 
   11.8.1 “绘制UI”——Skia 
   11.8.2 数据中介——Surface.lockCanvas 
   11.8.3 解锁并提交结果——unlockCanvasAndPost 
  11.9 draw和onDraw 
  11.10 View中的消息传递 
   11.10.1 View中TouchEvent的投递流程 
   11.10.2 ViewGoup中TouchEvent的投递流程 
  11.11 View动画 
 第12章 “问渠哪得清如许,为有源头活水来”——InputManagerService与输入事件 
  12.1 事件的分类 
  12.2 事件的投递流程 
   12.2.1 InputManagerService 
   12.2.2 InputReaderThread 
   12.2.3 InputDispatcherThread 
   12.2.4 ViewRootImpl对事件的派发 
 第13章 应用不再同质化——音频系统 
  13.1 音频基础 
   13.1.1 声波 
   13.1.2 音频的录制、存储与回放 
   13.1.3 音频采样 
   13.1.4 Nyquist–Shannon采样定律 
   13.1.5 声道和立体声 
   13.1.6 声音定级——Weber–Fechner law 
   13.1.7 音频文件格式 
  13.2 音频框架 
   13.2.1 Linux中的音频框架 
   13.2.2 TinyAlsa 
   13.2.3 Android系统中的音频框架 
  13.3 音频系统的核心——AudioFlinger 
   13.3.1 AudioFlinger服务的启动和运行 
   13.3.2 AudioFlinger对音频设备的管理 
   13.3.3 PlaybackThread的循环主体 
   13.3.4 AudioMixer 
  13.4 策略的制定者——AudioPolicyService 
   13.4.1 AudioPolicyService概述 
   13.4.2 AudioPolicyService的启动过程 
   13.4.3 AudioPolicyService与音频设备 
  13.5 音频流的回放——AudioTrack 
   13.5.1 AudioTrack应用实例 
   13.5.2 AudioPolicyService的路由实现 
  13.6 音频数据流 
   13.6.1 AudioTrack中的音频流 
   13.6.2 AudioTrack和AudioFlinger间的数据交互 
   13.6.3 AudioMixer中的音频流 
  13.7 音量控制 
  13.8 音频系统的上层建筑 
   13.8.1 从功能入手 
   13.8.2 MediaPlayer 
   13.8.3 MediaRecorder 
   13.8.4 一个典型的多媒体录制程序 
   13.8.5 MediaRecorder源码解析 
   13.8.6 MediaPlayerService简析 
  13.9 Android支持的媒体格式 
   13.9.1 音频格式 
   13.9.2 视频格式 
   13.9.3 图片格式 
   13.9.4 网络流媒体 
  13.10 ID3信息简述 
  13.11 Android多媒体文件管理 
   13.11.1 MediaStore 
   13.11.2 多媒体文件信息的存储“仓库”——MediaProvider 
   13.11.3 多媒体文件管理中的“生产者”——MediaScanner 
第3篇 应用原理篇
 第14章 Intent的匹配规则 
  14.1 Intent属性 
  14.2 Intent的匹配规则 
  14.3 Intent匹配源码简析 
 第15章 APK应用程序的资源适配 
  15.1 资源类型 
   15.1.1 状态颜色资源 
   15.1.2 图形资源 
   15.1.3 布局资源 
   15.1.4 菜单资源 
   15.1.5 字符串资源 
   15.1.6 样式资源 
   15.1.7 其他资源 
   15.1.8 属性资源 
  15.2 提供可选资源 
  15.3 最佳资源的匹配流程 
  15.4 屏幕适配 
   15.4.1 屏幕适配的重要参数 
   15.4.2 如何适配多屏幕 
 第16章 Android字符编码格式 
  16.1 字符编码格式背景 
  16.2 ISO/IEC 8859 
  16.3 ISO/IEC 10646 
  16.4 Unicode 
  16.5 String类型 
   16.5.1 构建String 
   16.5.2 String对多种编码的兼容 
 第17章 Android和OpenGL ES 
  17.1 3D图形学基础 
   17.1.1 计算机3D图形 
   17.1.2 图形管线 
  17.2 Android中的OpenGL ES简介 
  17.3 图形渲染API—EGL 
   17.3.1 EGL与OpenGL ES 
   17.3.2 egl.cfg 
   17.3.3 EGL接口解析 
   17.3.4 EGL实例 
  17.4 简化OpenGL ES开发——GLSurfaceView 
 第18章 “系统的UI”——SystemUI 
  18.1 SystemUI的组成元素 
  18.2 SystemUI的实现 
  18.3 Android壁纸资源——WallpaperService 
   18.3.1 WallPaperManagerService 
   18.3.2 ImageWallpaper 
 第19章 Android常用的工具“小插件”——Widget机制 
  19.1 “功能的提供者”——AppWidgetProvider 
  19.2 AppWidgetHost 
 第20章 Android应用程序的编译和打包 
  20.1 “另辟蹊径”采用第三方工具——Ant 
  20.2 通过命令行编译和打包APK 
  20.3 APK编译过程详解 
  20.4 信息安全基础概述 
  20.5 应用程序签名 
  20.6 应用程序签名源码简析 
第4篇 Android系统工具
 第21章 软件版本管理 
  21.1 版本管理简述 
  21.2 Git的安装 
   21.2.1 Linux环境下安装Git 
   21.2.2 Windows环境下安装Git 
  21.3 Git的使用 
   21.3.1 基础配置 
   21.3.2 新建仓库 
   21.3.3 文件状态 
   21.3.4 忽略某些文件 
   21.3.5 提交更新 
   21.3.6 其他命令 
  21.4 Git原理简析 
   21.4.1 分布式版本系统的特点 
   21.4.2 安全散列算法——SHA-1 
   21.4.3 四个重要对象 
   21.4.4 三个区域 
   21.4.5 分支的概念与实例 
 第22章 系统调试辅助工具 
  22.1 万能模拟器——Emulator 
   22.1.1 QEMU 
   22.1.2 Android工程中的QEMU 
   22.1.3 模拟器控制台(Emulator Console) 
   22.1.4 实例:为Android模拟器添加串口功能 
  22.2 此Android非彼Android 
  22.3 快速建立与模拟器或真机的通信渠道——ADB 
   22.3.1 ADB的使用方法 
   22.3.2 ADB的组成元素 
   22.3.3 ADB源代码解析 
   22.3.4 ADB Protocol
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐