TA的每日心情 | 开心 2021-12-13 21:45 |
---|
签到天数: 15 天 [LV.4]偶尔看看III
|
资源名称: |
【C49】《ANDROID框架揭秘》PDF 下载 |
百度地址: |
网盘链接:请先登录后查看此内容
|
失效声明: |
如果资料失效,VIP和荣耀会员或者使用金币兑换的普通会员,可以直接联系资料客服QQ索取:。在线时间为:8:00-23:30。请下载后24小时内删除,若侵权请联系客服删除该资料。 |
如何获取: |
1,本资料VIP会员下载地址直接可见,购买VIP:点击购买会员>>,开通后可下载全站所有资料。
2,非会员使用5000Java金币兑换,金币充值:点击进入充值页面 |
资源描述及截图:
【C49】《ANDROID框架揭秘》PDF 下载
内容提要
《Android框架揭秘》通过对Android系统源代码的分析,主要介绍Android框架的初始化过程及主要组件的工作原理。作者直接分析和整理了Android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成实际Android平台骨干的服务框架。其中的主要内容包括:通过启动程序了解Android框架的概要,移植Android以及如何开发适合各种机器的应用程序,分析Android框架所需的基础知识,JNI(java Native Interface)与Binder基础知识,Zygote、Service Manager、Service Server等Android核心组件,Android服务框架的结构与理解,通过Camera Service、Activity Manager Service等服务分析实际的Android服务等。 《Android框架揭秘》不仅可以供具备一定开发经验的Android开发人员参考阅读,也可作为Android开发初学者的Android框架入门教材使用。
目录
第1章 Android Framework概要 1
1.1 Android源代码组成 2
1.2 通过启动过程分析Android Framework 3
第2章 搭建Android开发环境 7
2.1 主机环境构成 7
2.1.1 安装VirtualBox 7
2.1.2 安装Ubuntu 8
2.2 搭建Android平台编译环境 9
2.2.1 编译工具 10
2.2.2 安装Repo 11
2.2.3 下载Android源代码 11<br><br>第1章 Android Framework概要 1<br>1.1 Android源代码组成 2<br>1.2 通过启动过程分析Android Framework 3<br><br>第2章 搭建Android开发环境 7<br>2.1 主机环境构成 7<br>2.1.1 安装VirtualBox 7<br>2.1.2 安装Ubuntu 8<br>2.2 搭建Android平台编译环境 9<br>2.2.1 编译工具 10<br>2.2.2 安装Repo 11<br>2.2.3 下载Android源代码 11<br>2.2.4 编译Android源代码 12<br>2.3 搭建Android SDK开发环境 13<br>2.3.1 下载、安装Eclipse 13<br>2.3.2 下载Android SDK starter 13<br>2.3.3 安装ADT插件 14<br>2.3.4 设置Android SDK路径 16<br>2.3.5 安装Android SDK 16<br>2.4 开发Android应用程序 18<br>2.5 应用程序Framework源码级别调试 21<br>2.5.1 加载应用程序Framework源 21<br>2.5.2 调试HelloWorld Framework(源码级) 24<br>2.6 小结 27<br><br>第3章 init进程 29<br>3.1 init进程运行过程 29<br>3.2 init进程源码分析 31<br>3.3 init.rc脚本文件分析与执行 40<br>3.3.1 动作列表(Action List) 41<br>3.3.2 服务列表(Service List) 43<br>3.3.3 init.rc文件分析函数 44<br>3.3.4 动作列表与服务列表的运行 48<br>3.4 创建设备节点文件 52<br>3.4.1 创建静态设备节点 52<br>3.4.2 动态设备感知 57<br>3.5 进程的终止与再启动 58<br>3.6 属性服务 62<br>3.6.1 属性初始化 63<br>3.6.2 属性变更请求处理 65<br>3.7 小结 67<br><br>第4章 JNI与NDK 69<br>4.1 Android与JNI 69<br>4.2 JNI的基本原理 72<br>4.2.1 在Java中调用C库函数 72<br>4.2.2 小结 83<br>4.3 调用JNI函数 84<br>4.3.1 调用JNI函数的示例程序结构 84<br>4.3.2 Java层代码(JniFuncMain.java) 85<br>4.3.3 分析JNI本地函数代码 87<br>4.3.4 编译及运行结果 101<br>4.3.5 在Android中的应用举例 102<br>4.4 在C程序中运行Java类 102<br>4.4.1 Invocation API应用示例 103<br>4.4.2 编译及运行 108<br>4.4.3 Invocation API在Android中的应用举例:Zygote进程 110<br>4.5 直接注册JNI本地函数 110<br>4.5.1 加载本地库时,注册JNI本地函数 111<br>4.5.2 Android中的应用举例 115<br>4.6 使用Android NDK开发 122<br>4.6.1 安装Android NDK 123<br>4.6.2 使用Android NDK开发步骤 127<br>4.6.3 小结 136<br><br>第5章 Zygote 137<br>5.1 Zygote是什么 137<br>5.2 由app_process运行ZygoteInit class 142<br>5.2.1 生成AppRuntime对象 143<br>5.2.2 调用AppRuntime对象 144<br>5.2.3 创建Dalvik虚拟机 145<br>5.2.4 运行ZygoteInit类 146<br>5.3 ZygoteInit类的功能 147<br>5.3.1 绑定/dev/socket/zygote套接字 149<br>5.3.2 加载应用程序Framework中的类与平台资源 150<br>5.3.3 运行SystemServer 155<br>5.3.4 运行新Android应用程序 158<br><br>第6章 Android服务概要 163<br>6.1 示例程序:理解Android服务的运行 163<br>6.2 Android服务的种类 166<br>6.3 Android应用程序服务 168<br>6.4 Android系统服务 182<br>6.5 运行系统服务 185<br>6.5.1 分析媒体服务器(Media Server)的运行代码 186<br>6.5.2 分析系统服务器(System Server)的运行代码 188<br>6.6 Android Service Framework、Binder Driver概要及相关术语 192<br><br>第7章 Android Binder IPC 197<br>7.1 Linux内存空间与Binder Driver 197<br>7.2 Android Binder Model 199<br>7.2.1 Binder IPC数据传递 201<br>7.2.2 Binder IPC数据流 202<br>7.2.3 Binder协议(Binder Protocol) 204<br>7.2.4 RPC代码与RPC数据 206<br>7.2.5 Binder寻址(Binder Addressing) 206<br>7.3 Android Binder Driver分析 209<br>7.3.1 从进程的角度看服务的使用 210<br>7.3.2 从Binder Driver角度看服务的使用 214<br>7.3.3 Binder Driver函数分析 219<br>7.4 Context Manager 251<br>7.5 小结 256<br><br>第8章 Android Service Framework 257<br>8.1 服务框架(Service Framework) 257<br>8.2 服务框架(Service Framework)的构成 259<br>8.2.1 各层构成元素的配置 260<br>8.2.2 各层构成元素间的相互作用 261<br>8.2.3 类的结构 264<br>8.3 运行机制 266<br>8.3.1 服务接口 267<br>8.3.2 服务 273<br>8.3.3 服务代理(Service Proxy) 276<br>8.3.4 Binder IPC处理 280<br>8.4 本地服务管理器(Native Service Manager) 282<br>8.4.1 Service Manager概要 282<br>8.4.2 Service Manager类 284<br>8.4.3 Service Manager的运行 286<br>8.5 编写本地服务 314<br>8.5.1 设计HelloWorld系统服务 314<br>8.5.2 HelloWorld服务接口 315<br>8.5.3 HelloWorld服务 316<br>8.5.4 HelloWorld服务代理 319<br>8.5.5 运行HelloWorld服务 320<br>8.6 小结 325<br><br>第9章 本地系统服务(Native System Service)分析 327<br>9.1 相机服务(Cameral Service) 327<br>9.2 相机应用程序 328<br>9.3 相机服务框架(Camera Service Framework) 331<br>9.3.1 相机服务框架层次结构 331<br>9.3.2 相机服务框架类 333<br>9.4 相机服务框架的运行 334<br>9.4.1 初始化相机服务 334<br>9.4.2 连接相机服务 335<br>9.4.3 相机服务连接过程分析 337<br>9.4.4 相机设置与控制 340<br>9.4.5 相机设置与控制分析 341<br>9.4.6 相机事件处理 342<br>9.4.7 相机事件处理分析 343<br>9.5 小结 345<br><br>第10章 Java服务框架(Java Service Framework) 347<br>10.1 Java服务框架(Java Service Framework) 347<br>10.1.1 Java服务框架的层次结构 348<br>10.1.2 Java服务框架中各个类间的相互作用 351<br>10.2 运行机制 354<br>10.2.1 Java服务框架初始化 355<br>10.2.2 Binder 355<br>10.2.3 BinderProxy 361<br>10.2.4 Parcel 364<br>10.3 Java系统服务的实现 367<br>10.3.1 闹钟服务(Alarm Manager Service)分析 368<br>10.3.2 编写HelloWorldService系统服务 372<br>10.3.3 使用HelloWorldService系统服务 375<br>10.3.4 编译HelloWorldService系统服务 378<br>10.4 Java Service Manager 380<br>10.4.1 Java Service Manager简介 380<br>10.4.2 BinderInternal 381<br>10.4.3 Java Service Manager的运行实例 383<br>10.5 使用AIDL生成服务代理与服务Stub 389<br>10.5.1 在AIDL文件中定义服务接口 390<br>10.5.2 使用AIDL编译器,生成服务接口、服务Stub以及服务代理 391<br>10.5.3 继承Stub类创建服务 392<br>10.5.4 服务接口的调用 393<br>10.6 小结 394<br><br>第11章 Java系统服务运行分析 395<br>11.1 Activity Manager Service 395<br>11.2 Activity Manager Service创建服务分析 397<br>11.2.1 Controller Activity-调用startService()方法 398<br>11.2.2 Activity Manager Service的startService()方法的调用过程(使用Binder RPC) 399<br>11.2.3 Activity Manager Service——运行startService() Stub方法 405<br>11.2.4 运行ActivityThread类的main() 方法 409<br>11.2.5 Activity Manager Service——attachApplication() Stub方法 414<br>11.3 小结 421<br><br>附录 AIDL语法 423
|
|