文档章节

android技术内幕心得

franos
 franos
发布于 2015/09/15 17:46
字数 814
阅读 35
收藏 0

这本书开头就介绍了android的初始化过程

执行流程是这样的

--Linux基础系统,

--Linux Kernel(linux内核)

--Init(初始化进程)                             --(同时启动)Zygote(进程)

          --daemons(守护进程)                               --初始化Dalvik虚拟机实例

                        --usbd(USB守护进程)                      --装载Socket请求所需的类和监听    

                    --adbd(adb守护进程)                      --创建虚拟机实例来管理应用程序的进程

                    --rild(无线守护进程)                        


接着

--runtime(初始化runtime进程)

                --初始化服务管理器(ServideManager)

                --注册服务管理器,并作为默认Binder服务的Context管理器

--runtime--初始化完成后发送请求到Zygote-->由Zygote为系统服务进程建立虚拟机实例并启动系服务(其实这里应该先启动Dalvik VM的吧—_—)(System Server)


接着

系统服务启动原生服务(主要是:Surface Flinger 和 Audio Flinger)

并注册到服务管理器(Service Manager)以作为IPC服务的对象

然后

系统服务再启动 Android 管理服务,Android 管理服务被注册到服务管理器上(即Service Manager)

系统将所有的服务都加载到Service Manager(所有服务都加载完)后,就处于等待状态了,这个等待状态具体是怎样的我不是很清楚,也许书本后面会讲解到吧

总之,现在这个状态已经可以运行应用程序了,每一个应用程序都将被分配一个单独的进程,如果不通进程之间需要通信,可以使用IPC机制(以后会补充)


总结

      这篇博文是我自己对《Android技术内幕--系统卷》的第一节android启动知识的总结,主要是将Android启动流程用文字的形式表达了出来,这本书我会继续看下去,所以这篇博文我也只是写了个开头而已,如果有前辈能屈尊指点一二,我将不胜感激!

____________________________________________________________________________________

简单理解android 系统层通过Binder机制与其他进程通信的原理,Binder机制类似于CS架构,即客户端和服务器

服务器在向ServiceManager注册后就可以提供ipc服务了

通信过程:

1、客户端首先建立一个进程代理对象

2、客户端将请求发送到代理对象上

3、代理对象通过Binder驱动将请求转发给服务器

4、服务器处理...

5、服务器将处理结果通过Binder传回给代理对象

6、客户端从代理对象获取结果

7、结束

————————————————————————————————————————————————————

今天大致浏览了这本书,感觉大部分都是在讲android框架中HAL层的实现,后来才发现,这本书还有一部姊妹版,叫做Android技术内幕-应用卷,对于长期从事应用开发的我来讲,或许这是更好地选择吧(其实是系统篇我看不懂),不过系统篇让我接触了许多底层的知识,包括内存、虚拟机这部分,都让我感到获益匪浅。





                    

© 著作权归作者所有

franos
粉丝 1
博文 17
码字总数 11754
作品 0
广州
程序员
私信 提问
Android 学习小结

Android 学习已有一年半有余,先后做过两款游戏、三款应用和搭建一台服务端,也了解过一些Android相关的源码(JDK、SDK和NDK) 后来想学深入点,搞过两款开源项目(LGame 和 AChartEngine),...

长平狐
2013/01/06
213
0
Android App图片资源文件压缩利器McImage

版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/195 Android App图片资源文件压缩利器McImage 这个图片资源压缩利器McImage在我司的产品...

xing_star
08/17
0
0
Android studio 使用心得(十)---android studio 多渠道打包(三)

关于使用android studio 如何打包 大家可以看这两篇文章 Android studio 使用心得(四)---android studio 多渠道打包 Android studio 使用心得(四)---android studio 多渠道打包(二) 真正的项...

veidy
2015/07/28
1K
0
转: ios与android语音互通方案,类微信

Ios实现amr编解码 Feb 5th, 2012 介绍 学习ios第一个练手功能就是给已有产品加上语音通信功能,能够互通ios与android。这里给出自己的一些心得,希望能给他人一些参考。 资料搜集与参考 类似...

天下杰论
2014/10/30
307
0
EditText 集锦 - 开发中常用的用法及遇到的各种坑

前言 EditText ,文本输入框,一个再熟悉不过的的控件,在开发当中,我们需要经常用到。这边文章,主要是记录 EditText 的常用用法,需要的时候可以直接复制张贴,提高效率。同时,本文章会持...

xujun9411
02/21
0
0

没有更多内容

加载失败,请刷新页面

加载更多

从零基础到拿到网易Java实习offer,我做对了哪些事

作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右的时间。本文将会讲到...

Java技术江湖
昨天
4
0
程序性能checklist

程序性能checklist

Moks角木
昨天
6
0
VUE 计算属性

本文转载于:专业的前端网站▶VUE 计算属性 1、示例代码 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <title>vue示例</title> </hea......

前端老手
昨天
5
0
快速搭建LNMT平台和环境部署 Tomcat详解

Tomcat部署的基本概念 1. CATALINA_HOME与CATALINA_BASE分别指什么?     CATALINA_HOME指的是Tomcat的安装目录     bin:\\Tomcat一些脚本存放目录,比如启动脚本startup.bat/start...

网络小虾米
昨天
6
0
float浮动

float浮动 float浮动概念及原理: 文档流:文档流是文档中可显示对象在排列时所占用的位置。 加浮动的元素,会脱离文档流,会沿父容器靠左或靠右排列,如果之前已经有浮动的元素,会挨着浮动...

studywin
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部