摘要:
与Activity组件所关联的窗口对象的实际类型为PhoneWindow,后者是从Window类继承下来的。 Activity、Window和PhoneWindow三个类的关系如下 PhoneWindow对象是从Activity类的成员函数attach中创建的 阅读全文
摘要:
特定的资源或者类构成了Android应用程序的运行上下文环境 PackageManager, ClassLoader, Assert等等 Android应用程序窗口的运行上下文环境是通过ContextImpl类来描述的,即每一个Activity组件都关联有一个ContextImpl对象。... 阅读全文
摘要:
Activity组件的UI实现需要与WindowManagerService服务和SurfaceFlinger服务进行交互 1.Activity组件在启动完成后,会通过一个类型为Session的Binder对象来请求WindowManagerService为它创建一个类型为WindowStat... 阅读全文
摘要:
SurfaceFlinger服务负责绘制Android应用程序的UI 实现相当复杂,要从正面分析它的实现不是一件容易的事。既然不能从正面分析,我们就想办法从侧面分析。说到底,无论SurfaceFlinger服务有多复杂,它都是为Android应用程序服务的,因此,我们就从Android应用程序与S... 阅读全文
摘要:
Android应用程序是通过消息来驱动的,系统为每一个应用程序维护一个消息队例(MesageQueue),应用程序的主线程不断地从这个消息队例中获取消息(Mesage),然后对这些消息进行处理(Handler),这样就实现了通过消息来驱动应用程序的执行. ActivityManagerServi... 阅读全文
摘要:
Dalvik模式 如果要解释清楚什么是ART模式,我们就需要从Android系统的应用编译模式说起,我们都知道Android系统是以Linux系统为底层构建的,Android系统是开源(源代码公开)的,Android系统势必会适配到不同硬件配置的设备上,因此谷歌为了降低应用的开发难度在Linux底... 阅读全文
摘要:
从前面Dalvik虚拟机的运行过程分析一文可以知道,Dalvik虚拟机除了可以执行Java代码之外,还可以执行Native代码,也就是C/C++函数.这些C/C++函数在执行的过程中,又可以通过本地操作系统提供的系统调用来创建本地操作系统进程或者线程,也就是Linux进程和线程。如果在Nativ... 阅读全文
摘要:
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。 依赖于底层Posix兼容的操作系统,它可以简单的完成进程隔离和线程管理。每一个Andr... 阅读全文
摘要:
栈顶单例模式和standard模式一样, 只有Activity已经存在并且位于栈顶时, 不会重新创建. 其他时候都会创建新的Activity,然后放在栈顶 阅读全文
摘要:
全局单例模式如果 是新建Activity, 则新建一个Task, 然后将ActivityRecord单独放在其中如果已经存在这个Activity, 则直接将这个Activity转到前台 阅读全文
摘要:
官方文档称 以这种方式启动的Activity总是属于一个任务的根Activity。果真如此吗?本文将为你解开Activity的"singleTask"之谜。任务(Task)是个什么样的概念 每一个Activity代表一个用户操作,用户为了完成某个功能而执行的一系列操作就形成了一个Activity序... 阅读全文
摘要:
无论是通过点击应用程序图标来启动Activity,还是通过Activity内部调用startActivity接口来启动新的Activity,都要借助于应用程序框架层的ActivityManagerService服务进程。在前面一篇文章Android系统在新进程中启动自定义服务过程(startSe... 阅读全文
摘要:
参考:http://blog.csdn.net/gebitan505/article/details/18151203实现更新下载进度的功能1. 通过广播交互Server端将目前的下载进度,通过广播的方式发送出来,Client端注册此广播的监听器,当获取到该广播后,将广播中当前的下载进度解析出来并更... 阅读全文
摘要:
Service既不是进程也不是线程,它们之间的关系如下: 可能有的朋友会问了,既然是长耗时的操作,那么Thread也可以完成啊。没错,在程序里面很多耗时工作我们也可以通过Thread来完成,那么还需要Service干嘛呢。接下来就为大家解释以下Service和Thread的区别。 首先要说明的是... 阅读全文
摘要:
Binder -- 一种进程间通信(IPC)机制,基于OpenBinder来实现毫无疑问, 老罗的文章是不得不看的 Android进程间通信(IPC)机制Binder简要介绍和学习计划 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路 ... 阅读全文