Welcome 微信登录

首页 / 操作系统 / Linux

Android FrameWork 启动流程

Android FrameWork 启动流程

嵌入式设备启动时bootloader加载linux内核,linux内核启动后运行第一个用户级进程init,从此进程进入Android世界,所以,android是一个框架而不是kernel。在linux系统启动时,内核引导参数上一般都会设置“init=/init”,当android 最底层linux kernel 启动后会执行一个用户级进程init,此进程为所有进程的父进程,进程号为1,这里为整个android框架的入口,init进程为android内所有进...
Java里String的length方法

Java里String的length方法

首先说一下char类型:char类型用来表示单个字符。要想弄清楚char类型,就必须了解Unicode编码表。在设计Java时决定采用16位的Unicode字符集。能表示65536个字符。十分遗憾,经过一段时间,不可避免的事情发生了。Unicode字符超过了65536个。(主要原因是增加了大量的汉语、日语、韩语这样的表意文字),也就是16位的char类型已经不能满足所有的Unicode字符的需要了。代码点(code point):是指与一个编码表中的某个字...
Android GDI分析

Android GDI分析

在Android中所涉及的概念和代码最多,最繁杂的就是GDI相关的代码了。但是本质从抽象上来讲,这么多的代码和框架就干了一件事情:对显示缓冲区的操作和管理。 GDI主要管理图形图像的输出,从整体方向上来看,GDI可以被认为是一个物理屏幕使用的管理器。因为在实际的产品中,我们需要在物理屏幕上输出不同的窗口,而每个窗口认为自己独占屏幕的使用,对所有窗口输出,应用程序不会关心物理屏幕是否被别的窗口占用,而只是关心自己在本窗口的输出,至于输出是否能在屏幕上看见,则...
Android RIL Java

Android RIL Java

RIL-Java在本质上就是一个RIL代理,起到一个转发的作用,是Android Java概念空间中的电话系统的起点。在RIL-D的分析中,我们知道RILD建立了一个侦听套接口,等待RIL-Java的连接。一旦连接成功,RIL-JAVA就可发起一个请求,并等待应答,并将结构发送到目标处理对象。在RIL-Java中,这个请求称为RILRequest。为了直观起见,我还是不厌其烦的给出RIL-Java的框架图。RIL-Java的大框架包含了四个方面:Recei...
Android电话系统

Android电话系统

首先抛开Android的一切概念来研究一下电话系统的最基本的描述。我们的手机首先用来打电话的,随后是需要一个电话本,随后是PIM,随后是网络应用,随后是云计算,随后是想我们的手机无所不能,替代PC。但是作为一个电话的基本功能如下: 0)拨叫电话,接听电话,挂断电话,发送短信,网络连接,PIM管理1)由于电话运营商为我们提供了呼叫等待,电话会议等补充业务,所以我们的手机需要管理多路通话,如何管理?2)来电时,我们要播出来电铃声,接通时我们需要切换语音通道,这...
Android输入分析

Android输入分析

依照惯例,在研究Android输入系统之前给出输入系统的本质描述:从哲学的观点来看,输入系统就是解决从哪里来又将到哪里去问题。输入的本质上的工作就是收集用户输入信息并放置到目标位置。 Android在源代码分类上,并没有输入系统分类。本章的输入系统研究是一个综合的分析,前面的GWES的分析,特别是View的Focus Path以及Window Manager Proxy是本章分析的基础。Android输入系统的组成输入系统由如下几部分组成:1)后台窗口管...
Android GWES分析

Android GWES分析

我这里的GWES这个术语实际上从Microsoft的Window上移植过来的,用GWES来表示Android的窗口事件系统不是那么准确,在Android中Window是个弱化了的概念,更多的表现在View这个概念上。在很大程度上,Android的View的概念可以代替MicrosoftWindow这个概念,有点和Microsof暗中较劲的意味,你用过的概念我就偏不用,这个也是我以为的设计者意图。原始GUI基本框架 首先我们从Android的SDK外特性空间...
Android Zygote Service

Android Zygote Service

在本章我们会接触到这两个单词:Zygote[生物]受精卵,接合子,接合体 Spawn:产卵通过这两个单词,我们就可以大体知道Zygote是干什么的了,就是叫老母鸡下蛋。通过“Zygote”产出不同的子“Zygote”。从大的架构上讲,Zygote是一个简单的典型C/S结构。其他进程作为一个客服端向Zygote发出”孵化”请求,Zygote接收到命令就“孵化”出一个Activity进程来。Zygote系统代码组成及其调用结构:Zygote.java提供访问D...
Android 启动过程详解

Android 启动过程详解

Android从Linux系统启动有4个步骤;(1) init进程启动(2) Native服务启动(3) System Server,Android服务启动(4) Home启动总体启动框架图如:第一步:initial进程(system/core/init) init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。init始终是...
Android Service分析

Android Service分析

Android体系架构中三种意义上服务:Native服务 Android服务 Init空间的服务,主要是属性设置,这个IPC是利用Socket来完成的,这个我将在另外一章来讨论。Navite服务,实际上就是指完全在C++空间完成的服务,主要是指系统一开始初始化,通过Init.rc脚本起来的服务,例如ServiceMangerservice,Zygoteservice,Mediaservice,ril_demonservice等。Android服务是指在JV...
Android IPC框架分析 Binder,Service,Service manager

Android IPC框架分析 Binder,Service,Service manager

我首先从宏观的角度观察Binder,Service,ServiceManager,并阐述各自的概念。从Linux的概念空间中,Android的设计Activity托管在不同的的进程,Service也都是托管在不同的进程,不同进程间的Activity,Service之间要交换数据属于IPC。Binder就是为了Activity通讯而设计的一个轻量级的IPC框架。 在代码分析中,我发现Android中只是把Binder理解成进程间通讯的实现,有点狭隘,而是应该...
Android 基本空间划分

Android 基本空间划分

Google给了我们一张系统架构图,在这张图上我们可以看到Android的大体框架组成。从上图可以看到:AndroidApplications,ApplicationFramework,DalvikVirtualMachine,Linux。如果将Android泛化,我们可以将系统划分成两部分:但是为了研究的方便我们先看最为本质的三层,上面是Android,中间叫Dalvik虚拟机,下面叫Linux。虽然上两层都包含在Android中,但是为了理解的方便或者...
Android提高启动速度

Android提高启动速度

大家都知道启动速度慢是智能操作系统的一个通病,Android也不例外,启动速度大概在1分钟左右,虽然日本有一个叫quick boot的一秒启动android的产品,但是毕竟是旁门左道。所以从常规来提高android的启动速度成了大家研究的重点,也是难点。下面将初步研究的一下经验跟大家分享一下。 首先看一下android系统的启动流程:bootloader 引导程序kernel 内核init init初始化(这个大家都比较熟悉了,不要多...
Android 2.2 与 2.3的区别

Android 2.2 与 2.3的区别

Android 2.2 更新升级的特点 ①界面加入了一个半透明的浮动菜单,显示的是拨号、程序菜单和浏览器三个常用功能。 ②Google日历的配色变化较大,菜单只调换了顺序。 ③设置选项中,主菜单,声音和显示调整为独立分开设置选项。 ④邮件菜单,选项更丰富,增加了文本选择功能,并菜单顺序微小的调整,Gmail菜单,增加了前后查看的按钮。 ⑤自带的Google搜索搜索框的变化也很大,可以选择搜索类别,让搜索目的更明确。 ⑥驾车模式界面,在Andro...
<< 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 >>